在sphinx raw html里面使用jinja

时间:2013-07-27 11:14:44

标签: jinja2 python-sphinx restructuredtext

所以我有一个狮身人面像生成的网站。它的一部分是原始的html,由sphinx + jinja解析。 现在我想在原始html中使用指向toc-tree的某些部分的链接。 有没有办法实现这个目标? 目前我正在退出原始html并使用rst。 这看起来像

  .. raw:: html

      <small class="float-right example-links">

  :ref:`Examples<general_examples>`                                                         

  .. raw:: html

      </small>      

这不是丑陋的,它也会混淆生成的html。 有更好的方法吗?

谢谢:)

1 个答案:

答案 0 :(得分:0)

如果您知道如何生成部分<a href="..."...</a>,则可以使用HTML链接元素id。内容列表中项目的id只是小写的部分标题,其中空格用连字符-替换。所以这个reStructuredText

Title
=====

.. contents:: Table of Contents

Section 1
---------

Some filler text...

Section 2
---------

Some filler text...

会导致以下HTML代码段(<head>等已删除)

<body>
<div class="document" id="title">
<h1 class="title">Title</h1>

<div class="contents topic" id="table-of-contents">
<p class="topic-title first">Table of Contents</p>
<ul class="simple">
<li><a class="reference internal" href="#section-1" id="id1">Section 1</a></li>
<li><a class="reference internal" href="#section-2" id="id2">Section 2</a></li>
</ul>
</div>
<div class="section" id="section-1">
<h1><a class="toc-backref" href="#id1">Section 1</a></h1>
<p>Some filler text...</p>
</div>
<div class="section" id="section-2">
<h1><a class="toc-backref" href="#id2">Section 2</a></h1>
<p>Some filler text...</p>
</div>
</div>
</body>

因此,为了链接到目录项,您可以使用以下reStructuredText

.. raw:: html

   <small class="..."><a href="#section-1">Section 1</a></small>

如果您想链接到该部分本身,请将href值替换为#id1或相关部分的id