首页 > 解决方案 > 在自定义角色中传递给 inliner.parse() 的参数是什么

问题描述

我正在定义我的自定义角色,它允许 :ref: 标记在其中。该角色将按如下方式使用:

myrole:`some_text |SUBS| more_text`

一个函数替换 |SUBS| 经过

:ref:`some_target`

所以我最终得到以下字符串

some_text :ref:`some_target` more_text

我的 python 代码在下面,我不确定如何为 inliner.parse() 函数设置 lineno、memo 和 parent 参数

from docutils import nodes
from docutils.parsers.rst import Directive
from sphinx import addnodes

def myrole(role, rawtext, text, lineno, inliner, options={}, content=[]):

    app=inliner.document.settings.env.app
    #the below function replaces |SUBS| with the :ref: markup

    new_string=process_subs(text)
    
    nodelist,_=inliner.parse(new_string,lineno,memo,parent)

    return nodelist, []

    
def setup(app):
    app.add_role('myrole', myrole)

标签: pythonpython-sphinxrestructuredtextdocutils

解决方案


推荐阅读