Перекрестная ссылка (именованный якорь) в markdown
есть ли синтаксис markdown для эквивалента:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
8 ответов:
Take me to [pookie](#pookie)
должен быть правильный синтаксис markdown для перехода к точке привязки с именем pookie.
вставить точку привязки этого имени используйте HTML:
<a name="pookie"></a>
Markdown, похоже, не возражает, где вы ставите точку привязки. Полезное место, чтобы положить его в заголовке. Например:
### <a name="tith"></a>This is the Heading
очень хорошо работает. (Я бы продемонстрировал здесь, но так же рендерер снимает якорь.)
обратите внимание на самозакрывающиеся теги и
id=
versusname=
более ранняя версия этого сообщения предложила использовать
<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
файл, который показывает это поведение. Его можно связать к.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 где вы можете увидеть сгенерированные якоря в зависимости от вашего уценки реализация.