我正在尝试从.rst
要包含在 HTML 模板中的文件中提取元信息。我假设如果我放类似的东西
.. :newVariable: My Text
到 .rst 文件中,然后使用我自己的模板构建 HTML,我将能够包含 newVariable
在 HTML 标头中。但它不起作用。我尝试了几件事无济于事。
这是否可以在不修改 Sphinx 源的情况下解决?
我正在尝试从.rst
要包含在 HTML 模板中的文件中提取元信息。我假设如果我放类似的东西
.. :newVariable: My Text
到 .rst 文件中,然后使用我自己的模板构建 HTML,我将能够包含 newVariable
在 HTML 标头中。但它不起作用。我尝试了几件事无济于事。
这是否可以在不修改 Sphinx 源的情况下解决?
在您的 .rst 文件中,在顶部放置一个字段列表,其中包含您要传递的变量名称和值。这些meta
信息不是必需的,但会显示出来,以便您查看代码的放置位置。
.. meta::
:author: My Company, Inc.
:description: Introduction to ...
:copyright: Copyright © 2014 My Company, Inc.
:my-variable: my variable's value
.. _introduction:
==================================================
Introduction to ....
==================================================
在您的模板中,您现在可以my-variable
使用以下代码进行访问:
{%- set my-variable = '' %}
{%- set my-variable_key = 'my-variable' %}
{%- if meta is defined %}
{%- if my-variable_key in meta.viewkeys() %}
{%- set my-variable = meta.get(my-variable_key) %}
{%- endif %}
{%- endif %}
您现在可以使用my-variable
它的价值。
注意在模板中,meta
指的是第二个字段列表;metatags
指的是 docutils 为标头元标记生成的 HTML,从.. meta::
. 它们是两个不同的对象,具有相同的名称...
我不确定这是否能准确回答您的问题,但是html_context
您可以在 sphinx 配置文件 (conf.py) 中放置一个名为的字典,它允许您定义自定义变量,然后您可以在 html 模板中呈现这些变量。您可以在此处查看文档:http: //sphinx-doc.org/config.html#confval-html_context
在我的应用程序中,我有一个软件发布日期列表,我想在我的 index.html 文档启动页面中呈现这些日期。我是这样设置的:
在releases.py中:
RELEASES = [
( "Jun 05, 2014", "095", "" ),
( "May 28, 2014", "094", "" ),
( "Apr 29, 2014", "093", "" ),
...
]
在 conf.py 中:
# Get list of releases for index page rendering
import releases
html_context = {
'releases' : releases.RELEASES,
}
在 index.html 中:
{%- for release in releases %}
<p><span class="style4"><em><strong>{{ release[0] }} ... {{ release[1] }} was released ... </p>
{%- endfor %}