.rst
HTML テンプレートに含めるファイルからメタ情報を抽出しようとしています。私は次のようなものを置くと仮定しました
.. :newVariable: My Text
newVariable
.rst ファイルに変換し、独自のテンプレートを使用して HTML を作成すると、HTML ヘッダーに含めることができ ます。しかし、うまくいきません。私は役に立たないことをいくつか試しました。
これは、Sphinx のソースを変更せずに解決できますか?
.rst
HTML テンプレートに含めるファイルからメタ情報を抽出しようとしています。私は次のようなものを置くと仮定しました
.. :newVariable: My Text
newVariable
.rst ファイルに変換し、独自のテンプレートを使用して HTML を作成すると、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
テンプレートでは、2 番目のフィールド リストを参照していることに注意してください。metatags
から構築されたヘッダー メタタグの docutils 生成 HTML を参照します.. meta::
。それらは同じ名前の 2 つの異なるオブジェクトです...
これがあなたの質問に正確に答えるかどうかはhtml_context
わかりませんが、sphinx 構成ファイル (conf.py) に配置できるという辞書があり、html テンプレートでレンダリングできるカスタム変数を定義できます。ここでドキュメントを確認できます: http://sphinx-doc.org/config.html#confval-html_context
私のアプリケーションでは、index.html doc スプラッシュ ページに表示したいソフトウェアのリリース日のリストがありました。私は次のように設定しました:
release.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 %}