Как сделать ссылку на именованный якорь в Multimarkdown? - PullRequest
499 голосов
/ 14 июля 2011

Я сталкивался с рядом упоминаний о поддержке MultiMarkdown внутренних ссылок / именованных якорей, но я не могу найти ни одного примера того, как на самом деле это сделать.

Итак, каков синтаксис для обозначения именованного якоря и каков синтаксис для ссылки на него так же, как для ссылки на любые другие URL-адреса (только с использованием #foo вместо http://....)?

Ответы [ 7 ]

598 голосов
/ 10 августа 2011

В стандартной уценке разместите якорь <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 ссылка не работает, потому что привязка удалена.)

354 голосов
/ 06 апреля 2013

Если у вас есть заголовки в файлах уценки, вы можете напрямую связать их в файле.

заголовок уценки -

## The Header

это сгенерирует неявный идентификатор #the-header (замените внутренние пробелы дефисами и сделайте их строчными).

Чтобы перейти к этому идентификатору, вы можете создать ссылку следующим образом:

[Link to Header](#the-header)

Это эквивалентно:

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

Обратите внимание, что имя ссылки в нижнем регистре #header.

127 голосов
/ 15 июля 2011

Взято из Multimarkdown Руководство пользователя (спасибо @MultiMarkdown в Twitter за указание на это)

[Some Text][] будет ссылаться на заголовок с именем «Some Text»
например

### Some Text ###

Дополнительная метка по вашему выбору, чтобы помочь устранить неоднозначность в случаях, когда несколько заголовков имеют одинаковый заголовок:

### Overview [MultiMarkdownOverview] ##

Это позволяет вам использовать [MultiMarkdownOverview] для ссылки на этот раздел специально, а не на другой раздел под названием Обзор. Это работает с заголовками в стиле atx или settext.

Если вы уже определили привязку, используя тот же идентификатор, который используется заголовком, тогда определенная привязка имеет приоритет.

Помимо заголовков в документе, вы можете предоставить метки для изображений и таблиц, которые затем можно будет использовать и для перекрестных ссылок.

88 голосов
/ 21 июля 2016

Я тестировал Github Flavored Markdown некоторое время и могу суммировать по четырем правилам:

  1. метки пунктуации будут удалены
  2. пропущены начальные пробелы
  3. заглавные буквы будут преобразованы в строчные
  4. пробелы между буквами будут преобразованы в -

Например, если ваш раздел назван так:

## 1.1 Hello World

Создайте ссылку на него следующим образом:

[Link](#11-hello-world)
19 голосов
/ 23 января 2016

Лучший способ создать внутренние ссылки (связанные с разделами) - создать список, но вместо ссылки введите #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 голосов
/ 03 августа 2018

В mdcharm это так:

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

### Descripción {#descripcion}
### Funcionamiento {#funcionamiento}
### Instalación {#instalacion}
### Configuración {#configuracion}
2 голосов
/ 04 мая 2017

Вот мое решение (получено из ответа SaraubhM)

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

, которое дает вам:

Перейти к : горячие клавиши и маркеры / Radii / Route Wizard 2.0

Обратите внимание на изменения с и . на -, а также потерю & в ссылках.

...