マルチマークダウンで名前付きアンカーにリンクする方法は?


573

MultiMarkdownの内部リンク/名前付きアンカーのサポートについて多くの言及を見つけましたが、実際にそれを行う方法の1つの例を見つけることができません。

それで、名前付きアンカーを示すための構文は何http://....ですか、それに他のURLへのリンクと同じようにリンクするための構文は何ですか(の代わりに#fooのみを使用)?


目次を作成するためにこれを行っている場合、これを自動化するためにdoctocをお勧めします(node.jsが必要です)。Doctocはマークダウンコードを生成するため、ドキュメント全体の見出しにリンクする方法の例も提供します(@ user1789493の回答に記載されています)。
James Owers 2014年

回答:


659

標準のMarkdownでは、<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:

(SOでは、アンカーが削除されているため、リンクは機能しません。)


11
@ jj1bdx私は今します- <a id="id"></a>フォームが最良です。このSOの質問/回答を参照してください。
スティーブパウエル

ナイスな追加スティーブ。質問がMultiMarkdownに関するものであったことを除いて、私はそれを回答としてマークします。明らかに人々の投票はこれが有用な追加であったことを示しています。ほんとありがと。
masukomi

3
Fyi:Github markdownは、idではなくname =を使用することを期待しているようです。
Dieter

@Dieter:name=XHTMLでは非推奨でしたがid=、HTML5で副作用があることがわかりましたのでname=、この答えに戻ります。
Steve Powell

3
github-flavored-
markdownで動作します

462

マークダウンファイルにヘッダーがある場合は、ファイルに直接リンクできます。

マークダウンヘッダー-

## 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、2015

9
@SaurabhMこれは、マークダウンからHTMLへのコンバーターが標準に準拠していない場合にのみ機能します。標準はアンカータグを作成しません。現在、多くの人はこれに固執していませんが、これがどこでも機能することを期待すべきではありません。
ますこみ2016年

9
Markdownのように標準のない、中途半端もので標準する必要があったのはなぜですか。AsciiDocがリードするのを待ちきれません。
hmijailが辞任者を悼む2017

1
GitHubには、ヘッダーの名前の前にユーザーがコンテンツを追加します:[Link](user-content-the-header)
メルビンウィッテ

137

撮影Multimarkdownユーザーガイド(それを指摘してTwitterで@MultiMarkdownのおかげで)

[Some Text][]「いくつかのテキスト」というヘッダにリンクします
たとえば、

### Some Text ###

複数のヘッダーが同じタイトルを持つケースを明確にするために選択したオプションのラベル:

### Overview [MultiMarkdownOverview] ##

これにより、[MultiMarkdownOverview]を使用してこのセクションを具体的に参照することができ、Overviewという別のセクションを参照することはできません。これは、atxスタイルまたはsettextスタイルのヘッダーで機能します。

ヘッダーで使用されているのと同じIDを使用してアンカーを既に定義している場合は、定義されたアンカーが優先されます。

ドキュメント内のヘッダーに加えて、相互参照にも使用できる画像や表のラベルを提供できます。


FWIW、23.4.1以降、emacsのmarkdown-modeでは機能しません。
Attila Lendvai 2012年

5
Markdownは脚注をサポートしていません。そのため、ほとんどの「Markdown」モードでは機能しません。ただし、MultiMarkdownは、ライターの作業を容易にする多数の拡張機能をサポートしています。
masukomi 2012年

11
Githubはヘッダーのラベルをサポートしていないようですか?
andig 2015

1
ヘッダーに「:」がある場合、これは機能しません(少なくともcodepen.ioでは)。
Xiao Peng-ZenUML.com

2
そのリンクは、MultiMarkdownを書いた人によるドキュメントです。codepen.ioで何をしているのかわかりませんが、ドキュメントが正確であると確信しています。マークダウンではなくマルチマークダウンに注意してください。
ますこみ2015

100

しばらくの間、Github Flavored Markdownをテストしましたが、4つのルールで要約できます。

  1. 句読点は削除されます
  2. 先頭の空白は削除されます
  3. 大文字は小文字に変換されます
  4. 文字間のスペースは変換されます -

たとえば、セクションの名前が次の場合:

## 1.1 Hello World

次の方法でそれにリンクを作成します。

[Link](#11-hello-world)

名前にハイフンがある場合はどうなりますか?何に変換しますか?単語とハイフンの間にスペースがあることに注意してください。例: `` `-[My-Header](#my --- header)#My-Header` ``正しいでしょうか?
スペンサーポロック2018

このスタイルの用語については、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などであるかどうかは関係ありません。常に1つだけを使用して参照します#
上記の例に示すように、セクションリスト内のすべての参照は小文字のテキストに変換する必要があります。

セクションへのリンクは小文字でなければなりません。他の方法では機能しません。
この手法は、すべてのMarkdownバリアントとMultiMarkdownで非常にうまく機能します。

現在、Pandocを使用してドキュメント形式を変換しています。MultiMarkdownよりもはるかに優れています。
ここでパンドックをテストする


6
ここの他のコメントで述べたように。それは実際に標準に従うマークダウン-> htmlコンバータでは機能しません。見出しのアンカータグの作成は、一部のコンバーターでのみ発生します。さらに、スペースをすべてダッシュに変換するわけではありません。これは当てにできません。
ますこみ2016年

1
「Markdown Preview」という名前の組み込みパッケージを持つAtomコードエディターでGitHub Markdownを使用しています。プレビューモードから、コンテキストメニューの[HTMLとして保存...]を使用してhtmlファイルを作成します。
rafr3

はい、私のポイントは、あなたがあなたのテクニックが他のどこでも機能することを期待することはできず、質問もあなたの答えも特にAtomでのマークダウンについてではないということです。問題はMarkdownについてではなく、MultiMarkdownについてです。
ますこみ2016年

このリンク方法を使用していますが、機能しません。セクション/そのヘッダーにスライドしません。
Tom Kustermans、2016

大文字と小文字を区別するようにしてください。を定義する## 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)

それはあなたに与える:

ジャンプ先:ホットキーとマーカー/半径/ルートウィザード2.0

以下からの変化に注意して.まで-もが失わ&リンクでは。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.