Перекрестная ссылка (именованный якорь) в markdown


есть ли синтаксис markdown для эквивалента:

Take me to <a href="#pookie">pookie</a>

... 

<a name="pookie">this is pookie</a>
8 400

8 ответов:

Take me to [pookie](#pookie)

должен быть правильный синтаксис markdown для перехода к точке привязки с именем pookie.

вставить точку привязки этого имени используйте HTML:

<a name="pookie"></a>

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

### <a name="tith"></a>This is the Heading

очень хорошо работает. (Я бы продемонстрировал здесь, но так же рендерер снимает якорь.)

обратите внимание на самозакрывающиеся теги и id= versus name=

более ранняя версия этого сообщения предложила использовать <a id='tith' />, используя самозакрывающийся синтаксис для XHTML и используя вместо name.

XHTML позволяет любому тегу быть "пустым" и "самозакрывающимся". То есть, <tag /> - это сокращение для <tag></tag>, совпадающая пара тегов с пустым телом. Большинство браузеров будут принимать XHTML, но некоторые этого не делают. Чтобы избежать проблем с кросс-браузером, закройте тег явно с помощью <tag></tag>, как рекомендовано выше.

наконец, атрибут name= был устаревшим в XHTML, поэтому я изначально использовал id=, который узнает каждый. Однако HTML5 теперь создает глобальную переменную в JavaScript при использовании id=, и это не обязательно то, что вы хотите. Итак, используя name= теперь, вероятно, будет более дружелюбным.

(спасибо Скольжения Дуглас для объяснения XHTML мне, и мастер для указания на побочный эффект HTML5-см. комментарии и мастер ' s ответ подробнее. name= кажется, работает везде, хотя он устарел в XHTML.)

использовать name. Используяid не требуется в HTML 5 и создаст глобальные переменные в вашем JavaScript

смотрите спецификацию HTML 5,5.9.8 переход к идентификатору фрагмента - как id и есть.

важно знать, что большинство браузеров по-прежнему превращают идентификаторы в глобальные переменные. Вот это быстрый тест. Используя name позволяет избежать создания глобалов и любых конфликтов это может привести.

пример использования имени:

Take me to [pookie](#pookie)

и якорь назначения:

### <a name="pookie"></a>Some heading

On bitbucket.org проголосованное решение не сработает. Вместо этого при использовании заголовков (с##) можно ссылаться на них как на якоря, добавляя к ним префикс #markdown-header-my-header-name, где #markdown-header - это неявный префикс, генерируемый рендерером, а остальное-заголовок заголовка в нижнем регистре с тире, заменяющим пробелы.

пример

## My paragraph title

будет производить неявный якорь, как это

#markdown-header-my-paragraph-title

весь URL перед каждым ссылка на якорь является необязательной, т. е.

[Some text](#markdown-header-my-paragraph-title)

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

[Some text](https://bitbucket.org/some_project/some_page#markdown-header-my-paragraph-title) 

при условии, что они находятся на одной странице.

источник:https://bitbucket.org/tutorials/markdowndemo/overview (отредактируйте источник этого файла. md и посмотрите, как создаются якоря).

в исходном синтаксисе Markdown нет легкодоступного синтаксиса для этого, но Markdown Extra предоставляет средство, по крайней мере, назначить идентификаторы заголовков - которые затем можно легко связать. Обратите внимание также, что вы можете использовать обычный HTML как в Markdown, так и в Markdown Extra, и что name атрибут был заменен на id атрибут в более поздних версиях HTML.

Markdown Якорь поддерживает символа, поэтому ссылка на якорь на странице будет просто [Pookie](#pookie)

создание якоря фактически не поддерживается в Gruber Markdown, но находится в других реализациях, таких как Markdown Extra.

в Markdown Extra идентификатор привязки добавляется к заголовку или подзаголовку с помощью {#pookie}.

GitHub Ароматизированный Markdown на страницах репозитория Git (но не в Gists) автоматически генерирует анкоры С несколькими тегами разметки на всех заголовках (h1, h2, h3 и т. д.), в том числе:

  • id="user-content-HEADERTEXT"
  • class="anchor"
  • href="#HEADERTEXT"
  • aria-hidden="true" (это для значка ссылки svg, который отображается при наведении курсора мыши)

исключая значок aria / svg, когда один пишет:

  • # Header Title

Github генерирует:

  • <h1><a id="user-content-header-title" class="anchor" href="#header-title">Header Title</a></h1>

поэтому ничего не нужно делать для создания ссылок заголовка, и всегда можно ссылаться на них с помощью:

  • ссылка [Header Title](#header-title)

опоздал на вечеринку, но я думаю, что это дополнение может быть полезно для людей, работающих с rmarkdown. В rmarkdown существует встроенная поддержка ссылок на заголовки в вашем документе.

любой заголовок, определенный

# Header

можно ссылаться на

get me back to that header(#header)

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

---
title: "references in rmarkdown"
output:
  html_document: default
  pdf_document: default
---

# Header

Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. Write some more text. 

Go back to that [header](#header).

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

 echo "# Hello, world\!" | pandoc
 # => <h1 id="hello-world">Hello, world!</h1>

в зависимости от того, какой парсер markdown вы используете, якорь может меняться (возьмите пример ответов symbolrush и La muerte Peluda, они разные!). Смотрите это babelmark где вы можете увидеть сгенерированные якоря в зависимости от вашего уценки реализация.

используя последнюю уценку, вы должны иметь возможность использовать следующий синтаксис:

[](){:name='anchorName'}

Это должно создать следующий HTML:

<a name="anchorName"></a>

Если вы хотите, чтобы якорь имел текст, просто добавьте тест в квадратных скобках:

' какой-то текст{:name='anchorName'}