亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Python > 正文

如何用Python實現簡單的Markdown轉換器

2020-02-15 22:25:22
字體:
來源:轉載
供稿:網友

今天心血來潮,寫了一個 Markdown 轉換器。

import os, re,webbrowsertext = '''# TextHeader ## Header1  List   - 1    - 2   - 3  > **quote**  》 quote2 ## Header2  1. *斜體*  2. [@以茄之名](https://www.jb51.net/people/e4f87c3476a926c1e2ef51b4fcd18fa3)  3、 ![](https://www.jb51.net/v2-8560440c136c746730a63813ed701f52_is.jpg)   ## Header3   `*[文章地址](https://zhuanlan.zhihu.com/p/39742445)*`  ·**code1**·  - [x]是否點贊'''

程序開頭先處理一些行內的語法,比如 code、strong、i 等,用正則直接替換:

text = re.sub(re.compile('([/`·])([^`·]+)[/`·]'), r'<code>/2</code>', text)text = re.sub(re.compile('/*/*([^/*]+)/*/*'), r'<strong>/1</strong>', text)text = re.sub(re.compile('([^/*])/*([^/*]+)/*'), r'/1<i>/2</i>', text)

接著是復雜一點的圖片和鏈接:

text = re.sub(re.compile('([^/!])/[([^/]]+)/]/(([^)]+)/)'),    r'/1<a href="/3" rel="external nofollow" target="_blank">/2</a>', text)text = re.sub(re.compile('/!/[([^/]]*)/]/(([^)]+)/)'),    r'<img src="/2" >', text)

接著就處理其他的語法,先把文本按每一行分開:

lines = text.split('/n')html = ''list_flag = ''

處理列表和待辦事項的問題:

for line in lines: line = line.strip(' ') if re.match('- /[[ x]/]', line):  print('matched')  p_html = ''  if re.match('- /[x/]', line):   p_html = ' checked="checked"'  line = re.sub('- /[[ x]/]', '', line)  html += '''<label class="cssCheckbox">  <input type="checkbox" %s />  <span></span>%s  </label>''' % (p_html, line)

因為有序列表和無序列表的區別是頭尾的ol和ul,所以要用 list_flag 變量來判斷

elif re.match('[/+/-/*] ', line): if list_flag == '':  html += '<ul>/n'  list_flag = 'ul' line = re.sub('[/+/-/*] ', '', line) html += '<li>%s</li>/n' % (line)elif re.match('[/d]+[.、] ', line): if list_flag == '':  list_flag = 'ol'  html += '<ol>/n' line = re.sub('[/d]+[.、] ', '', line) html += '<li>%s</li>/n' % (line)

處理完后處理其他的語法:

else:  if list_flag != '':   html += '</%s>/n' % list_flag   list_flag = ''  if re.match('/#+', line):   well = re.match('/#+', line).group().count('#')   line = re.sub('/#+', '', line)   html += '<h%i>%s</h%i>/n' % (well, line, well)  elif re.match('[>》 ]', line):   line = re.sub('^/s*[>》 ]', '', line)   html += '<blockquote>%s</blockquote>/n' % (line)  # elif re.match('[>》 ]', line):  #  line = re.sub('^/s*[>》 ]', '', line)  #  html += '<blockquote>%s</blockquote>/n' % (line)  else:   html += line

