Существует ли синтаксис уценки для эквивалента:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
Существует ли синтаксис уценки для эквивалента:
Take me to <a href="#pookie">pookie</a>
...
<a name="pookie">this is pookie</a>
Take me to [pookie](#pookie)
должен быть правильным синтаксисом разметки, чтобы перейти к якорной точке с именем pookie.
Чтобы вставить опорную точку этого имени, используйте HTML:
<a name="pookie"></a>
Markdown, похоже, не возражает против того, где вы помещаете опорную точку. Полезное место для его размещения - в заголовке. Например:
### <a name="tith"></a>This is the Heading
работает очень хорошо. (Я бы продемонстрировал здесь, но SO renderer удаляет якорь.)
id=
по сравнению с name=
В более ранней версии этого сообщения предлагается использовать <a id='tith' />
, используя самозакрывающийся синтаксис для XHTML и используя атрибут id
вместо name
.
XHTML позволяет любому тегу быть "пустым" и "самозакрытым". То есть <tag />
является короткой для <tag></tag>
, совпадающей пары тегов с пустым телом. Большинство браузеров будут принимать XHTML, но некоторые из них этого не делают. Чтобы избежать проблем с перекрестным браузером, закройте тег явным образом, используя <tag></tag>
, как рекомендовано выше.
Наконец, атрибут name=
был устаревшим в XHTML, поэтому я изначально использовал id=
, который все распознают. Тем не менее, HTML5 теперь создает глобальную переменную в JavaScript при использовании id=
, и это необязательно будет тем, что вы хотите. Таким образом, использование name=
теперь, скорее всего, будет более дружелюбным.
(Благодаря Slipp Douglas для объяснения XHTML мне и nailer для указания Побочный эффект HTML5 - см. Комментарии и nailer answer для более подробной информации. name=
, похоже, работает повсюду, хотя он устарел в XHTML.)
На 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 и посмотрите, как создаются привязки).
Используйте name
. Использование id
не требуется в HTML 5 и создаст глобальные переменные в вашем JavaScript
См. спецификацию HTML 5, 5.9.8 Навигация к идентификатору фрагмента - используются как id
, так и name
.
Важно знать, что большинство браузеров по-прежнему включают идентификаторы в глобальные переменные. Здесь быстрый тест. Использование name
позволяет избежать создания глобальных переменных и любых конфликтов, которые могут возникнуть.
Пример использования имени:
Take me to [pookie](#pookie)
И якорь назначения:
### <a name="pookie"></a>Some heading
В исходном синтаксисе Markdown нет доступного синтаксиса, но Markdown Extra предоставляет средства, по меньшей мере, назначать идентификаторы заголовкам - которые вы можете легко связать. Также обратите внимание, что вы можете использовать обычный HTML как в Markdown, так и в Markdown Extra, а атрибут name
заменен атрибутом id
в более поздних версиях HTML.
Markdown Anchor поддерживает хэшмарк, поэтому ссылка на якорь на странице будет просто [Pookie](#pookie)
Генерация привязки фактически не поддерживается в Gruber Markdown, но есть в других реализациях, таких как Markdown Extra.
В Markdown Extra идентификатор привязки добавляется к заголовку или подзаголовку с помощью {#pookie}
.
Github Flavored 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>
В зависимости от того, какой вы используете анализатор уценки, якорь может измениться (возьмите пример symbolrush и ответы La Muerte Peluda, они разные!). Смотрите babelmark, где вы можете увидеть сгенерированные привязки в зависимости от вашей реализации уценки.
Используя последний Markdown, вы сможете использовать следующий синтаксис:
[](){:name='anchorName'}
Это должно создать следующий HTML:
<a name="anchorName"></a>
Если вы хотите, чтобы якорь имел текст, просто добавьте тест в квадратные скобки:
`Some Text {: name= 'anchorName'}
Для тех, кто ищет решение этой проблемы в GitBook. Вот как я это сделал (в GitBook). Вам нужно явно пометить свой заголовок, например так:
# My Anchored Heading {#my-anchor}
Тогда ссылка на этот якорь, как это
[link to my anchored heading](#my-anchor)
Решение и дополнительные примеры можно найти здесь: https://seadude.gitbooks.io/learn-gitbook/