如何为Python markdown自定义扩展创建选项?

2024-04-23 17:25:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试向python3中的自定义标记扩展添加一个选项。不幸的是,我得到了以下错误:

  File "pymodules/docmarkdown.py", line 232, in get_leaflang_markdown
    MyFencedCodeExtension(deflang = "leaf"),
  File "pymodules/docmarkdown.py", line 61, in __init__
    super(MyFencedCodeExtension,self).__init__(**kwargs)
TypeError: __init__() got an unexpected keyword argument 'deflang'

下面是扩展的构造函数代码。它遵循docs提供的模式。你知道吗

class MyFencedCodeExtension(markdown.extensions.Extension):

    def __init__(self, **kwargs):
        self.config = { 'deflang' : [ None, "language if not specified" ] }

        super(MyFencedCodeExtension,self).__init__(**kwargs)

我在构造Markdown实例时引用了扩展:

return markdown.Markdown(
    safe_mode = 'escape',
    extensions = [
        'meta',
        'toc',
        MyFencedCodeExtension(deflang = "leaf"),
        CenterExtension({}),
    ]

Tags: inpyselfinitlineextensionskwargsmarkdown
1条回答
网友
1楼 · 发布于 2024-04-23 17:25:33

此错误消息发生在您的super()调用中。你知道吗

MyFencedCodeExtension的超类是markdown.extensions.Extension。你知道吗

根据错误消息,超类构造函数不需要关键字参数deflang。你知道吗

请看markdown.extensions.Extension.__init__的签名以了解它的期望值。你知道吗

相关问题 更多 >