3

カスタム slugify 関数を使用して、python-markdown の headerid 拡張子を使用してマークダウン ファイルを解析しようとしました。

import markdown

def my_slugify(value, sep):
    return "100"

md = markdown.Markdown(extensions=['headerid(slugify=my_slugify)'])
print md.convert("#Head 1")

しかし、私はこのエラーが発生しました:

Traceback (most recent call last):
File "a.py", line 7, in <module>
    print md.convert("#Head 1")
File "/usr/local/lib/python2.7/dist-packages/markdown/__init__.py", line 296, in convert
    newRoot = treeprocessor.run(root)
File "/usr/local/lib/python2.7/dist-packages/markdown/extensions/headerid.py", line 139, in run
  id = slugify(''.join(itertext(elem)), sep)
TypeError: 'unicode' object is not callable

headerid のソースコードを調べました。headerid 拡張機能は、呼び出し可能なオブジェクトとして unicode オブジェクトを使用しているようです:

id = slugify(''.join(itertext(elem)), sep)

私の質問は、カスタム slugify 関数を headerid に渡すにはどうすればよいですか? また、私の python バージョンは 2.7.3 で、python-markdown は 2.3.1 です。前もって感謝します。

4

2 に答える 2

1

私はマークダウンをインストールし、これを行うことができました:

import markdown

def my_slugify(value, sep):
    return "100"

extension_config = {'headerid':('slugify','my_slugify')}

md = markdown.Markdown(extensions=extension_config)
print md.convert("#Head 1")

印刷する

<h1 id="head-1">Head 1</h1>

これは公式ドキュメントにあります

これが役立つことを願っています

于 2013-08-27T13:37:52.610 に答える