国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > Python > 正文

使用Python來(lái)開(kāi)發(fā)Markdown腳本擴(kuò)展的實(shí)例分享

2020-01-04 17:39:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
這篇文章主要介紹了使用Python來(lái)開(kāi)發(fā)Markdown腳本擴(kuò)展的實(shí)例分享,文中的示例是用來(lái)簡(jiǎn)單地轉(zhuǎn)換文檔結(jié)構(gòu),主要為了體現(xiàn)一個(gè)思路,需要的朋友可以參考下
 

關(guān)于Markdown

在剛才的導(dǎo)語(yǔ)里提到,Markdown 是一種用來(lái)寫作的輕量級(jí)「標(biāo)記語(yǔ)言」,它用簡(jiǎn)潔的語(yǔ)法代替排版,而不像一般我們用的字處理軟件 Word 或 Pages 有大量的排版、字體設(shè)置。它使我們專心于碼字,用「標(biāo)記」語(yǔ)法,來(lái)代替常見(jiàn)的排版格式。例如此文從內(nèi)容到格式,甚至插圖,鍵盤就可以通通搞定了。目前來(lái)看,支持 Markdown 語(yǔ)法的編輯器有很多,包括很多網(wǎng)站(例如簡(jiǎn)書(shū))也支持了 Markdown 的文字錄入。Markdown 從寫作到完成,導(dǎo)出格式隨心所欲,你可以導(dǎo)出 HTML 格式的文件用來(lái)網(wǎng)站發(fā)布,也可以十分方便的導(dǎo)出 PDF 格式,這種格式寫出的簡(jiǎn)歷更能得到 HR 的好感。甚至可以利用 CloudApp 這種云服務(wù)工具直接上傳至網(wǎng)頁(yè)用來(lái)分享你的文章,全球最大的輕博客平臺(tái) Tumblr,也支持使用 Mou 這類 Markdown 工具進(jìn)行編輯并直接上傳。

python的markdown擴(kuò)展開(kāi)發(fā)
近期使用python的markdown寫了一個(gè)文檔小程序,由于需要用到一些額外的功能,所以就對(duì)markdown進(jìn)行了一些簡(jiǎn)單的擴(kuò)展,進(jìn)而記錄下編寫的模板。直接貼代碼:

#encoding=utf-8 ##預(yù)處理器 from markdown.preprocessors import Preprocessor class CodePreprocessor(Preprocessor):   def run(self, lines):     new_lines = []     flag_in = False     block = []     for line in lines:       if line[:3]=='!!!':                 flag_in = True         block.append('<pre class="brush: %s;">' % line[3:].strip())       elif flag_in:         if line.strip() and line[0]=='!':           block.append(line[1:])         else:           flag_in = False           block.append('</pre>')           block.append(line)           new_lines.extend(block)           block = []       else:         new_lines.append(line)     if not new_lines and block:       new_lines = block     return new_lines  ##后置處理器 from markdown.postprocessors import Postprocessor class CodePostprocessor(Postprocessor):   def run(self, text):     t_list = []     for line in text.split('/n'):       if line[:5]=='<p>!<':         line = line.lstrip('<p>').replace('</p>', '')[1:]       t_list.append(line)      return '/n'.join(t_list)      ##擴(kuò)展主體類     from markdown.extensions import Extension from markdown.util import etree class CodeExtension(Extension):   def __init__(self, configs={}):     self.config = configs    def extendMarkdown(self, md, md_globals):     ##注冊(cè)擴(kuò)展,用于markdown.reset時(shí)擴(kuò)展同時(shí)reset     md.registerExtension(self)                ##設(shè)置Preprocessor     codepreprocessor = CodePreprocessor()     #print md.preprocessors.keys()     md.preprocessors.add('codepreprocessor', codepreprocessor, '<normalize_whitespace')          ##設(shè)置Postprocessor     codepostprocessor = CodePostprocessor()     #print md.postprocessors.keys()     md.postprocessors.add('codepostprocessor', codepostprocessor, '>unescape')          ##print md_globals  ##markdown全局變量 

         

關(guān)于markdown擴(kuò)展的深入內(nèi)容,可以查看官方文檔,不過(guò)沒(méi)有例子,只是手冊(cè)而已。但大體能知道有哪些內(nèi)容組成,在結(jié)合上面的文件結(jié)構(gòu)都是可以寫出來(lái)的。下面是調(diào)用的代碼:

#encoding=utf-8 import markdown import markdowncode  text = ''''' !!!python ! !def foo():  ###title '''  configs = {}  myext = markdowncode.CodeExtension(configs=configs) md = markdown.markdown(text, extensions=[myext]) print md 

主要擴(kuò)展了2個(gè)功能:
一個(gè)是把形如:

!!!python ! !def foo(): ! return 'foo' 

轉(zhuǎn)換成:

<pre class="brush: python;">  def foo():  return 'foo' </pre> 

使用Python來(lái)開(kāi)發(fā)Markdown腳本擴(kuò)展的實(shí)例分享

 
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 安化县| 刚察县| 江北区| 祁门县| 古田县| 潮安县| 襄垣县| 南城县| 寿阳县| 肥东县| 南陵县| 霍州市| 长治县| 洛浦县| 大英县| 滕州市| 盐城市| 高阳县| 同德县| 凤台县| 陇南市| 金门县| 平定县| 鄱阳县| 武鸣县| 清原| 赣州市| 红原县| 兴城市| 伊吾县| 宿州市| 微山县| 天全县| 东城区| 林甸县| 娄烦县| 和平县| 桦川县| 浏阳市| 宣城市| 于田县|