Sphinx-添加要在HTML模板中使用的自定义字段/变量
我试图从Sphinx-添加要在HTML模板中使用的自定义字段/变量,html,variables,python-sphinx,Html,Variables,Python Sphinx,我试图从.rst文件中提取要包含在HTML模板中的元信息。 我想如果我把 .. :newVariable: My Text 在.rst文件中,然后使用我自己的模板构建HTML,我将能够在HTML标题中包含newVariable。但它不起作用。我试了两件事,但都没用 这在不修改Sphinx源代码的情况下是可以解决的吗?我不确定这是否准确地回答了您的问题,但是有一个名为html\u context的字典,您可以将它放在Sphinx配置文件(conf.py)中,它允许您定义自定义变量,然后在html
.rst
文件中提取要包含在HTML模板中的元信息。
我想如果我把
.. :newVariable: My Text
在.rst文件中,然后使用我自己的模板构建HTML,我将能够在HTML标题中包含newVariable
。但它不起作用。我试了两件事,但都没用
这在不修改Sphinx源代码的情况下是可以解决的吗?我不确定这是否准确地回答了您的问题,但是有一个名为
html\u context
的字典,您可以将它放在Sphinx配置文件(conf.py)中,它允许您定义自定义变量,然后在html模板中呈现。您可以在此处查看文档:
在我的应用程序中,我有一个要在index.html文档启动页面中呈现的软件发布日期列表。我是这样设置的:
在releases.py:
RELEASES = [
( "Jun 05, 2014", "095", "" ),
( "May 28, 2014", "094", "" ),
( "Apr 29, 2014", "093", "" ),
...
]
# Get list of releases for index page rendering
import releases
html_context = {
'releases' : releases.RELEASES,
}
{%- for release in releases %}
<p><span class="style4"><em><strong>{{ release[0] }} ... {{ release[1] }} was released ... </p>
{%- endfor %}
在conf.py中:
RELEASES = [
( "Jun 05, 2014", "095", "" ),
( "May 28, 2014", "094", "" ),
( "Apr 29, 2014", "093", "" ),
...
]
# Get list of releases for index page rendering
import releases
html_context = {
'releases' : releases.RELEASES,
}
{%- for release in releases %}
<p><span class="style4"><em><strong>{{ release[0] }} ... {{ release[1] }} was released ... </p>
{%- endfor %}
在index.html中:
RELEASES = [
( "Jun 05, 2014", "095", "" ),
( "May 28, 2014", "094", "" ),
( "Apr 29, 2014", "093", "" ),
...
]
# Get list of releases for index page rendering
import releases
html_context = {
'releases' : releases.RELEASES,
}
{%- for release in releases %}
<p><span class="style4"><em><strong>{{ release[0] }} ... {{ release[1] }} was released ... </p>
{%- endfor %}
{%-用于发布版本%}
{{release[0]}}。。。{{release[1]}}已发布
{%-endfor%}
在.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变量
及其值
注意,在模板中,meta
指的是第二个字段列表metatags
指的是从构建的、为标题meta标记生成的docutils HTML。。meta::
。它们是两个不同的对象,具有相同的名称