我正在为我的博客/网站使用 reStructuredText,并且我想添加一个全局包含文件。我可以访问并很高兴更改用于生成 html 输出的设置文件,但我无法弄清楚其中任何一个的语法:
- 将默认包含文件添加到解析器
- 在 python 中使用 docutils 在 python 中定义指令/内联角色等
我尝试阅读源代码和文档,但发现它有点难以理解。我希望我只是错过了一些非常明显的事情,但我想做类似以下的事情(第一部分就是已经存在的——你可以在 jekyll-rst 插件中看到文件的其余部分来源(指向它的链接)
import sys
from docutils.core import publish_parts
from optparse import OptionParser
from docutils.frontend import OptionParser as DocutilsOptionParser
from docutils.parsers.rst import Parser
# sets up a writer that is then called to parse rst pages repeatedly
def transform(writer=None, part=None):
p = OptionParser(add_help_option=False)
# Collect all the command line options
docutils_parser = DocutilsOptionParser(components=(writer, Parser()))
for group in docutils_parser.option_groups:
p.add_option_group(group.title, None).add_options(group.option_list)
p.add_option('--part', default=part)
opts, args = p.parse_args()
# ... more settings, etc
# then I just tell the parser/writer to process specified file X.rst every time
# (or alternately a python file defining more roles...but nicer if in rst)
有没有一种简单的方法可以做到这一点?defaults.rst
定义一个文件并每次都加载它会很棒。
编辑:这里有一些我希望能够全局包含的示例(自定义指令也很好,但我可能会在代码中编写这些指令)
.. role:: raw-html(raw)
:format: html
.. |common-substitution| replace:: apples and orange
.. |another common substitution| replace:: etc