擅长:python、mysql、java
<p><code>docutils</code>提供{a1}将docutils用作库。在</p>
<p>因此使用<code>docutils.core.publish_string</code>可能是您的用例的一个选项。在</p>
<pre><code>In [90]: from docutils import core
In [91]: text = '|python|\n\n.. |python| image:: python.jpg\n'
In [92]: print core.publish_string(text)
<document source="<string>">
<paragraph>
<image alt="python" uri="python.jpg">
<substitution_definition names="python">
<image alt="python" uri="python.jpg">
</code></pre>
<p>默认情况下,<code>puplish_string</code>使用<code>pseudoxml</code>编写器,可以在输出中看到。
但是,如果您真的想从问题中得到纯文本输出,那么您需要一个从<code>docutils.writers.Writer</code>派生的自定义writer类。
我不确定如何实现这一点,也许<code>Sphinx</code><a href="https://bitbucket.org/birkenfeld/sphinx/src/8ec0b3a74e791e59dfee2d484380c34881530a89/sphinx/writers/text.py?at=default#cl-133" rel="nofollow">TextWriter</a>可以作为一个起点。在</p>
<p>似乎如果您真的只需要简单的替换,在文本中使用<code>replace</code>将是一个更简单的解决方案,如果您需要更复杂的事情,使用docutils实现这一点也很复杂。在</p>