Форматирование текста в ссылке в reStructuredText


как вы форматируете текст в обозначенной ссылке в reStructuredText?

в частности, я хочу создать следующий HTML из моего первого:

<a href="http://docs.python.org/library/optparse.html"><tt>optparse.OptionParser</tt> documentation documentation</a>

результат должен выглядеть так:

optparse.OptionParser документация

где "optparse.OptionParser " часть находится в шрифте фиксированной ширины.

пробовал

```optparse.OptionParser`` <http://docs.python.org/library/optparse.html>`_

однако, это дало

<tt class="docutils literal">`optparse.OptionParser</tt> documentation &lt;<a class="reference external" href="http://docs.python.org/library/optparse.html">http://docs.python.org/library/optparse.html</a>&gt;`_

, который выглядит вот так

`optparse.OptionParser documentation <http://docs.python.org/library/optparse.html>_

4 56

4 ответа:

такая конструкция:

Here you have |optparse.OptionParser|_.

.. |optparse.OptionParser| replace:: ``optparse.OptionParser`` documentation
.. _optparse.OptionParser: http://docs.python.org/library/optparse.html

производит этот HTML (некоторые linebreaks добавлены):

<p>Here you have 
  <a class="reference external" href="http://docs.python.org/library/optparse.html">
  <tt class="docutils literal"><span class="pre">optparse.OptionParser</span></tt> documentation</a>.
</p>

Я понимаю, что это не ровно то, что вы просили, но, возможно, это достаточно близко. См. также http://docutils.sourceforge.net/FAQ.html#is-nested-inline-markup-possible.

ты пробовал intersphinx? Используя это расширение, следующая разметка:

:py:class:`optparse.OptionParser`

производит этот HTML:

<a class="reference external" href="http://docs.python.org/2.6/library/optparse.html#optparse.OptionParser" title="(in Python v2.6)"><tt class="xref py py-class docutils literal"><span class="pre">optparse.OptionParser</span></tt></a>

протестировано с Python 2.6 и Sphinx 1.0.5.

взяв из той же странице часто задаваемых вопросов, на который ссылается mzjn:

The "raw" directive can be used to insert raw HTML into HTML output:

Here is some |stuff|.

.. |stuff| raw:: html

   <em>emphasized text containing a
   <a href="http://example.org">hyperlink</a> and
   <tt>inline literals</tt></em>

теоретически должно быть возможно делать сложные вещи с тем, что не может быть сделано с первым.

если вы хотите по существу получить HTML / CSS эквивалент

<span class="red">This is red text</span>

в reStructuredText с помощью Sphinx, вы можете сделать это, создав роль:

.. role:: red

тогда вы используете его так:

:red:`This is red text`

должна быть только одна галочка ` в конце строки. Вы, конечно, должны иметь

.red { color: red }

в вашем файле CSS.