В Markdown, какой лучший способ связать фрагмент страницы, т.е. #some_id?

Я пытаюсь выяснить, как ссылаться на другую область страницы с Markdown. Я могу заставить его работать, если я добавлю

<div id="mylink" /> 

и для ссылки do:

[My link](#mylink)

Но я предполагаю, что есть другой способ сделать ссылку на странице в Markdown, которая не включает тег div.

Любые идеи?

Ответ 1

См. этот ответ.

В заключение сделайте пункт назначения с

<a name="sometext"></a>

вставляется в любом месте разметки разметки (например, в заголовке:

## heading<a name="headin"></a>

и ссылку на него с помощью привязки уценки:

[This is the link text](#headin)

или

[some text](#sometext)

Не используйте <div> - это испортит макет для многих рендерингов.

(Я изменил id= на name= выше. См. этот ответ для утомительного объяснения.)

Ответ 2

Я думаю, это зависит от того, что вы используете для генерации html из вашей уценки. Я заметил, что jekyll (он используется страницами gihub.io по умолчанию) автоматически добавляет атрибут id = "" в заголовки в html, который он генерирует.

Например, если вы укажете

My header
---------

Полученный html будет выглядеть следующим образом:

<h2 id="my-header">My header</h2>

Таким образом, вы можете ссылаться на него просто [My link](#my-header)

Ответ 3

С PHP-версией Markdown вы также можете связать заголовки с фрагментами идентификаторов на странице, используя синтаксис, как любой из следующих, так как документировано здесь

Header 1            {#header1}
========

## Header 2 ##      {#header2}

а затем

[Link back to header 1](#header1)
[Link back to header 2](#header2)

К сожалению, этот синтаксис в настоящее время поддерживается только для заголовков, но по крайней мере он может быть полезен для создания оглавления.

Ответ 4

Целевым якорем для ссылки на HTML-странице может быть любой элемент с атрибутом id. См. Links на сайте W3C. Вот цитата из соответствующего раздела:

Целевые привязки в документах HTML может быть задано либо A элемент (назвав его именем атрибут) или любым другим элементом (именование с атрибутом id).

Markdown рассматривает HTML как HTML (см. Встроенный HTML), поэтому вы можете создавать идентификаторы фрагментов из любого элемента, который вам нравится. Если, например, вы хотите привязать к абзацу, просто оберните абзац в теге абзаца и включите id:

<p id="mylink">Lorem ipsum dolor sit amet...</p>

Затем используйте стандартный Markdown [My link](#mylink), чтобы создать ссылку на фрагмент якоря. Это поможет сохранить ваш HTML чистый, так как нет необходимости в дополнительной разметке.

Ответ 5

Любой, кто использует Visual Studio Team Foundation Server (TFS) 2015, действительно не любит встроенные элементы <a> или <div>, по крайней мере, в заголовках. Он также не любит эмодзи в заголовках:

### 🔧 Configuration 🔧

Lorem ipsum problem fixem.

Переводится на:

<h3 id="-configuration-">🔧 Configuration 🔧</h3>
<p>Lorem ipsum problem fixem.</p>

И поэтому ссылки должны либо использовать этот id (который нарушает это и другие расширения предварительного просмотра в Visual Studio), либо удалить emoji:

Here [how to setup](#-configuration-) //🔧 Configuration 🔧
Here [how to setup](#configuration) //Configuration

Где последняя версия работает как в режиме онлайн в TFS, так и в режиме предварительного просмотра уценки Visual Studio.