From: Dmitry S. <mi...@gm...> - 2013-08-27 18:54:29
|
Try this: from markdown.extensions.headerid import HeaderIdExtension ... headerId = HeaderIdExtension([('slugify', my_slugify)]) md = markdown.Markdown(extensions=[headerId]) Initially I thought that extensions would accept dicts, but they seem to only support lists of tuples. On Tue, Aug 27, 2013 at 5:07 PM, wilbur <wil...@fo...> wrote: > Hi, I tried to parse my markdown files with python-markdown's headerid > extension, with my custom slugify function: > > import markdown > > def my_slugify(value, sep): > return "100" > > md = markdown.Markdown(extensions=['headerid(slugify=my_slugify)']) > print md.convert("#Head 1") > > But I got this error: > > 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 > > I looked into headerid's source code. It seems that the headerid extension > just use the unicode object as a callable object: > > id = slugify(''.join(itertext(elem)), sep) > > So my question is how can I pass my custom slugify function to headerid? > Besides, my python version is 2.7.3 and python-markdown is 2.3.1. Thanks in > advance. -- Dmitry Shachnev |