0

我正在编写一个降价扩展,但是当我从 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 文件,因为跟踪簿反映它已注册扩展。

4

2 回答 2

1

似乎您通过错误的名称引用了该属性。使用inlinePatterns而不是inlinepatterns.

请参阅Python Markdown 文档 - 扩展 api

于 2013-10-01T10:25:38.887 回答
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

于 2014-11-29T17:28:43.847 回答