允许sphinx函数/方法描述中的参数链接是可链接的
sphinx-paramlinks的Python项目详细描述
允许^{tt1}的Sphinx扩展$ python文档中的指令是可链接的。
这是一个实验性的,可能没有用的扩展,被 SQLAlchemy项目和相关项目。
配置
只要在conf.py:
extensions = [ 'sphinx_paramlinks', # your other sphinx extensions # ... ]
样式表
段落链接包含一个简短的样式表,允许链接 悬停时可见。这张纸叫做 sphinx_paramlinks.css插件会将其复制到_static 自动输出的目录。样式表被添加到 css_fileslist通过 Sphinx.add_stylesheet()钩子。
功能
:param:指令在sphinx函数/方法描述中 将给它们一个段落链接以便它们可以链接 到外部。
添加了一个新的文本角色:paramref:,其工作方式类似于:meth:, :func:等。只需附加参数名作为附加标记:
:paramref:`.EnvironmentContext.configure.transactional_ddl`
指令使用现有的Python角色来执行方法/函数 查找,首先搜索:meth:,然后搜索:class:,然后搜索 :func:role;然后分别应用参数名以生成 最终参考链接。(0.3.4中的新功能,搜索:meth:/:func:/ :class:单独使用,而不是使用:obj:来捕获大量 没有参数的东西)
paramlinks也被添加到主索引和列表中 域对象,它允许通过 搜索索引.js系统。(0.3.0中的新功能)
兼容性
python兼容性
该扩展是在Python2.7上开发的,但至少与 python 3.3也是。它包含一个u''literal-再次支持这些 从Python3.3开始。
斯芬克斯相容性
我试过very对狮身人面像做尽可能少的假设 并且只使用非常简单的公共api,以便将来的架构更改 sphinx版本不会破坏这个插件。为了开发这个插件 花了很多时间和狮身人面像的来源和尝试了许多不同的方法 功能的各种元素;希望这里是简单的 基于狮身人面像目前的扩展能力,尽可能稳定。
一个涉及到使用一些内部构件的元素是 sphinx.domains.python.PyXRefRole类,它当前是 sphinx类,它定义诸如:meth:之类的角色, :func:等。对象按原样使用,以便定义 :paramref:role;此角色的产品稍后被转换 使用标准挂钩。
另一个假设是,为了定位rst节点sphinx 为:param:标记创建,我们查看nodes.strong, 假设这是当前用于渲染的节点类型 :param:在rst中。如果此更改,或需要扩展到 支持其他域,此遍历可以根据需要打开。 这部分很难,因为狮身人面像真的没有提供任何挂钩。 如何处理域的“信息字段列表”方面。
总的来说,这里的方法是将额外的信息应用于构造 进入狮身人面像系统,然后做一些数据转换 回来了。这几乎不依赖于狮身人面像 尽可能的,而不是自定义域和大量使用 可能在将来的版本中更改的注入的API。
未来的增强功能/缺少的功能
扩展当前仅在 python角色,但也可以扩展为支持其他python角色 元素,如:returns:、:raises:等,也许还有 可以在其他角色中支持类似的功能。