Сообщить об ошибке.

Расширение footnotes модуля markdown в Python

Создание сносок в разметке Мarkdown

Синтаксис:

import markdown

markdown.markdown(some_text, extensions=['footnotes'])

Параметры:

  • some_text - разметка Markdown,
  • extensions - список расширений модуля.

Возвращаемое значение:

  • текст в формате HTML.

Описание:

Расширение markdown.extensions.footnotes добавляет синтаксис для определения сносок в документах Markdown. Синтаксис сносок этого расширения модуля markdown следует общепринятому синтаксису сообщества Markdown в целом.

Например:

Footnotes[^1] have a label[^@#$%] and the footnote's content.

[^1]: This is a footnote content.
[^@#$%]: A footnote on the label: "@#$%".

Метка сноски должна начинаться с символа вставки ^ и может содержать любой встроенный текст (включая пробелы) между квадратными скобками [].

Содержание сноски должно начинаться с метки, за которой следует двоеточие и хотя бы один пробел. Метка, используемая для определения содержимого, должна точно соответствовать метке, используемой в теле (включая регистр букв и пробелы). Расшифровка значения сноски следует за меткой либо в той же строке, либо в следующей строке. Контент может содержать несколько строк, абзацев, блоков кода, цитат и почти любой другой синтаксис Markdown. Дополнительные строки должны иметь отступ на один уровень (четыре пробела или одна табуляция).

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

[^1]:
    The first paragraph of the definition.

    Paragraph two of the definition.

    > A blockquote with
    > multiple lines.

        a code block

    A final paragraph.

Для настройки вывода доступны следующие параметры:

  • PLACE_MARKER: текстовая строка, используемая для обозначения позиции, в которой отображаются сноски. По умолчанию ///Сноски здесь///. Если текст маркера места не найден в документе, то определения сносок помещаются в конец итогового документа HTML.
  • UNIQUE_IDS: следует ли избегать конфликтов между несколькими вызовами метода Markdown.reset(). По умолчанию False.
  • BACKLINK_TEXT: текстовая строка, которая связывает определение сноски с положением в документе. По умолчанию &#8617.
  • BACKLINK_TITLE: текстовая строка для атрибута HTML title ссылки определения сноски. %d будет заменен номером сноски. По умолчанию вернуться к сноске %d в тексте.
  • SEPARATOR: текстовая строка, используемая для установки разделителя сносок. По умолчанию :.

Пример создания сносок в разметке Мarkdown:

import markdown

text = """
Footnotes[^1] have a label[^@#$%] and the footnote's content.

[^1]: This is a footnote content.
[^@#$%]: A footnote on the label: "@#$%".
"""

html = markdown.markdown(text, extensions=['footnotes'])
print(html)
# <p>Footnotes<sup id="fnref:1"><a class="footnote-ref" href="#fn:1">1</a></sup> 
# have a label<sup id="fnref:@#$%"><a class="footnote-ref" href="#fn:@#$%">2</a></sup> 
# and the footnote's content.</p>
# <div class="footnote">
# <hr />
# <ol>
# <li id="fn:1">
# <p>This is a footnote content.&#160;
# <a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text">
# &#8617;</a>
# </p>
# </li>
# <li id="fn:@#$%">
# <p>A footnote on the label: "@#$%".&#160;
# <a class="footnote-backref" href="#fnref:@#$%" title="Jump back to footnote 2 in the text">
# &#8617;</a>
# </p>
# </li>
# </ol>
# </div>