다른 페이지의 부제목 또는 앵커에 상호 참조 추가
reST / Sphinx 페이지의 상호 참조를 동일한 문서 세트의 다른 페이지에있는 하위 헤더 또는 앵커에 삽입하는 방법은 무엇입니까?
이 대답을 무시하십시오. 작동하지 않습니다. 아래 Louis의 대답을 사용 하는 것이 좋습니다 .
앵커의 경우 다음과 같이 "짧은"앵커 이름을 정의 할 수 있습니다.
.. _ShortAnchor:
Target Header goes here
=======================
Some text.
해당 헤더를 참조하려면 다음을 사용하십시오.
For more details, see ShortAnchor_.
이것은 ShortAnchor를 헤더의 전체 이름으로 확장합니다.
다음과 같은 전체 헤더 이름을 사용할 수도 있습니다.
See `Target Header goes here`_ chapter.
그러나 이것은 헤더 텍스트를 수정하기 쉬운 오류입니다.
이 모든 것은 하나의 최종 문서의 일부인 여러 소스 파일에서 작동합니다.
"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.
where Homebrew
is a section inside a different document named Installation.rst
.
This uses the autosection feature, so will need to edit config.py
with the following:
extensions = [
'sphinx.ext.autosectionlabel'
]
autosectionlabel_prefix_document = True
'IT story' 카테고리의 다른 글
상수는 정적으로 표시 할 수 없습니다. (0) | 2020.09.04 |
---|---|
SQL Server 데이터베이스 복원 오류 : 지정된 캐스트가 유효하지 않습니다. (0) | 2020.09.04 |
REST HATEOAS (성숙도 레벨 3)는 얼마나 유용하고 중요합니까? (0) | 2020.09.04 |
Xcode를 완전히 제거하고 모든 설정을 지우는 방법 (0) | 2020.09.04 |
bash : mkvirtualenv : 명령을 찾을 수 없습니다. (0) | 2020.09.04 |