import markdown html = markdown.markdown(text, extensions=['fenced_code'])
text
- разметка Markdown,extensions
- список расширений модуля.Расширение markdown.extensions.fenced_code
добавляет дополнительный способ определения изолированного блоков кода, которые определяются с использованием синтаксиса, популяризированного в GitHub Flavored Markdown.
Изолированные блоки кода начинаются с трех или более обратных кавычек ``` или тильд ~~~
в отдельной строке и заканчиваются соответствующим набором обратных кавычек или тильд, так же в отдельной строке. Заключительный набор должен содержать такое же количество и тип символов, что и открывающий набор. Рекомендуется размещать пустую строку до и после блока кода.
Абзац перед блоком кода. ``` Однострочный блок кода ``` Абзац после блока кода.
В отличие от блоков кода с отступом, изолированный блок кода может сразу следовать за элементом списка, не становясь его частью.
Язык кода в блоке кода может быть указан для использования для подсветки синтаксиса и т. д. Язык должен начинаться с точки и не содержать пробелов .language-name
.
``` { .html } <p>HTML Document</p> ```
Если язык кода является единственным параметром, то фигурные скобки и/или точка могут быть исключены:
``` html <p>HTML Document</p> ```
В дополнение к языку кода, могут быть определены дополнительные классы, путем добавления к ним точки, как и язык кода.
``` { .html .foo .bar } <p>HTML Document</p> ```
При определении нескольких классов только первый класс будет использоваться в качестве языка для блока кода. Все остальные присваиваются предварительному тегу без изменений. Кроме того, фигурные скобки и точка необходимы для всех классов, включая класс языка, если определено более одного класса.
В приведенном выше примере будет выведен следующий HTML-код:
<pre class="foo bar"><code class="language-html"><p>HTML Document</p> </code></pre>
id
для блока кода.Для блока кода может быть определен идентификатор id
, что позволит ссылаться на блок кода, используя хеш URL. Другими словами, из любого места в том же документе можно будет ссылаться на блок кода с помощью [link](#example)
. Имя идентификатора должно начинаться с символа решетки #
и содержать только символы, разрешенные в атрибутах идентификатора HTML.
``` { #example } A linkable code block ```
Атрибут id
присваивается тегу <pre>
. В приведенном выше примере будет выведен следующий HTML-код:
<pre id="example"><code>A linkable code block </code></pre>
Идентификатор id
могут быть определены вместе с языком блока кода и другими классами или любыми другими поддерживаемыми атрибутами.
``` { #example .lang .foo .bar } A linkable code block ```
import markdown text = """ ``` { #example .html .foo .bar } <p>HTML Document</p> ``` """ html = markdown.markdown(text, extensions=['fenced_code']) print(html) # <pre id="example" class="foo bar"><code class="language-html"><p>HTML Document</p> # </code></pre>