【问题标题】:Sphinx HTML builder render functionSphinx HTML builder 渲染函数
【发布时间】:2018-09-12 07:42:07
【问题描述】:

我在我的rst 文件中包含了一个raw 指令:

.. raw:: html

   < html here >

在 HTML 中,有一个动态放置的字符串,其中包含 reStructuredText。由于它被放置在raw 指令中,因此它不会呈现为 HTML,而是保留为 reStructuredText。

因此,我怎样才能访问 sphinx 的渲染功能,以便我可以手动生成 HTML,因为它会在 raw 指令之外自动生成?

我阅读了几个 sphinx 文件,但可能缺少一些基本信息。

我的理解是:

  • jinjia用于模板渲染,不用于文件转换
  • sphinx 有多种构建器,一种是 html 构建器(例如make html

我尝试使用 pandoc 界面,但 pandoc 生成的 HTML 与 sphinx 不同。所以我需要访问狮身人面像转换功能。

似乎 docutils 用于转换,但单独运行它也会产生不同的 html。所以我假设 sphinx 使用了一个我不知道的模板。

谢谢!

【问题讨论】:

  • 问题不清楚。您是说将 reST 语法放在 HTML 内容中,而您又希望 raw 指令作为 reST 处理?如果是这样,那是不可能的。相反,您可以使用 HTML 开头的 raw 指令,然后是您的 reST,然后是关闭的 raw 指令。
  • 是的,这就是我想要的。两个方面:你说不可能,是的,不是正常使用狮身人面像。但是,应该可以通过调用 sphinx 内部使用的转换函数来手动处理该部分(将自定义 jinjia 过滤器添加到环境中)。
  • 但是,在考虑您的超级简单解决方案时,所有这些都变得不必要了——两个指令。嗯... :-)

标签: python python-sphinx


【解决方案1】:

使用带有 HTML 的开头 raw 指令,然后是您的 reST,然后是结尾 raw 指令。

.. raw:: html

   <html open>

Some reST stuff, oooh, a `link to the raw directive
<http://docutils.sourceforge.net/docs/ref/rst/directives.html#raw-data-pass-through>`_

.. raw:: html

   <html close>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    相关资源
    最近更新 更多