MDNICE使得你只需要关注内容

MDNICE微信(知乎)排版网站

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

MDNICE排版软件

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

主题示例1
主题示例2
主题示例3

将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中对于图片尺寸定义去除


![xxxx](image urlxxxxx#pic_center)

将其中的 ===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 = ssall pastestr = 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 notes n1 = 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 \space if s.count('$') >= 2:# printf(s) s = s.replace('\,', '\space ').replace('\:', '\space ')

#-------------------------------------------------------- # Process the note string
n1 = s.find('[^') n2 = s.find(']:') if n1 >= 0 and n2 >= 0 and n2 - n1 < 5: continue
n2 = 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 = 0 if notepos < 0: notepos = sstemp.find(': ') if notepos < 0: notepos = sstemp.find(' :') if notepos < 0: notepos = sstemp.find(':') if notepos >= 0: nextspace = 3 else: nextspace = 2 else: nextspace = 2 else: nextspace = 3
if nextspace > 0: explainstr = sstemp0:notepos[](' ' "0:notepos")
notestr = sstemp[notepos+nextspace:] else: explainstr = s[n1:n2+1] notestr = sstemp
replacestring = '[](%s \"%s\" "")'%(notestr, explainstr)

break
news = s[0:n1] + replacestring + s[n2 + 1:] s = news

if s.find('#pic_center)
ss = s.split('#')

ssall = '\r\n' + ss[0] + '#pic_center)
s = ssall
pastestr = pastestr + s +'\n'
clipboard.copy(pastestr)
#------------------------------------------------------------tspsendwindowkey(mdnice_title, "v", control=1)printf('\a')#------------------------------------------------------------# END OF FILE : CD2MD.PY#============================================================

参考资料

[1]

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