Ответы:
Take me to [pookie](#pookie)
должна быть правильный синтаксис уценки для перехода к точке якоря с именем Pookie.
Чтобы вставить точку привязки с таким именем, используйте HTML:
<a name="pookie"></a>
Уценка, кажется, не возражает против того, где вы поставили опорную точку. Полезное место, чтобы поместить это в заголовке. Например:
### <a name="tith"></a>This is the Heading
работает очень хорошо. (Я бы продемонстрировал здесь, но средство визуализации SO удаляет якорь.)
id=
противname=
В более ранней версии этого поста предлагалось <a id='tith' />
использовать самозакрывающийся синтаксис для XHTML и использовать id
атрибут вместо name
.
XHTML позволяет любому тегу быть «пустым» и «самозакрытым». Таким образом, <tag />
это сокращенная <tag></tag>
пара подходящих тегов с пустым телом. Большинство браузеров принимают XHTML, но некоторые нет. Чтобы избежать кросс-браузерных проблем, закройте тег явно, используя <tag></tag>
, как рекомендовано выше.
Наконец, атрибут name=
был объявлен устаревшим в XHTML, поэтому я изначально использовал его id=
, что все признают. Тем не менее, HTML5 теперь создает глобальную переменную в JavaScript при использовании id=
, и это не обязательно то, что вы хотите. Таким образом, использование name=
теперь, вероятно, будет более дружественным.
(Благодаря Slipp Дугласа для объяснения XHTML мне, и гвоздезабивной для указывая на HTML5 побочный эффект - смотрите комментарии и гвоздильщик «s ответ более подробно. , name=
Кажется, работает везде, хотя это не рекомендуется в XHTML.)
<a>
без href, не означает, что он сам закрывается. Если только я полностью не сумасшедший, оба из них: test-xhtml11 и [ sln.6bitt.com/public/test-html5.html](test-html5) отображают остальную часть страницы в теге <a>. Идите вперед и проверьте с веб-инспектором по вашему выбору.
<a id="hi"/> rest of doc
, но с этим обращались как <a id="hi"> rest of doc</a>
. (И элементный анализ страницы тоже показывает это.) Моя ошибка: я посмотрел на элементы, отображаемые не в необработанном источнике. Как вы думаете, ответ должен быть изменен, в свете этого наблюдения?
name
Атрибут также создает глобальные переменные (см stackoverflow.com/questions/3434278/... ), так что вы можете также использовать id
атрибут в качестве целевого фрагмента URL - идентификатора, как и предполагалось.
На 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 и посмотрите, как создаются якоря).
## My paragraph title
создаст следующий якорь user-content-my-paragraph-title
, поэтому вы можете ссылаться на него с помощью [Some text] (# user-content-my-para-title). Однако я не нашел официальной документации для этого.
[linky](#header)
был достаточным якорем и работал, когда публиковался в Gist.
Используйте name
. Использование id
HTML не обязательно в HTML 5 и создаст глобальные переменные в вашем JavaScript
См. Спецификацию HTML 5, 5.9.8 Переход к идентификатору фрагмента - оба id
и name
используются.
Важно знать, что большинство браузеров по-прежнему превращают идентификаторы в глобальные переменные . Вот быстрый тест . Использование name
избегает создания глобалов и любых конфликтов, которые могут возникнуть.
Пример использования имени:
Take me to [pookie](#pookie)
И якорь назначения:
### <a name="pookie"></a>Some heading
name
и id
разные.
fineuploader
, вы не сможете использовать fineuploader
модуль. Избегание создания ненужных глобалов помогает избежать этих конфликтов.
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)
Нет доступного синтаксиса, чтобы сделать это в оригинальном синтаксисе Markdown, но Markdown Extra предоставляет средства, по крайней мере, для присвоения идентификаторов заголовкам, которые затем можно легко связать. Также обратите внимание, что вы можете использовать обычный HTML как в Markdown, так и в Markdown Extra, и что name
атрибут был заменен id
атрибутом в более поздних версиях HTML.
Для тех, кто ищет решение этой проблемы в GitBook. Вот как я заставил это работать (в GitBook). Вам нужно явно пометить свой заголовок, например так:
# My Anchored Heading {#my-anchor}
Тогда ссылка на этот якорь, как это
[link to my anchored heading](#my-anchor)
Решение и дополнительные примеры можно найти здесь: https://seadude.gitbooks.io/learn-gitbook/
Поздно на вечеринке, но я думаю, что это дополнение может быть полезно для людей, с которыми работает 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).
Используя последнюю версию Markdown, вы сможете использовать следующий синтаксис:
[](){:name='anchorName'}
Это должно создать следующий HTML:
<a name="anchorName"></a>
Если вы хотите, чтобы у привязки был текст, просто добавьте текст привязки в квадратных скобках:
[Some Text](){:name='anchorName'}
Maruku
знает об этом синтаксисе. Смотри бабелмарк.
Для наиболее распространенных генераторов уценки. У вас есть простой самогенерируемый якорь в каждом заголовке. Например, с помощью pandoc сгенерированный якорь будет слагом кебаба вашего заголовка.
echo "# Hello, world\!" | pandoc
# => <h1 id="hello-world">Hello, world!</h1>
В зависимости от того, какой анализатор уценки вы используете, якорь может измениться (возьмите пример ответов Symbolrush и La muerte Peluda, они разные!). Посмотрите эту метку, где вы можете увидеть сгенерированные привязки в зависимости от вашей реализации уценки .