Python sphinx Sphinx:对不同的输出格式使用不同的指令
假设您有一个重构的文本文档,并希望使用Sphinx2.x将其导出为两种格式:HTML和PDF 您希望在这两种格式中放置一些稍微不同的内容。例如,文本“我是HTML”显示在HTML版本中,而“我是PDF”显示在PDF版本中文档的同一位置 无论导出格式如何,使用下面这样的替换指令都会给出“I am HTML”Python sphinx Sphinx:对不同的输出格式使用不同的指令,python-sphinx,restructuredtext,rst2pdf,Python Sphinx,Restructuredtext,Rst2pdf,假设您有一个重构的文本文档,并希望使用Sphinx2.x将其导出为两种格式:HTML和PDF 您希望在这两种格式中放置一些稍微不同的内容。例如,文本“我是HTML”显示在HTML版本中,而“我是PDF”显示在PDF版本中文档的同一位置 无论导出格式如何,使用下面这样的替换指令都会给出“I am HTML” .. |foo| replace:: HTML ⋮ I am |foo| 您能为不同的导出格式使用不同的指令吗?这有点笨重,但它对我有用: .. role:: latex(raw)
.. |foo| replace:: HTML
⋮
I am |foo|
您能为不同的导出格式使用不同的指令吗?这有点笨重,但它对我有用:
.. role:: latex(raw)
:format: latex
.. role:: html(raw)
:format: html
.. |foo| replace:: :latex:`LaTeX text`:html:`HTML text`
.. |bar| replace:: :latex:`other latex text`:html:`other html text`
解决方案可以是基于一些(例如,可以是builder标记)动态定义(或
rst\u epilog
)
conf.py
:
prolog_for_html = """
.. |document_type| replace:: HTML
"""
prolog_for_latex = """
.. |document_type| replace:: latex
"""
if tags.has('html_prolog'):
rst_prolog = prolog_for_html
elif tags.has('latex_prolog'):
rst_prolog = prolog_for_latex
document.rst
This is a |document_type| document.
Makefile
html latex:
sphinx-build -t $@_prolog -b $@ src build/$@
“原始”指令是否符合您的要求?不,我想使用相同的表示文本(如
|foo |
)。假设您的文档中有1000个foo,您想在一个地方定义它是什么,也许在conf.py的prolog中。它真的有效吗?PDF输出显示:|foo |
和| bar |
分别被乳胶文本html文本
和其他乳胶文本其他html文本
替换☹ 我用的是rst2pdf。在示例脚本中,我将所有的latex
替换为pdf
,但没有任何帮助。HTML看起来还可以。当我构建一个LaTeX文档时,以及当我使用pdflatex
构建PDF时,它都可以工作。我没有尝试rst2pdf
。