https://github.com/spearance/markdown-p3
Класс Markdown для Parser 3
https://github.com/spearance/markdown-p3
markdown parser3
Last synced: 4 months ago
JSON representation
Класс Markdown для Parser 3
- Host: GitHub
- URL: https://github.com/spearance/markdown-p3
- Owner: Spearance
- License: mit
- Created: 2025-03-20T14:05:43.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-12-04T18:13:12.000Z (7 months ago)
- Last Synced: 2025-12-07T21:31:33.920Z (7 months ago)
- Topics: markdown, parser3
- Language: OpenEdge ABL
- Homepage: https://spearance.github.io/markdown-p3/dist/
- Size: 99.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Класс Markdown для Parser 3
Преобразует Markdown разметку в HTML.
## Вызов
``` parser
@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(1)
^rem{ добавить атрибут loading="lazy" }
$.lazy(1)
]
]]
^markdown.parse[Text with [link](https://github.com "GitHub").]
```
## Поддержка тегов
* Заголовки (H1—H6)
* Абзацы
* Переводы строк
* Картинки с поддержкой alt и title
* Цитаты
* Списки нумерованные, ненумерованные, смешанные
* Горизонтальная линия
* Таблицы
### Ссылки
* Поддержка стандартной разметки ссылок для текста и картинок.
* Автоматический парсинг ссылок и электронной почты без специального выделения.
* Поддержка угловых скобок для электронной почты ``.
* Отмена выделения ссылки через обрамление бэктиками.
* Отмена автовыделения ссылок внутри строк кода — `!` перед ссылкой.
* Отмена автовыделения электронной почты — `!` перед ссылкой.
### Инлайн стили
* Жирный
* Курсив
* Жирный-курсив
* Зачёркнутый
* Подчёркнутый
* Маркированный
* Верхний/нижний индексы
### Аббревиатуры
Перед обработкой разметки из нее достаются строки словаря по шаблону:
```*[HTML]: HyperText Markup Language```
Сами строки при этом удаляются.
В процессе обработки инлайн тегов происходит обратная замена `HTML`.
### Код
* Код инлайновый в одиннарных бэктиках `code`.
* Код с отступами 4 пробела или один символ табуляции.
* Код за «забором» в тройных бэктиках.
* Код за «забором» с подсветкой, используется [highlight.js](https://highlightjs.org/) с поддержкой 192 языков, включая Parser 3. Для явно указанных языков назначается соответствующий класс в теге:
``` HTML
# код Parser 3
```
### Служебные символы
Поддерживаются экранированные служебные символы, перед которыми стоит обратный слеш `\`.
### Типографика
| Набор| Преобразование |
|:----:|:--------------:|
| (с) | © |
| (r) | ® |
| (tm) | ™ |
| (P) | ₽ |
| -- | — |
| ... | … |
### Шорткаты и эмодзи
Поддерживается преобразование популярных шорткатов `:-)` в эмодзи `🙂`, также поддерживаются текстовые `:sunglasses:` преобразования `😎`.
## Особенности
По умолчанию HTML разметка внутри Markdown не допускается, угловые скобки тегов будут заменены на символы мнемоники.
Исходный код:
``` markdown
Этот текст содержит теги.
```
Преобразованный код:
``` markdown
Этот текст содержит <b>теги</b>.
```
Включить HTML разметку можно через настройки экземпляра класса параметром `$.innerHTML(1)`, но это может быть небезопасно, если вы сохраняете Markdown из формы или других внешних источников.
***
Описание и примеры разметки взяты [здесь](https://www.markdownguide.org).