Это некрасивый процессор документов в формате markdown
npm install md0
var md0 = require('md0');
var markdown = '# title1\n## title2';
var option = {
codeIndex: true,
codeHeight: 0,
titleAnchor: true,
catalog: false
};
var html = md0(markdown, option);
console.log(html);
Подробное описание использования можно найти в файле
parser.js
проекта
<script src="/path/to/md0.js"></script>
<link rel="stylesheet" href="/path/to/md0.css"/>
<script>
var markdown = '# title1\n## title2';
var option = {
codeIndex: true,
codeHeight: 0,
titleAnchor: true,
catalog: false
};
var html = md0(markdown, option);
console.log(html);
</script>
Также можно использовать CDN:
<script src="https://cdn.jsdelivr.net/npm/md0/dist/md0.js"></script>
```### CLI
Установка глобально
```shell
# npm
npm install md0 -g
# yarn
yarn global add md0
После установки вы можете использовать команду md0
md0 <input> [--options]
Примечание: когда input является папкой, все совпадающие файлы будут обработаны.### Примеры Обработка одного файла
md0 /путь/к/awesome.md
Результат будет записан в файл output/awesome.html
Обработка всех файлов в папке
md0 /путь/к/ --output dist
Все файлы в папке /путь/к/ будут обработаны, а результат будет записан в папку dist.Папка вывода относится к текущей директории выполнения команды md0
.
Имя | Тип | Значение по умолчанию | Описание |
---|---|---|---|
codeHeader | Boolean | true | Отображать ли язык перед блоком кода |
codeIndex | Boolean | true | Добавлять ли нумерацию строк перед блоком кода |
codeHeight | Number | 0 | Максимальная высота блока кода в пикселях, если значение равно 0, ограничение отсутствует |
titleAnchor | Boolean | true | Добавлять ли закладки перед заголовками |
clean | Boolean | false | Рenders in clean mode, which preserves the browser's default styles |
catalog | Boolean | false | Создает ли каталог |
useHljs | Boolean | false | Использует ли highlight.js для выделения синтаксиса кода |
render | function(type, html, data) | — | Функция для пользовательской настройки рендера содержимого |
emojis | Object | — | Объект, который указывает соответствие между маркерами emoji и изображениями, данные emoji берутся с https://api.github.com/emojis начиная с версии 1.2.0 |
emojiSize | String | 18px | Указывает размер emoji начиная с версии 1.2.0 |
Примечание: Установка параметра catalog или наличие метки [toc]
в markdown файле приведёт к созданию каталога. Основное различие состоит в том, что если используется метка [toc]
, то каталог будет располагаться там, где находится эта метка, в противном случае он будет располагаться в начале документа. Кроме того, обрабатывается только первая метка [toc]
. Начиная с версии 1.2.0
Список emoji берётся с https://api.github.com/emojis, его изображения являются онлайн url.
highlight.js
и её стиль на страницу:<script src="/path/to/highlight.min.js"></script>
<link href="/path/to/styles/default.min.css" rel="stylesheet">
В этом случае md0.css
следует добавить после стилей highlight.js
, чтобы она соответствовала теме.
Настройки выделения синтаксиса кода см. здесь: https://github.com/highlightjs/highlight.js
Символ \
экранирует блочные элементы, то есть все последующие символы будут выводиться как есть.
Если _
, *
символы окружены пробелами, они будут отображаться как есть.
Строковый код можно записывать так: var a = '\''
.
Кодовые блоки могут быть объявлены с помощью четырёх пробелов или одного табулятора (по отношению к предыдущему элементу).
Когда встречается меньший отступ (независимо от наличия пустых строк), кодовый блок завершается.
Для кодовых блоков также допускаются символы ~
.
Заголовки также могут быть созданы следующим образом:
h1
title1
=======
h2
title2
------
Число подчеркиваний не ограничивается (больше одного — действует), при этом текст над линией может состоять из нескольких строк (не должен содержать пустых строк).
tit
le
1 and
title2
------
Перед выделением можно использовать до трёх пробелов (приоритет этого способа даже выше, чем у HTML):
<a title="много
---
тире"/>
будет распознан как заголовок, а не как HTML.При записи ## xxxx ###
, если количество символов #
больше шести, лишние символы будут отображены в исходном виде (в соответствии с общими правилами CommonMark, более шести символов не считаются заголовками); следующие символы #
будут удалены (если есть экранирование — не удаляются).
Может содержать следующие типы: заголовки, списки и блоки кода.
Для упорядоченных списков можно рассмотреть возможность добавления опций для поддержки сохранения первоначальных номеров.
Если элемент списка окружён пустыми строками, его содержимое будет заключено в элемент <p>
.
Код внутри элемента списка (если используется отступ), должен иметь нормальный двойной отступ.
В исходных блоках HTML, если HTML находится в одной строке, то текст внутри него должен быть интерпретирован как Markdown. Блочные элементы HTML всегда игнорируют Markdown-синтаксис.
@
и #
@
указывает на упоминание пользователя, требует предоставления интерфейса через опции для отображения;
#
указывает на ссылку на адрес, требует предоставления интерфейса через опции для отображения.
watch
для поддержки реального времени отрисовкиquoteblock
с отступомuseHljs
опции при парсинге с помощью NodeJS[toc]
&
в коде распознается как escape-символrender
, позволяющая настраивать отображение некоторых элементовВы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )