Преобразует Markdown разметку в HTML.
@USE
markdown.p
# статически
^markdown:parse[Text with [link](https://github.com "GitHub").]
# или объект класса
$markdown[^markdown::create[
^rem{ включать внутрь разметки HTML (небезопасно) }
$.innerHTML(0)
^rem{ менять в тексте шорткаты на эмодзи }
$.emoji(1)
^rem{ заменять сочетания символов }
$.typograph(1)
^rem{ подсвечивать код }
$.highlight(0)
^rem{ настроить ссылки }
$.links[
^rem{ добавить в начало ссылки часть пути или имя сервера }
$.path[//$env:SERVER_NAME|/some-path]
^rem{ добавлять атрибут target="" }
$.target[_blank|_self|...]
^rem{ добавлять атрибут rel="" }
$.rel[next|prev|nofollow|...]
]
^rem{ настроить картинки }
$.images[
^rem{ добавить в начало ссылки часть пути или имя сервера }
$.path[//$env:SERVER_NAME|/some-path]
^rem{ добавлять атрибут class="" }
$.class[классы через пробел]
^rem{ оборачивать в <figure><img ...><figcaption>...</figcaption></figure> }
$.figure(1)
^rem{ добавить атрибут loading="lazy" }
$.lazy(1)
]
]]
^markdown.parse[Text with [link](https://github.com "GitHub").]
- Заголовки (H1—H6)
- Абзацы
- Переводы строк
- Картинки с поддержкой alt и title
- Цитаты
- Списки нумерованные, ненумерованные, смешанные
- Горизонтальная линия
- Таблицы
- Поддержка стандартной разметки ссылок для текста и картинок.
- Автоматический парсинг ссылок и электронной почты без специального выделения.
- Поддержка угловых скобок для электронной почты
<example@mail.ru>. - Отмена выделения ссылки через обрамление бэктиками.
- Отмена автовыделения ссылок внутри строк кода —
!перед ссылкой. - Отмена автовыделения электронной почты —
!перед ссылкой.
- Жирный
- Курсив
- Жирный-курсив
- Зачёркнутый
- Подчёркнутый
- Маркированный
- Верхний/нижний индексы
Перед обработкой разметки из нее достаются строки словаря по шаблону:
*[HTML]: HyperText Markup Language
Сами строки при этом удаляются.
В процессе обработки инлайн тегов происходит обратная замена <abbr title="HyperText Markup Language">HTML</abbr>.
- Код инлайновый в одиннарных бэктиках
code. - Код с отступами 4 пробела или один символ табуляции.
- Код за «забором» в тройных бэктиках.
- Код за «забором» с подсветкой, используется highlight.js с поддержкой 192 языков, включая Parser 3. Для явно указанных языков назначается соответствующий класс в теге:
<code class="language-parser"># код Parser 3</code>Поддерживаются экранированные служебные символы, перед которыми стоит обратный слеш \.
| Набор | Преобразование |
|---|---|
| (с) | © |
| (r) | ® |
| (tm) | ™ |
| (P) | ₽ |
| -- | — |
| ... | … |
Поддерживается преобразование популярных шорткатов :-) в эмодзи 🙂, также поддерживаются текстовые :sunglasses: преобразования 😎.
По умолчанию HTML разметка внутри Markdown не допускается, угловые скобки тегов будут заменены на символы мнемоники.
Исходный код:
Этот текст содержит <b>теги</b>.Преобразованный код:
Этот текст содержит <b>теги</b>.Включить HTML разметку можно через настройки экземпляра класса параметром $.innerHTML(1), но это может быть небезопасно, если вы сохраняете Markdown из формы или других внешних источников.
Описание и примеры разметки взяты здесь.