gpt4 book ai didi

python - 使用 HTML5 编写器删除 docutils 输出中的 docinfo

转载 作者:可可西里 更新时间:2023-11-01 13:20:28 29 4
gpt4 key购买 nike

随着 docutils python 库,使用 html5 时作者,我找不到将文档信息(源代码开头的字段)包含在输出中的方法。

这是一个最小的例子:

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">元素。

pub.set_components(... 行中设置了 HTML5 编写器的使用。如果我改用 html我没有这个问题,但为了我的使用,我需要 HTML5 编写器而不是标准的 HTML 编写器。

奇怪的是文档似乎说使用 pub.writer.parts['fragment'] (或等效的 pub.writer.parts['body'] )应该从输出中删除文档信息:

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

我是做错了什么还是 docutils 的 HTML5 编写器中的错误? ?

最佳答案

我建议你使用 rst2html5而不是 Docutils:

from rst2html5_ import HTML5Writer
from docutils.core import publish_parts

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.
'''

parts = publish_parts(writer=HTML5Writer(), source=SOURCE)
print(parts['body'])

这是结果:

<section id="title">
<h1>Title</h1>
<p>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.</p>
</section>

关于python - 使用 HTML5 编写器删除 docutils 输出中的 docinfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50423279/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com