Multimarkdown에서 명명 된 앵커에 연결하는 방법은 무엇입니까?


573

내부 링크 / 명명 된 앵커에 대한 MultiMarkdown의 지원에 대한 언급이 많았지 만 실제로 수행하는 방법에 대한 단일 예를 찾을 수 없습니다.

명명 된 앵커를 나타내는 구문은 무엇이며 다른 URL에 링크하는 것과 동일한 구문은 무엇입니까 (대신 #foo 만 사용 http://....)?


목차를 만들기 위해이 작업을 수행하는 경우 이것을 자동화하기 위해 doctoc 을 권장 합니다 ( node.js 필요 ). Doctoc은 마크 다운 코드를 생성하므로 @ user1789493의 답변에 설명 된대로 문서 전체의 제목에 링크하는 방법의 예를 제공합니다.
James Owers

답변:


659

표준 마크 다운에서 <a name="abcd"></a>링크하려는 곳에 앵커를 배치 하고 같은 페이지 에서 앵커 를 참조하십시오 [link text](#abcd).

(이 답변에 설명 된 이유로 사용 name=하고 그렇지 않습니다 .)id=

원격 참조는 [link text](http://...#abcd)물론 사용할 수 있습니다 .

소스 및 대상 텍스트를 제어 할 수 있다면 이는 꿈처럼 작동합니다. 앵커는 제목에 나타날 수도 있습니다.

### <a name="head1234"></a>A Heading in this SO entry!

생산 :

이 SO 항목의 제목!

그리고 우리는 그것에 링크 할 수도 있습니다 :

and we can even [link](#head1234) to it so:

(따라서 앵커가 제거되어 링크가 작동하지 않습니다.)


11
@ jj1bdx 지금하고 있어요- <a id="id"></a>형태가 최고입니다. 이 SO 질문 / 답변을 참조하십시오 .
Steve Powell

스티브. MultiMarkdown에 관한 질문을 제외하고는 답변으로 표시했습니다. 분명히 사람들의 투표는 이것이 유용한 추가 사항임을 나타냅니다. 감사합니다.
masukomi

3
참고 : Github markdown은 id 대신 name =을 사용할 것으로 예상합니다.
Dieter

@Dieter : name=XHTML에서 더 이상 사용되지 않지만 이제는 id=HTML5에서 부작용이 있음을 알았 으므로이 name=답변으로 되돌아갑니다 .
Steve Powell

3
github-flavored-markdown에서 작업 (루비 보석이 예상대로 렌더링)
Kedar Mhaswade

461

마크 다운 파일에 헤더가있는 경우 파일에서 헤더를 직접 연결할 수 있습니다.

마크 다운 헤더-

## The Header

이것은 암시 적 ID를 생성합니다 #the-header(내부 공백을 하이픈으로 바꾸고 소문자로 만듭니다).

이 ID로 이동하려면 다음과 같은 링크를 만들 수 있습니다.

[Link to Header](#the-header)

이것은 다음과 같습니다.

<a href="#the-header">Link to Header</a>

참조 이름은 소문자 #header입니다.


30
BitBucket은 앵커 ID 앞에 "markdown-header-"를 붙인 것 같습니다. 따라서 헤더가 ## This Header ##인 경우 링크는입니다 [To This Header](#markdown-header-this-header). 헤더의 ID가 확실하지 않으면 페이지 관리자를 사용하여 HTML 값을 확인하십시오.
Vinney Kelly

Pandoc 확장 마크 다운에서 나를 위해 작동하지 않았습니다. 다른 곳에서 작동 할 수 있습니다.
Zelphir Kaltstahl

9
@SaurabhM 이것은 HTML 변환기에 대한 마크 다운이 표준을 준수하지 않는 경우에만 작동합니다. 표준은 앵커 태그를 생성하지 않습니다. 이제 많은 사람들이 고수하지 않지만 어디에서나 작동 하지 않을 것이라고 생각합니다 .
masukomi

9
왜 오, 왜 우리는 Markless와 같이 표준이없고 반으로 구운 것으로 표준화 해야 했습니까 ? AsciiDoc이 선두를 차지할 때까지 기다릴 수 없습니다.
hmijail의 신음은 resignees

1
GitHub는 헤더 이름 앞에 사용자 컨텐츠를 추가합니다 :[Link](user-content-the-header)
Melvin Witte

137

Multimarkdown 사용자 안내서 에서 발췌 (을 지적 트위터에 @MultiMarkdown 덕분에)

[Some Text][]"Some Text"라는 헤더에 연결됩니다.
예 :

### Some Text ###

여러 헤더가 동일한 제목을 갖는 경우를 명확하게하기 위해 선택의 선택적인 레이블 :

### Overview [MultiMarkdownOverview] ##

이를 통해 [MultiMarkdownOverview]를 사용하여이 섹션을 구체적으로 참조 할 수 있으며 Overview라는 다른 섹션은 참조 할 수 없습니다. 이것은 atx 또는 settext 스타일 헤더와 함께 작동합니다.

헤더에서 사용하는 것과 동일한 ID를 사용하여 앵커를 이미 정의한 경우 정의 된 앵커가 우선합니다.

문서 내의 헤더 외에도 이미지 및 표에 레이블을 제공하여 상호 참조에 사용할 수 있습니다.


FWIW, 23.4.1 현재 emacs의 마크 다운 모드에서는 작동하지 않습니다.
Attila Lendvai

5
마크 다운은 각주를 지원하지 않습니다. 따라서 대부분의 "마크 다운"모드에서는 작동하지 않습니다. 그러나 MultiMarkdown은 작가가보다 쉽게 ​​사용할 수 있도록 여러 가지 확장 기능을 지원합니다.
masukomi

11
Github은 헤더의 레이블을 지원하지 않는 것 같습니까?
andig

1
헤더에 ':'가 있으면 (적어도 codepen.io에서) 작동하지 않습니다.
Xiao Peng-ZenUML.com

2
그 링크는 MultiMarkdown을 쓴 사람의 문서입니다. codepen.io에서 무엇을하고 있는지 확실하지 않지만 문서가 정확하다고 확신합니다. MULTI Markdown NOT Markdown 을 명심하십시오 .
masukomi

100

나는 Github Flavored Markdown 을 잠시 테스트 했으며 4 가지 규칙으로 요약 할 수있다.

  1. 문장 부호가 삭제됩니다
  2. 선행 공백은 삭제됩니다
  3. 대문자는 소문자로 변환됩니다
  4. 문자 사이의 공백은로 변환됩니다 -

예를 들어 섹션 이름이 다음과 같은 경우 :

## 1.1 Hello World

이 방법으로 링크를 작성하십시오.

[Link](#11-hello-world)

이름에 하이픈이 있으면 어떻게합니까? 무엇으로 변환합니까? 단어와 하이픈 사이에는 공백이 있습니다. 예 :```-[My-Header] (# my --- header) # My-Header```맞습니까?
스펜서 폴락

이 스타일에 대한 용어는 stackoverflow.com/a/17820138/2908724 를 참조하십시오. 나는 "케밥 케이스"를 선호합니다.
감독

22

섹션과 관련된 내부 링크를 만드는 가장 좋은 방법은 목록을 만드는 것이지만 링크 대신 헤더에 공백이 있으면 #section 또는 # section-title을 입력하십시오.

---- MARKDOWN ------------------------

Go to section
* [Hello](#hello)  
* [Hello World](#hello-world)
* [Another section](#new-section)    <-- it's called 'Another section' in this list but refers to 'New section'


## Hello
### Hello World
## New section

---- 목록 미리보기 ------------------------

Go to section
Hello              <-- [Hello](#hello)                 -- go to `Hello` section
Hello World        <-- [Hello World](#hello world)     -- go to `Hello World` section
Another section    <-- [Another section](#new-section) -- go to `New section`

---- HTML ------------------------

<p>Go to section</p>
<ul>
<li><a href="#hello">Hello</a><br />
</li>
<li><a href="#hello-world">Hello World</a></li>
<li><a href="#new-section">Another section</a> &lt;– it’s called ‘Another section’ in this list but refers to ‘New section’</li>
</ul>
<h2 id="hello">Hello</h2>
<h3 id="hello-world">Hello World</h3>
<h2 id="new-section">New section</h2>

h1, h2, h3 등 헤더인지는 중요하지 않으므로 항상 하나만 사용하여 참조하십시오 #.
섹션 목록의 모든 참조는 위의 예와 같이 소문자로 변환되어야합니다.

섹션 링크는 소문자 여야합니다. 다른 방법으로는 작동하지 않습니다.
이 기술은 모든 Markdown 변형 및 MultiMarkdown에 매우 효과적입니다.

현재 Pandoc 을 사용하여 문서 형식을 변환하고 있습니다. MultiMarkdown보다 훨씬 낫습니다.
판독 테스트


6
다른 의견에서 언급했듯이. 실제로 표준을 따르는 마크 다운-> html 변환기에서는 작동하지 않습니다. 제목에 앵커 태그를 만드는 것은 일부 변환기에서만 발생합니다. 게다가, 그들은 모두 공백을 대시로 변환하지는 않습니다. 이것은 믿을 수 없습니다.
masukomi

1
"Markdown Preview"라는 내장 패키지가있는 Atom 코드 편집기 에서 GitHub Markdown을 사용하고 있습니다 . 미리보기 모드에서 컨텍스트 메뉴 "HTML로 저장 ..."을 사용하여 html 파일을 만듭니다.
rafr3

예, 제 요점은 다른 곳에서 작동하는 기술을 믿을 수 없으며 질문이나 대답도 Atom의 마크 다운에 관한 것이 아닙니다. 문제는 Markdown에 관한 것이 아니라 MultiMarkdown에 관한 것입니다.
masukomi

이 링크 방법을 사용하고 있지만 작동하지 않습니다. 섹션 / 해당 헤더로 미끄러지지 않습니다.
Tom Kustermans

대소 문자를 구분하여 머리를 구분하십시오. 를 정의하면 ## Hello다음과 같이 참조해야합니다.[Whatever you want](#Hello)
Victor Augusto

9

mdcharm에서는 다음과 같습니다.

* [Descripción](#descripcion)
* [Funcionamiento](#funcionamiento)
* [Instalación](#instalacion)
* [Configuración](#configuracion)

### Descripción {#descripcion}
### Funcionamiento {#funcionamiento}
### Instalación {#instalacion}
### Configuración {#configuracion}

2

여기 내 해결책이 있습니다 ( SaraubhM의 답변 에서 파생 됨 )

**Jump To**: [Hotkeys & Markers](#hotkeys-markers) / [Radii](#radii) / [Route Wizard 2.0](#route-wizard-2-0)

어느 것이 당신에게줍니다 :

Jump To : 핫키 및 마커 / Radii / Route Wizard 2.0

의 변경 주 .-또한의 손실 &링크에 있습니다.

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