python-markdown无法将```生成标签问题解决方法
2015-12-20 16:17
771 查看
python-markdown无法将“`生成标签问题解决方法
我用的python-Markdown==2.6.5 markdown生成html是,发现无法将“`转成代码段,但是看别人的python博客源码,却有代码段生成,详细看一下代码,发现都是一样的转化代码:html=markdown.markdown(mdcontent)
找了下markdown文件,发现代码段除里“`定义还可以用tab符+空格定义,所以,为了能让 ”’ 也变成代码段的标签,我们需要对md进行预处理:
configs = {} myext = mdextension.CodeExtension(configs=configs) md = markdown.markdown(fileContent, extensions=[myext])
其中mdextension是一个py文件,里面包含md文件的处理扩展,包括预处理和后置处理,代码如下:
#-*-coding:utf-8-*- __author__ = 'george.yang' from markdown.extensions import Extension from markdown.util import etree from markdown.postprocessors import Postprocessor from markdown.preprocessors import Preprocessor ##预处理器 class CodePreprocessor(Preprocessor): def run(self, lines): # return lines new_lines = [] flag_in = False for line in lines: if line[:3]=='```': line = line.lstrip('```') if flag_in: flag_in = False else: flag_in = True if flag_in: line = ' ' + line new_lines.append(line) return new_lines ##后置处理器 class CodePostprocessor(Postprocessor): def run(self, text): return text # t_list = [] # codeIn = False # for line in text.split('\n'): # t_list.append(line) # return '\n'.join(t_list) ##扩展主体类 class CodeExtension(Extension): def __init__(self, configs={}): self.config = configs def extendMarkdown(self, md, md_globals): ##注册扩展,用于markdown.reset时扩展同时reset md.registerExtension(self) ##设置Preprocessor codepreprocessor = CodePreprocessor() #print md.preprocessors.keys() md.preprocessors.add('codepreprocessor', codepreprocessor, '<normalize_whitespace') ##设置Postprocessor codepostprocessor = CodePostprocessor() #print md.postprocessors.keys() md.postprocessors.add('codepostprocessor', codepostprocessor, '>unescape') ##print md_globals ##markdown全局变量
进过markdown扩展处理后,可以将“`生成代码段,同时兼容tab+空格的代码转化
参考网站
相关文章推荐
- python的局部变量和全局变量
- python核心编程-实例的默认参数
- python requests模块和Beautiful Soup模块
- Python中的ftplib模块
- python碰到问题的时候应该如何查找帮助
- python核心编程-继承
- Python2还是Python3
- windows下面安装Python和pip终极教程
- python定时任务调度——apscheduler模块
- 零基础入门学习Python(15):二进制存储 pickle 和异常处理
- Python学习实践----比较字典中是否有相同键值的方法之一
- python 返回的json格式转换
- learn python in 10 monutes
- python: 实现通讯录录入与查找的小脚本
- Python基础教程 第9章: 魔法方法、属性和迭代器 学习笔记
- 查找算法—折半查找算法分析与实现(Python)
- python中and和or的使用方法
- Python: scikit-image 图像的基本操作
- Python: scikit-image binary descriptor
- 《利用python进行数据分析》第2章数据集的训练