В библиотеке docutils
python при использовании модуля записи html5
я не могу найти способ not включить 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">
element.
Использование средства записи HTML5 задается в строке pub.set_components(...
Если вместо этого я использую html
У меня нет этой проблемы, но для своего использования мне нужен средство записи HTML5, а не стандартHTML one.
Что странно, так это то, что документация говорит, что использование pub.writer.parts['fragment']
(или эквивалентно pub.writer.parts['body']
) должно удалить информацию docinfo из вывода:
parts['fragment']
содержит тело документа (не HTML).Другими словами, он содержит весь документ, за исключением заголовка документа, субтитров, docinfo , верхнего и нижнего колонтитула.
source: http://docutils.sourceforge.net/docs/api/publisher.html
Я что-то не так делаю или это ошибка в HTML5 писателе docutils
?