MDNICE微信(知乎)排版网站
MDNICE网站[1]的确是微信排版神器,它使得你只需要关注内容,将排版交给已定义的模板。今天就试用了它的一个模板,立即使得原来自己的推文面目一新了。

在MDNICE编辑器中定义了很多不同各具特色的排版模板,下面就是其中几个,将原来内容排成不同风格的外观。随着你的高兴可以自行挑选,也可以自己修改,留着自己用。



将CSDN快速转到MDNICE进行排版
1. 打开MDNICE网页并清空
利用webbrowser打开网站地址:http://www.mdnice.com
import webbrowserwebbrowser.open('http://www.mdnice.com')
在打开mdnice之前,需要检查一下是否该网站已经打开了:
def checkmdnice(waittime=0):begintime = time.time()while True:windowstr = tspgetwindowtitle()for s in windowstr:if s.find(mdnice_title) >= 0:return 1;if time.time() - begintime >= waittime: return 0
随着不同的网络环境,检查所需要的时间不同。
if checkmdnice(0) == 0:webbrowser.open('http://www.mdnice.com')if checkmdnice(10) == 0:printf('Can not open MDNICE .....')exit()
然后在通过发送快捷键:ctrl+A, del,将原来的mdnice编辑窗口里所有已经存在的内容情况。由于打开mdnice的时候,它的编辑焦点可能不在编辑窗口,所以在发送ctrl+A, delete组合之前,先发送若干TAB键。这样就可以确保清空mdnice。
下面是全部的代码:
import webbrowser#------------------------------------------------------------csdn_title = '写文章-CSDN博客'mdnice_title = '让微信排版变 Nice'#------------------------------------------------------------def checkmdnice(waittime=0):begintime = time.time()while True:windowstr = tspgetwindowtitle()for s in windowstr:if s.find(mdnice_title) >= 0:return 1;if time.time() - begintime >= waittime: return 0##------------------------------------------------------------if checkmdnice(0) == 0:webbrowser.open('http://www.mdnice.com')if checkmdnice(10) == 0:printf('Can not open MDNICE .....')exit()##------------------------------------------------------------tspsendwindowkey(mdnice_title, '\t\t\t\t\t\t\t\t\t\t')tspsendwindowkey(mdnice_title, "a", control=1)tspsendwindowkey(mdnice_title, "%c"%M1_DELETE, vk=1)
将CSDN中的内容粘贴到mdnice中
虽然可以通过csnd的“导出”功能,将原来csnd中的文章存储在文件夹中,然后在通过mdnice中的导入功能,对csdn文章内容进行编辑。但这种方式比较繁琐。
最简单的方式就是利用Window的剪切板(clipboard),通过向csnd发送ctrl+a, ctrl+c(全选,拷贝)快捷键,将csdn中Markdown编辑区的内容拷贝到Window的剪切板。然后在想mdnice发送粘贴功能。
由于csdn是面向浏览器排版的,其中有些命令不适合在微信中使用。因此,在将csdn中的内容转向mdnice之前需要处理一下:
1. 将原来在csdn中的空白行去掉。因为利用mdnice中的模板,各个章节、段落之间的空白已经进行了优化。这些用于csdn的排版空白行需要滤除。空白行主要有三种形式:
2. 将csdn中对于图片尺寸定义去除

将其中的 ===widthxheight==去除,因为它的存在可能使得在微信中不兼容显示。
处理代码如下:
tspsendwindowkey(csdn_title, "ac", control=1)csdnstrsect = clipboard.paste().split('\n')pastestr = ''for s in csdnstrsect:if s.find('#pic_center)ss = s.split('#')ssall = ss[0] + '#pic_center)s = ssallpastestr = pastestr + s +'\n'clipboard.copy(pastestr)
心动不如行动,现在就开始试试吧........
全部代码
#!/usr/local/bin/python# -*- coding: gbk -*-#============================================================# CD2MD.PY -- by Dr. ZhuoQing 2020-02-05## Note:#============================================================from head import *import webbrowser#------------------------------------------------------------csdn_title = '写文章-CSDN博客'mdnice_title = '让微信排版变 Nice'#------------------------------------------------------------def checkmdnice(waittime=0):begintime = time.time()while True:windowstr = tspgetwindowtitle()for s in windowstr:if s.find(mdnice_title) >= 0:return 1;if time.time() - begintime >= waittime: return 0##------------------------------------------------------------if checkmdnice(0) == 0:webbrowser.open('http://www.mdnice.com')if checkmdnice(10) == 0:printf('Can not open MDNICE .....')exit()##------------------------------------------------------------tspsendwindowkey(mdnice_title, '\t\t\t\t\t\t\t\t\t\t')tspsendwindowkey(mdnice_title, "a", control=1)tspsendwindowkey(mdnice_title, "%c"%M1_DELETE, vk=1)#------------------------------------------------------------tspsendwindowkey(csdn_title, "ac", control=1)csdnstrsect = clipboard.paste().split('\n')pastestr = ''#------------------------------------------------------------notedim = []for s in csdnstrsect:n1 = s.find('[^')n2 = s.find(']:')if n1 >= 0 and n2 >= 0 and n2 - n1 < 5:notedim.append(s)#------------------------------------------------------------for s in csdnstrsect:# Get rid all the space line off#--------------------------------------------------------# Change the link into notesn1 = s.find('[')n2 = s.find(']')p1 = s.find('(')p2 = s.find(')')ss1 = s.find('![')if n1 >= 0 and n2 >= 0 and p1 >= 0 and p2 >= 0 and n2 > n1 and p2 > p1 and p1 > n2 and ss1 < 0:notestr = s[n1+1:n2]linkstr = s[p1+1:p2]# printff(notestr, linkstr)headstr = s[0:n1]tailstr = s[p2+1:]s = '%s%s[](%s \"%s\" "")%s\n'%(headstr, notestr, linkstr, notestr, tailstr)#--------------------------------------------------------# Change the formulate space into \spaceif s.count('$') >= 2:# printf(s)s = s.replace('\,', '\space ').replace('\:', '\space ')#--------------------------------------------------------# Process the note stringn1 = s.find('[^')n2 = s.find(']:')if n1 >= 0 and n2 >= 0 and n2 - n1 < 5:continuen2 = s.find(']')if n1 >= 0 and n2 >= 0 and n2 - n1 < 5:replacestring = ''for nd in notedim:if nd.find(s[n1:n2+1]) >= 0:sbs1 = nd.find(']:')if sbs1 >= 1:sstemp = nd[sbs1+2:]notepos = sstemp.find(' : ')nextspace = 0if notepos < 0:notepos = sstemp.find(': ')if notepos < 0:notepos = sstemp.find(' :')if notepos < 0:notepos = sstemp.find(':')if notepos >= 0:nextspace = 3else: nextspace = 2else: nextspace = 2else: nextspace = 3if nextspace > 0:explainstr = sstemp0:notepos[](' ' "0:notepos")notestr = sstemp[notepos+nextspace:]else:explainstr = s[n1:n2+1]notestr = sstempreplacestring = '[](%s \"%s\" "")'%(notestr, explainstr)breaknews = s[0:n1] + replacestring + s[n2 + 1:]s = newsif s.find('#pic_center)ss = s.split('#')ssall = '\r\n' + ss[0] + '#pic_center)s = ssallpastestr = pastestr + s +'\n'clipboard.copy(pastestr)#------------------------------------------------------------tspsendwindowkey(mdnice_title, "v", control=1)printf('\a')#------------------------------------------------------------# END OF FILE : CD2MD.PY#============================================================

MDNICE网站: http://www.mdnice.com