reStructuredText에서 링크의 텍스트 서식 지정


82

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>\_

답변:


93

이 구성 :

Here you have |optparse.OptionParser|_.

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

다음 HTML을 생성합니다 (일부 줄 바꿈 추가됨).

<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참조하십시오 .


2
이것은 정말 아름답습니다. 나는 이것을 발견하기 전에 사용자 정의 확장을 작성하는 것을 포함하여 모든 종류의 과도하게 엔지니어링 된 솔루션을 찾고있었습니다.
Mad Physicist

92
이것은 정말 아름답 지 않습니다 . 이것은 끔찍합니다. 모든 정상적인 마크 업 언어는 2016 년이기 때문에 인라인 마크 업의 무한 중첩을 지원합니다. 컨텍스트없는 구문 분석은 1959 년 이후로 사소하게 해결되었습니다. ( Chomsky : "문법의 특정 형식 속성에 대해" ) reStructuredText 구문 분석기가 실제 컨텍스트를 수행 할 수 없음 -free 구문 분석은 다른 멋진 외관에 엉성하고 추악한 흠집입니다. reST의 잘 정의되고 확장 가능한 구문은 더 나은 가치가 있습니다. ( 누군가가 이것에 대해 나쁜 생각합니다. )
세실 카레를

1
FAQ 항목 의 "여기에 세부 정보"링크 가 흥미 롭습니다. 특히 "모호하지 않으면 다른 형태의 인라인 마크 업이 중첩 될 수 있습니다."; 그것이 일어날 유일한 방법은 누군가가 모호하지 않은 케이스를 처리하는 패치 세트를 만드는 데 찔러서 그런 다음 RST의 "약간 사양을 벗어난"풍미 가 모든 것이 거기에서 눈덩이처럼 튀어 나올 정도로 평범 해지는 지 궁금합니다. (또는 적어도 모호하지 않은 케이스에 대해 즉시 좋은 지원을받을 수 있습니다.)
JamesTheAwesomeDude

(같은 내 문서 링크이 단지 하이퍼 링크 작동하지를 통보 :ref:)
제이슨 S

6

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로 테스트되었습니다.


1
아, 난 스핑크스에 대해 몰랐어요. 감사합니다. 알게되어 기쁩니다. 에 대한 링크 optparse는 실제로는 예일뿐입니다. 실제로 모든 URI에 대한 링크의 텍스트 서식 지정에 관심이 있습니다.
gotgenes 2011 년

4

mzjn이 참조하는 동일한 FAQ 페이지에서 가져옵니다.

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>

이론적으로 RST로는 할 수없는 복잡한 일을 할 수 있어야합니다.


1
이것은 작동하지만 다른 작가 (LaTeX, PDF 등)도 중단합니다.
Jason S

0

본질적으로 HTML / CSS를 얻으려면

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

Sphinx를 사용하는 reStructuredText에서 역할을 생성하여이를 수행 할 수 있습니다.

.. role:: red

그런 다음 다음과 같이 사용합니다.

:red:`This is red text`

`위 줄 끝에 체크 표시가 하나만 있어야합니다 . 물론 당신은

.red { color: red }

CSS 파일에서.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.