MDNICE微信(知乎)排版网站
MDNICE网站的确是微信排版神器,它使得你只需要关注内容,将排版交给已定义的模板。今天就试用了它的一个模板,立即使得原来自己的推文面目一新了。
MDNICE排版软件
在MDNICE编辑器中定义了很多不同各具特色的排版模板,下面就是其中几个,将原来内容排成不同风格的外观。随着你的高兴可以自行挑选,也可以自己修改,留着自己用。
主题示例1
主题示例2
主题示例3
将CSDN快速转到MDNICE进行排版
1. 打开MDNICE网页并清空
利用webbrowser打开网站地址:http://www.mdnice.com
import webbrowser
webbrowser.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的排版空白行需要滤除。空白行主要有三种形式:
(1)
(2) <br/>
(3) $~$
2. 将csdn中对于图片尺寸定义去除
![xxxx](image urlxxxxx#pic_center =widthxheight)
将其中的 =widthxheight去除,因为它的存在可能使得在微信中不兼容显示。
处理代码如下:
tspsendwindowkey(csdn_title, "ac", control=1)
csdnstrsect = clipboard.paste().split('\n')
pastestr = ''
for s in csdnstrsect:
if s.find(' ') >= 0: continue
if s.find('$~$') >= 0: continue
if s.find('<br/>') >= 0: continue
if s.find('#pic_center =') >= 0:
ss = s.split('#')
ssall = ss[0] + '#pic_center)' + ss[1].split(')')[1]
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
if s.find(' ') >= 0: continue
if s.find('$~$') >= 0: continue
if s.find('<br/>') >= 0: continue
# 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 = sstemp[0:notepos].rstrip(' ')
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') >= 0:
ss = s.split('#')
ssall = '\r\n' + ss[0] + '#pic_center)' + '\r\n'#+ ss[1].split(')')[1]
s = ssall
pastestr = pastestr + s +'\n'
clipboard.copy(pastestr)
#------------------------------------------------------------
tspsendwindowkey(mdnice_title, "v", control=1)
printf('\a')
#------------------------------------------------------------
# END OF FILE : CD2MD.PY
#============================================================