В Markdown, как лучше всего связать фрагмент страницы, например #some_id? - PullRequest
112 голосов
/ 20 июля 2010

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

<div id="mylink" /> 

и для ссылки сделаю:

[My link](#mylink)

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

Есть идеи?

Ответы [ 5 ]

147 голосов
/ 07 сентября 2011

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

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

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

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

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

и ссылку на него, используя ссылку на уценку:

[This is the link text](#headin)

или

[some text](#sometext)

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

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

19 голосов
/ 14 ноября 2015

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

Например, если у вас установлена ​​скидка

My header
---------

Полученный HTML будет выглядеть так:

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

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

13 голосов
/ 06 мая 2011

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

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

## Header 2 ##      {#header2}

, а затем

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

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

3 голосов
/ 21 июля 2010

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

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

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

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

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

1 голос
/ 07 марта 2019

Для тех, кто использует 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 (что нарушает this и другие расширения предварительного просмотра в Visual Studio), либо удалить emoji:

Here's [how to setup](#-configuration-) //? Configuration ?
Here's [how to setup](#configuration) //Configuration

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...