好的,经过一番挖掘,我找到了解决方案。也许它可能对某人有用。
Django-wiki 使用 python markdown 模块(https://github.com/Python-Markdown/markdown)。它在 github 上的文档中有几个损坏的(过时的)示例(希望它们有一天会更新),但经过几次修复后它们仍然可以开始工作。这是降价扩展的工作(使用当前版本的python-markdown)示例:
from markdown.inlinepatterns import Pattern
from markdown.util import etree
from markdown.extensions import Extension
MYPATTERN = r'\{mytemplate (?P<param>\w+)\}'
class EmphasisPattern(Pattern):
def handleMatch(self, m):
el = etree.Element('em')
el.text = m.group('param')
return el
class MyExtension(Extension):
def extendMarkdown(self, md, md_globals):
em = EmphasisPattern(MYPATTERN)
md.inlinePatterns.add('example', em, "<not_strong")
def makeExtension(configs={}):
return MyExtension(configs=configs)
要使其与 django-wiki 一起使用,您应该将 WIKI_MARKDOWN_KWARGS 添加到 django 的 settings.py 中:
WIKI_MARKDOWN_KWARGS = {
'extensions': [
'my_extenstion_filename_inside_django_project_folder',
]
}