reST / Sphinx 페이지의 상호 참조를 동일한 문서 세트의 다른 페이지에있는 하위 헤더 또는 앵커에 삽입하는 방법은 무엇입니까?
답변
“reST / Sphinx”라는 표현은 질문의 범위를 명확하지 않게 만듭니다. 그것은 일반적으로 reStructuredText에 대한인가 와 스핑크스, 또는 단지 reStructuredText 약 에 사용되는 스핑크스 (그리고 일반적으로 reStructuredText)? RST를 사용하는 사람들은 어느 시점에서 두 가지 경우에 모두 부딪 칠 가능성이 있으므로 두 가지를 모두 다룰 것입니다.
스핑크스
클래스 ( :class:) 와 같은 다양한 엔티티에 링크하는 데 사용할 수있는 도메인 별 지시문 외에도 여기:ref: 에 문서화 된 일반 지시문이 있습니다 . 그들은이 예를 제공합니다.
.. _my-reference-label:
Section to cross-reference
--------------------------
This is the text of the section.
It refers to the section itself, see :ref:`my-reference-label`.
RST에서 제공하는 일반적인 하이퍼 링크 메커니즘은 Sphinx에서 작동하지만 문서에서는 Sphinx를 사용할 때 사용하지 말 것을 권장합니다.
ref를 사용하는 것은 섹션에 대한 표준 reStructuredText 링크 (예 :
Section title_) 를 사용하는 것이 좋습니다. 이는 파일간에, 섹션 제목이 변경 될 때 및 상호 참조를 지원하는 모든 빌더에 대해 작동하기 때문입니다.
RST, 일반
RST 파일을 HTML로 변환하는 도구에는 반드시 컬렉션 개념이있는 것은 아닙니다 . 예를 들어 github를 사용하여 RST 파일을 HTML로 변환하거나 rst2html. 불행히도 원하는 결과를 얻기 위해 사용하는 다양한 방법은 사용중인 도구에 따라 다릅니다. 예를 들어, rst2html파일 A.rst을 사용 하고 파일 에서 “섹션”이라는 섹션에 파일 을 연결 other.rst하고 최종 HTML이 브라우저에서 작동하도록하려면 다음 A.rst을 포함합니다.
`This <other.html#section>`__ is a reference to a section in another
file, which works with ``rst2html``. Unfortunately, it does not work
when the HTML is generated through github.
최종 HTML 파일에 링크 id해야하며 섹션에 제공되는 내용을 알아야 합니다. github를 통해 제공되는 파일에 대해 동일한 작업을 수행하려면 다음을 수행하십시오.
`This <other.rst#section>`__ is a reference to a section in another
file, which works on github. Unfortunately, it does not work when you
use ``rst2html``.
여기에서도 id섹션에 주어진 것을 알아야합니다 . 그러나 HTML이 작성되는 RST 파일에 액세스 할 때만 가능하기 때문에 RST 파일에 링크합니다. (이 답변을 작성하는 시점에서 HTML에 직접 액세스하는 것은 허용되지 않습니다.)
답변
2016 년 새롭고 더 나은 답변!
autosection 확장은 쉽게이 작업을 수행 할 수 있습니다.
=============
Some Document
=============
Internal Headline
=================
그럼 나중에 …
===============
Some Other Doc
===============
A link- :ref:`Internal Headline`
이 확장 기능은 내장되어 있으므로 편집 만하면됩니다. conf.py
extensions = [
.
. other
. extensions
. already
. listed
.
'sphinx.ext.autosectionlabel',
]
주의해야 할 유일한 사항은 이제 문서 컬렉션에서 내부 헤드 라인을 복제 할 수 없다는 것입니다. (그럴 가치가 있습니다.)
답변
예:
Hey, read the :ref:`Installation:Homebrew` section.
Homebrew라는 다른 문서 내의 섹션은 어디에 있습니까 Installation.rst?
이것은 자동 섹션 기능을 사용하므로 다음을 사용하여 편집해야합니다 config.py.
extensions = [
'sphinx.ext.autosectionlabel'
]
autosectionlabel_prefix_document = True
