Подтвердить что ты не робот

Перекрестная ссылка (названный якорь) в уценке

Существует ли синтаксис уценки для эквивалента:

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

... 

<a name="pookie">this is pookie</a>
4b9b3361

Ответ 1

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.)

Ответ 2

На 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 и посмотрите, как создаются привязки).

Ответ 3

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

См. спецификацию HTML 5, 5.9.8 Навигация к идентификатору фрагмента - используются как id, так и name.

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

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

Take me to [pookie](#pookie)

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

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

Ответ 4

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

Ответ 5

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)

Ответ 6

Поздно до вечеринки, но я думаю, что это дополнение может быть полезно для людей, работающих с 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).

Ответ 7

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

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

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

Ответ 8

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

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

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

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

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

`Some Text {: name= 'anchorName'}

Ответ 9

Для тех, кто ищет решение этой проблемы в GitBook. Вот как я это сделал (в GitBook). Вам нужно явно пометить свой заголовок, например так:

# My Anchored Heading {#my-anchor}

Тогда ссылка на этот якорь, как это

[link to my anchored heading](#my-anchor)

Решение и дополнительные примеры можно найти здесь: https://seadude.gitbooks.io/learn-gitbook/