使用docutils
python库,当使用html5
writer时,我找不到一种方法将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']
contains the document body (not the HTML ). In other words, it contains the entire document, less the document title, subtitle, docinfo, header, and footer.source: http://docutils.sourceforge.net/docs/api/publisher.html
我是做错了什么还是HTML5编写器中的一个bug?你知道吗
我建议您使用rst2html5而不是Docutils:
结果如下:
Docutils开发人员将其识别为一个bug并对其进行了修补。你知道吗
见
docutils-users
邮件列表here 和here@andref's answer很棒,不过,谢谢你指向这个包。你知道吗
相关问题 更多 >
编程相关推荐