用Misaka做为pelican的Markdown解析器

为啥?

Pelican内置python-markdown做为默认解析器,用来将用户的Markdown格式的文章转为网页格式展示。

然而python-markdown模块的解析逻辑有严重的Bug。例如一个未标明语言的代码块会被标出很多莫名奇妙的错误;还有C++中的指针符号*会被解析为斜体的符号*SomeText*,在代码块中会产生大量和语法高亮无关的斜体字。

在网上寻找了很久的答案,终于找到了一篇日文博客,其中讲到了使用misaka来替换python-markdown来解析日志。

两难的Metadata

我使用了上文提到的日志中的方法来替换解析器,效果拔群,日志中的解析问题完全解决了。但是日志中的Metadata并没有被隐藏,而是显示在了日志的最前面,非常影响心情(强迫症?)。

于是我分析了解析模块的代码。原来的解析模块使用了python-markdown的一个处理Metadata扩展,用来解析Metadata,并从正文中删除这一部分。

但是Misaka并不支持这种语法 …

more ...