【发布时间】:2018-05-19 08:21:46
【问题描述】:
使用docutils python 库,当使用html5 编写器时,我找不到一种方法不 将 docinfo(源开头的字段)包含在输出中。
这是一个最小的例子:
import docutils.io, docutils.core
SOURCE = '''\
:key: value
Title
========
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren,
no sea takimata sanctus est Lorem ipsum dolor sit amet.
'''
docutils_params = {
'input_encoding': 'utf-8',
}
pub = docutils.core.Publisher(
source_class=docutils.io.StringInput,
destination_class=docutils.io.StringOutput)
pub.set_components('standalone', 'restructuredtext', 'html5')
pub.process_programmatic_settings(None, docutils_params, None)
pub.set_source(SOURCE)
pub.publish()
# same thing with parts['body']
body = pub.writer.parts['fragment']
print(body)
这是输出的第一行:
<dl class="docinfo simple">
<dt class="key">key</dt>
<dd class="key"><p>value</p>
</dd>
</dl>
<div class="section" id="title">
<h1>Title</h1>
<p>Lorem ipsum dolor sit amet,
我不想要的是整个 <dl class="docinfo simple"> 元素。
HTML5编写器的使用在pub.set_components(...这一行设置
相反,如果我使用html,我没有这个问题,但为了我的使用,我需要 HTML5 编写器,而不是标准的 HTML 编写器。
奇怪的是,文档似乎说使用 pub.writer.parts['fragment'](或等效的 pub.writer.parts['body'])应该从输出中删除 docinfo:
parts['fragment']包含文档正文(不是 HTML )。换句话说,它包含整个文档,减去文档标题、副标题、docinfo、页眉和页脚。
我做错了什么还是docutils 的 HTML5 编写器中的错误?
【问题讨论】:
标签: python html restructuredtext docutils