跳转到主要内容

允许在Sphinx函数/方法描述中创建可链接的参数链接

项目描述

这是一个Sphinx扩展,允许Python文档中的:param:指令可链接。

这是SQLAlchemy项目及相关项目使用的实验性扩展。

配置

只需在conf.py中开启即可

extensions = [
            'sphinx_paramlinks',

            # your other sphinx extensions
            # ...
        ]

从版本0.5.3开始,您可以通过在conf.py中使用paramlinks_hyperlink_param设置来修改可点击超链接在参数名称周围的位置

paramlinks_hyperlink_param='name'

此参数接受以下值

  • 'none': 不会插入链接。参数仍然有目标链接,例如可以从搜索中跳转到它。

  • 'name': 参数名称是一个可点击的超链接。

  • 'link_symbol': 在参数名称之后(但在类型说明之前)插入一个可点击的链接符号。默认情况下,此符号仅当鼠标悬停于参数描述时才显示(见下文)

  • 'name_and_symbol': 链接名称并生成链接符号。

默认为paramlinks_hyperlink_param = 'link_symbol'

功能

  • :param: Sphinx 函数/方法描述中的指令将在段落链接中给出,以便它们可以外部链接。

  • 新增了文本角色 :paramref:,它的工作方式类似于 :meth::func: 等。只需将参数名称作为额外标记附加即可。

    :paramref:`.EnvironmentContext.configure.transactional_ddl`

    该指令利用现有的 Python 角色进行方法/函数查找,首先搜索 :meth:,然后是 :class:,接着是 :func: 角色然后单独应用参数名称以生成最终的参考链接。(0.3.4 新增,分别搜索 :meth: / :func: / :class:,而不是使用 :obj:,后者会捕获许多没有参数的内容)

  • paramlinks 还被添加到主索引以及域对象列表中,这使得它们可以通过 searchindex.js 系统进行搜索。(0.3.0 新增)

样式表

段落链接涉及一个简短的样式表,以便在悬停时可见。此表单称为 sphinx_paramlinks.css,插件会自动将其复制到输出目录的 _static 目录。该样式表通过 Sphinx.add_stylesheet() 钩子添加到模板命名空间中存在的 css_files 列表。

自定义

要自定义链接样式,您可以通过添加自定义样式表来覆盖 sphinx_paramlinks.css 的配置

app.add_css_file("path/to/custom.css")

如果参数名称是超链接,HTML 代码将类似于以下内容

<a class="paramname reference internal" href="#package.method.params.parameter_name">
     <strong>parameter_name</strong>
</a>

paramnamesphinx-paramlinks 定义,可以用于自定义样式。

如果在超链接后插入链接符号,HTML 代码将类似于以下内容

<a class="paramlink headerlink reference internal" href="#package.method.params.parameter_name">¶</a>

paramlinksphinx-paramlinks 定义,可以用于自定义样式。

兼容性

Python 兼容性

sphinx-paramlinks 完全兼容 Python 3。

Sphinx 兼容性

我尽量减少了对 Sphinx 的假设,并只使用非常简单的公共 API,以便未来的 Sphinx 版本中的架构变化不会破坏此插件。为了创建此插件,我在 Sphinx 源代码中花费了数小时,并尝试了许多不同的方法来实现功能的不同方面;希望这里的内容尽可能简单和稳定,基于 Sphinx 当前扩展能力的当前扩展。

涉及使用一些内部元素的一个元素是使用 sphinx.domains.python.PyXRefRole 类,这是目前定义诸如 :meth::func: 等角色的 Sphinx 类。对象按原样使用,以定义 :paramref: 角色该角色产生的产品随后通过标准钩子进行转换。

另一个假设是为了定位 Sphinx 为 :param: 标签创建的 RST 节点,我们查看 nodes.strong,假设这是当前用于在 RST 中渲染 :param: 的节点类型。如果这发生变化,或者需要扩展以支持其他域,则可以根据需要打开此遍历。这部分很困难,因为 Sphinx 真的没有提供任何钩子来处理域的“信息字段列表”方面。

总体而言,这里的做法是将额外信息应用于进入Sphinx系统的结构,然后当数据返回时进行一些转换。这尽可能减少了对Sphinx如何执行其操作的依赖,而不是使用自定义域和大量注入API,这些API可能会在未来的版本中更改。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

sphinx-paramlinks-0.6.0.tar.gz (12.4 kB 查看哈希值)

上传时间 源代码

由以下提供支持