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

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

Атрибуты HTML-элементов в разметке Markdown. [УСТАРЕЛО.]

Синтаксис:

import markdown

html = markdown.markdown(some_text, extensions=['legacy_attrs'])

Параметры:

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

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

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

Описание:

Более старые версии модуля markdown до 3.0 включали встроенную и недокументированную поддержку данного синтаксиса для определения атрибутов HTML-элементов. Большинство пользователей никогда не использовали этот синтаксис, и он устарел в пользу расширения attr_list.

Расширение markdown.extensions.legacy_attrs восстанавливает прежнее поведение для пользователей, у которых есть существующие документы Markdown, использующие старый синтаксис, описанный ниже.

Атрибуты определяются включением {@key=value} в элемент, которому вы хотите назначить атрибуты. Например, чтобы определить класс для абзаца:

A paragraph with the attribute defined {@class=foo}anywhere within.

В результате получается следующий HTML:

<p class="foo">A paragraph with the attribute defined anywhere within.</p>

То же самое относится и к встроенным элементам:

Some *emphasized{@id=bar}* text.

В результате получается следующий HTML:

<p>Some <em id="bar">emphasized</em> text.</p>

Можно определять атрибуты в изображениях:

![Alt text{@id=baz}](path/to/image.jpg)

В результате получается следующий HTML:

<p><img alt="Alt text" id="baz" src="path/to/image.jpg" /></p>

Пример использования расширения legacy_attrs.

import markdown
text = """
A paragraph with the attribute defined {@class=foo}anywhere within. 
Some *emphasized{@id=bar}* text.

![Alt text{@id=baz}](path/to/image.jpg)
"""
html = markdown.markdown(text, extensions=['legacy_attrs'])
print(html)
# <p class="foo">A paragraph with the attribute defined anywhere within. 
# Some <em id="bar">emphasized</em> text.</p>
# <p><img alt="Alt text" id="baz" src="path/to/image.jpg" /></p>