自定义狮身人面像角色以供参考

时间:2018-06-19 21:20:28

标签: python-sphinx docutils

我想创建一个狮身人面像角色:config:`param`,它显示为文字文本config["param"],同时也是一个链接。

我有一个基本的运行版本:

def config_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
    rendered = nodes.Text('config["{}"]'.format(text))

    rel_source = inliner.document.attributes['source'].split('/doc/', 1)[1]
    levels = rel_source.count('/')
    refuri = ('../' * levels +
              'tutorials/introductory/customizing.html#config')

    ref = nodes.reference(rawtext, rendered, refuri=refuri)
    return [nodes.literal('', '', ref)], []


def setup(app):
    app.add_role("config", config_role)
    return {"parallel_read_safe": True, "parallel_write_safe": True}

但是,有两个问题:

  • 链接的目标在文档的另一部分中。因此,我必须显式创建refuri。可以像在.rst中使用:ref:`config`一样使用链接锚吗?
  • nodes.reference具有不想要的效果,即用印刷引号代替了双引号。由于它在字面上,所以我宁愿使用普通的双引号。这可能吗?

0 个答案:

没有答案