這里我稍微修改了一點,讓 > 和 》 都可以轉換成引用,主要是切換中英文標點太難了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲欧美一区二区三区| 色樱桃影院亚洲精品影院| 国产视频999| 亚洲天堂第二页| 国产精品高潮呻吟视频| 国产成人精品在线视频| 欧美日韩在线一区| 国产成人精品亚洲精品| 国产亚洲视频中文字幕视频| 国产精品高潮在线| 国产一区二区三区日韩欧美| 国产女同一区二区| 中文字幕日韩欧美在线视频| 欧美成人合集magnet| 亚洲精品免费网站| 91精品免费久久久久久久久| 精品久久香蕉国产线看观看gif| 日本免费久久高清视频| 欧美亚洲一区在线| 亚洲第一视频在线观看| 亚洲亚裔videos黑人hd| 色偷偷偷综合中文字幕;dd| 欧美精品精品精品精品免费| 国产精品视频一| 久热爱精品视频线路一| 精品国产91乱高清在线观看| 亚洲欧美在线磁力| 国产精品自拍小视频| 久久久久亚洲精品| 久久精品国产亚洲一区二区| 亚洲精品中文字幕女同| 欧美性猛交xxxx乱大交蜜桃| 精品视频在线播放色网色视频| 久久精品国产亚洲| 欧美日韩在线观看视频| 亚洲精品99久久久久中文字幕| 日韩中文av在线| 欧美视频一二三| 亚洲欧洲国产精品| 最近的2019中文字幕免费一页| 欧美在线激情网| 国产视频久久久久| 精品精品国产国产自在线| 日韩成人中文电影| 黑人巨大精品欧美一区免费视频| 国产一区二区三区网站| 欧美性生交大片免费| 欧美精品免费在线| 69影院欧美专区视频| 色偷偷av亚洲男人的天堂| 亚洲午夜性刺激影院| 黄色一区二区在线| 亚洲区中文字幕| 插插插亚洲综合网| 97国产真实伦对白精彩视频8| 日韩精品视频中文在线观看| 亚洲一区二区三区在线免费观看| 久久精品一偷一偷国产| 欧美一级高清免费| 久久久爽爽爽美女图片| 亚洲欧美国产视频| 91久久久国产精品| 久久久亚洲精选| 在线激情影院一区| 亚洲成人网在线观看| 亚洲免费av电影| 成人黄色大片在线免费观看| 久久91亚洲精品中文字幕| 亚洲天堂成人在线| 中文字幕在线看视频国产欧美在线看完整| 久久综合88中文色鬼| 亚洲男人av电影| 亚洲成年网站在线观看| 亚洲欧美日韩久久久久久| 国产精品69av| 日韩毛片在线看| 欧美精品成人91久久久久久久| 亚洲二区中文字幕| 人人爽久久涩噜噜噜网站| 国产精品99久久久久久人| 久久精品免费电影| 日韩精品黄色网| 亚洲一级免费视频| 欧美午夜片欧美片在线观看| 国产在线观看91精品一区| 尤物精品国产第一福利三区| 亚洲一区亚洲二区亚洲三区| 中文字幕亚洲国产| 亚洲第一精品自拍| 日韩成人网免费视频| 丝袜亚洲欧美日韩综合| 韩日欧美一区二区| 国产精品视频永久免费播放| 亚洲欧美综合另类中字| 欧美成人小视频| 欧美成人精品在线观看| 亚洲最大激情中文字幕| 精品中文字幕视频| 日本国产高清不卡| 欧美一区二区三区免费观看| 日韩中文字幕不卡视频| 国产精品综合久久久| 日韩精品在线免费播放| 亚洲人成五月天| 欧美色视频日本高清在线观看| 中文字幕一区二区精品| 亚洲欧洲偷拍精品| 中文字幕精品久久| 国产精品久久久久久久久久久不卡| 中文字幕亚洲综合久久| 成人性生交大片免费看小说| 欧美疯狂性受xxxxx另类| 日韩在线视频观看正片免费网站| 国外色69视频在线观看| 国内精品模特av私拍在线观看| 国产999精品| 国产一区二中文字幕在线看| 国产精品老牛影院在线观看| 久久天天躁狠狠躁夜夜躁2014| 亚洲va久久久噜噜噜| 国产精品日韩电影| 久久国产精品久久国产精品| 成人自拍性视频| 国产精品亚洲美女av网站| 久久91亚洲精品中文字幕| 中文字幕在线观看日韩| 欧洲成人在线观看| 国产精品欧美风情| 97人洗澡人人免费公开视频碰碰碰| 亚洲最大福利网站| 久久久久久久久久婷婷| 最新的欧美黄色| 亚洲欧美中文在线视频| 成人黄色中文字幕| 97视频在线观看播放| 亚洲最大福利视频网| 成人国产精品一区| 欧美肥老妇视频| 在线丨暗呦小u女国产精品| 国产精品日日摸夜夜添夜夜av| 亚洲精品suv精品一区二区| 伊人久久久久久久久久久| 国产精品96久久久久久又黄又硬| 久久99久久亚洲国产| 伊人精品在线观看| 奇米成人av国产一区二区三区| 日韩精品免费视频| 美女啪啪无遮挡免费久久网站| 国产精品入口福利| 国产不卡视频在线| 日本一区二区三区在线播放| 精品福利樱桃av导航| 欧美日韩一区二区免费视频| 色老头一区二区三区| 91精品啪在线观看麻豆免费| 久久国产精品99国产精| 亚洲精品v欧美精品v日韩精品| 日韩在线一区二区三区免费视频| 在线亚洲午夜片av大片| 欧美最顶级的aⅴ艳星| 亚洲男人天堂2019| 国产精品第100页| 欧美福利视频在线| 色综合老司机第九色激情|