Как добавить сноски в Markdown со вкусом GitHub?


273

Я просто пытаюсь добавить сноски в свой GitHub Gist , но это не работает:

Some long sentence. [^footnote]

[^footnote]: Test, [Link](https://google.com).

Я следую этому руководству и не думаю, что делаю что-то не так. Кто-то может указать на мою ошибку?


1
fletcher.github.io/peg-multimarkdown Примечание. В настоящее время вики-приложение Github поддерживает Markdown, но не MultiMarkdown. Где задокументировано, что это будет работать?
ta.speot.is

1
@EnricoSusatyo Не в простой уценке, но, например, Pandoc поддерживает это
mb21

2
Интересно, что уценка GitLab поддерживает [^footnote]синтаксис, даже до того, как он был официально добавлен в документацию
hmijail оплакивает отставников

1
@hmijail Вы имеете в виду сноску GitLab, а не Github, как спрашивал ОП.
Деви

1
@ Деви, да, вот почему я сказал «Уценка GitLab». Это может быть полезно, учитывая, что реализация GitLab, по-видимому, основана на GitHub, и что в целом Markdown, его разновидности и реализации представляют собой безобразный беспорядок. Резюме: "на всякий случай попробуйте это тоже".
hmijail скорбит по отставке

Ответы:


218

GitHub Flavored Markdown не поддерживает сноски, но вы можете вручную подделать его с помощью символов Unicode или надстрочных тегов, например <sup>1</sup>.

«Конечно, это не идеально, так как теперь вы несете ответственность за поддержание нумерации ваших сносок. Это работает достаточно хорошо, если у вас есть только один или два, хотя.


Спасибо, мне также нравится, как другие сайты имеют кликабельные ссылки, но я думаю, это единственный способ сделать это в GitHub.
Энрико Сусатио

6
Вы также можете использовать обычные числа, заключенные в квадратные скобки [1], что является довольно устоявшейся конвенцией для открытых текстовых сносок по моему опыту. (Черт возьми, почему я не могу сделать разрывы строк в комментариях.) [1] Т.е. как сноски Пандока Мандока за вычетом каретки.
Гильденстерн

342

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

<a name="myfootnote1">1</a>: Footnote content goes here

Затем укажите ссылку в другом месте документа

<sup>[1](#myfootnote1)</sup>

2
Это хороший ответ среднего уровня. Он поддерживает ясность намерений без, IMO , слишком большого раздувания для форматирования.
kayleeFrye_onDeck

3
Использование нечисловых ссылок устраняет вышеупомянутую проблему поддержания последовательных числовых ссылок - Example [[TPL]](#TPL)... #### Notes...<a name="TPL">[TPL]</a> footnote template
Рэндалл Уитмен

4
Не пропустите Часть 2 в ответе @ Matteo ниже. Я был так взволнован этим ответом (спасибо), что почти не потрудился прокрутить вниз. , ,
17

180

Более подробно развивая предыдущие ответы, вы можете добавить idатрибут к ссылке вашей сноски:

 Bla bla <sup id="a1">[1](#f1)</sup>

Затем из сноски, ссылка на него.

<b id="f1">1</b> Footnote content here. [↩](#a1)

Это добавит немного в конце содержания вашей сноски, что вернет ваших читателей к строке, содержащей ссылку на сноску.


8
Добавив небольшую поправку к ответу @ Matteo выше, я должен был использовать nameвместо этого idпри обращении к сноске. Т.е. <p>Bla bla <sup name="a1">[1](#f1)</sup>
oldfartdeveloper

2
Спасибо @oldfartdeveloper. Кажется, что оба nameи idработают для файлов README на github.com .., однако, не проверял гистограммы, хотя.
Маттео

1
Для тех, кто находит эти вопросы и ответы примерно в 2020 году: этот ответ работает на GitHub, PLUS он имеет дополнительную функцию: возврат к сноске-ссылке-вы-кликнули . Я нашел одно незначительное предостережение (объяснено здесь) , но это ответ АФА.
Симус

13

Я не смог заставить работать решения Сурьи и Маттео. Например, «(# f1)» просто отображался как текст и не стал ссылкой. Однако их решения привели меня к немного другому решению. (Я также отформатировал сноску и ссылку на исходный верхний индекс немного по-другому.)

В основной части текста:

Yadda yadda<a href="#note1" id="note1ref"><sup>1</sup></a>

В конце документа:

<a id="note1" href="#note1ref"><sup>1</sup></a>Here is the footnote text.

При нажатии на верхний индекс в сноске возвращается верхний индекс в исходном тексте.


Интересный. Вы использовали HTML, где @Matteo использовал GFM. Я смог заставить его решение работать, но это потребовало немного возиться . Как вы думаете, это причуды в движке рендеринга GitHub?
Симус

Понятия не имею, @ Симус. Насколько я помню, было немного проб и ошибок, когда я пытался понять это.
Марс

1
Это умное решение. И да - это все еще там, где мы находимся сегодня - методом проб и ошибок :)
Симус

12

Хотя я не знаю, официально ли это где-либо задокументировано, вы можете делать заметки в нижнем колонтитуле в Github

  1. Отметьте место, куда вы хотите вставить ссылку нижнего колонтитула, с помощью числа, заключенного в квадратные скобки, т.е. [1]

  2. В нижней части поста сделайте ссылку на пронумерованный маркер, за которым следует двоеточие и ссылка, IE [1]: http://www.example.com/link1

И после предварительного просмотра он будет отображаться в виде пронумерованных ссылок в теле сообщения.


5
Это не генерирует список ссылок в конце вашего документа. Как на страницах Википедии.
Милоса

должна быть двоеточие после квадратных скобок?
sAguinaga

18
Это не сноска, это ссылка.
Дэвид Моулз

step #1не работал как ссылка на уценку github (декабрь 2018).
ruhong

7

Для коротких заметок предоставление элемента привязки с атрибутом title создает «всплывающую подсказку».

<a title="Note text goes here."><sup>n</sup></a>

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


1
Это не сработало на странице уценки GitHub Enterprise 2.8
yegeniy

4

Это работает для меня:

блаблабла [<sup>1</sup>](#1)блаблабла

сноски: ссылка на блаблабла <a class="anchor" id="1"></a>


3

Я использовал вариант решения Матео. Я использую это в файлах Rmd, написанных с использованием разметки github (gfm) для сайта на платформе Jekyll, но те же файлы Rmd используются для создания PDF-файлов в различных контекстах. Файлы Rmd тяжелые математические, и математика отображается с MathJax на веб-сайте. Поэтому мне нужно решение, которое работает с gfm, которое обрабатывается через Jekyll, работает с pandoc-> pdflatex и совместимо с MathJax.

фрагмент из файла Rmd (который является GFM)

Here is a paragraph with an footnote <span id="a1">[[1]](#f1)</span>.

Footnotes
=========

1. <span id="f1"></span> This is a footnote. [$\hookleftarrow$](#a1)

$\hookleftarrow$это латекс, который работает для меня, так как у меня всегда включен MathJax. Я использую это, чтобы убедиться, что он правильно отображается в моих PDF-файлах. Я помещаю свои сноски в квадратные скобки, потому что верхний индекс сбивает с толку, если я помещаю сноску в какую-то встроенную математику.

Вот оно в действии: https://eeholmes.github.io/posts/2016-5-18-FI-recursion-1/

Эти заметки могут быть помещены в любом месте Rmd. Я добавляю список в конце, чтобы они были технически сносками.


Слегка касательно вопроса ОП, но в конечном итоге мне очень нравится ваше «решение, которое работает с gfm, которое обрабатывается с помощью Jekyll, работает с pandoc-> pdflatex и совместимо с MathJax». Аккуратный пример.
Boweeb


0

Хотя вопрос касается Markdown со вкусом GitHub, я думаю, стоит упомянуть, что с 2013 года GitHub поддерживает AsciiDoc, в который встроена эта функция. Вам нужно только переименовать файл с .adocрасширением и использовать:

A statement.footnote:[Clarification about this statement.]

A bold statement!footnote:disclaimer[Opinions are my own.]

Another bold statement.footnote:disclaimer[]

Документация вместе с окончательным результатом находится здесь .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.