markdown模块没有inlinepatterns属性

时间:2013-08-08 14:04:39

标签: python markdown

我正在写一个markdown扩展名,但是当我从python命令行运行它时:

>>> import markdown
>>> markdown.markdown('foo --deleted-- bar', ['myextension'])

我收到以下错误:

AttributeError: 'module' object has no attribute 'inlinepatterns'

在这一行:

md.inlinepatterns.add('del', del_tag, '>not_strong')

我已将markdown更新为2.3.1并且我在Python 2.6中运行它。解释器似乎找到我的mdx_myextension.py文件,因为tracebook反映它已注册扩展名。

2 个答案:

答案 0 :(得分:1)

好像你用错误的名字引用属性。 使用inlinePatterns代替inlinepatterns

请参阅Python Markdown documentaion - extensions api

答案 1 :(得分:0)

您可能需要导入markdown.inlinepatterns

Markdown扩展代码

import markdown
import markdown.inlinepatterns

DEL_RE = r'(--)(.*?)--'

class MyExtension(markdown.Extension):
    def extendMarkdown(self, md, md_globals):
        # Create the del pattern
        del_tag = markdown.inlinepatterns.SimpleTagPattern(DEL_RE, 'del')
        # Insert del pattern into markdown parser
        md.inlinePatterns.add('del', del_tag, '>not_strong')

def makeExtension(configs=None):
    return MyExtension(configs=configs)      

示例代码

import markdown
import mdx_myextension

if __name__ == "__main__":
    print markdown.markdown('foo --deleted-- bar', ['myextension'])

参考:http://achinghead.com/python-markdown-adding-insert-delete.html