1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hyjiacan-md0

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 13 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 14.03.2025 09:47 c06bcc1

md0

Это некрасивый процессор документов в формате markdown

Код

Использование

NodeJS

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 — файл/папка с markdown
  • options
    • output — папка вывода, по умолчанию "output"
    • title — заголовок файла вывода, если не указан, используется имя файла
    • code-header — отображение заголовков блока кода, по умолчанию true
    • code-index — отображение номеров строк в блоке кода, по умолчанию true
    • code-height — максимальная высота блока кода в пикселях, по умолчанию 0
    • title-anchor — отображение закрепленных заголовков, по умолчанию true
    • catalog — создание каталога на основе заголовков, по умолчанию false
    • use-hljs — использование highlight.js для подсветки кода, по умолчанию false
    • base64 — преобразование локальных изображений в base64, по умолчанию false

Примечание: когда 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 для выделения синтаксиса кодаПри использовании необходимо самостоятельно добавить библиотеку 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

TODO

Функциональность

Экранирование

Символ \ экранирует блочные элементы, то есть все последующие символы будут выводиться как есть.

Жирный/Курсивный шрифт

Если _, * символы окружены пробелами, они будут отображаться как есть.

Код

Строковый код можно записывать так: var a = '\''. Кодовые блоки могут быть объявлены с помощью четырёх пробелов или одного табулятора (по отношению к предыдущему элементу).
Когда встречается меньший отступ (независимо от наличия пустых строк), кодовый блок завершается.
Для кодовых блоков также допускаются символы ~.

Заголовки

Заголовки также могут быть созданы следующим образом:

h1
title1
=======
h2
title2
------

Число подчеркиваний не ограничивается (больше одного — действует), при этом текст над линией может состоять из нескольких строк (не должен содержать пустых строк).

tit
le
1 and 
title2
------

Перед выделением можно использовать до трёх пробелов (приоритет этого способа даже выше, чем у HTML):

<a title="много
---
тире"/>

будет распознан как заголовок, а не как HTML.При записи ## xxxx ###, если количество символов # больше шести, лишние символы будут отображены в исходном виде (в соответствии с общими правилами CommonMark, более шести символов не считаются заголовками); следующие символы # будут удалены (если есть экранирование — не удаляются).

Блок цитат Blockquote

Может содержать следующие типы: заголовки, списки и блоки кода.

Списки

Для упорядоченных списков можно рассмотреть возможность добавления опций для поддержки сохранения первоначальных номеров. Если элемент списка окружён пустыми строками, его содержимое будет заключено в элемент <p>. Код внутри элемента списка (если используется отступ), должен иметь нормальный двойной отступ.

Блоки HTML

В исходных блоках HTML, если HTML находится в одной строке, то текст внутри него должен быть интерпретирован как Markdown. Блочные элементы HTML всегда игнорируют Markdown-синтаксис.

Поддержка функций @ и #

@ указывает на упоминание пользователя, требует предоставления интерфейса через опции для отображения; # указывает на ссылку на адрес, требует предоставления интерфейса через опции для отображения.

Оптимизация

  • Добавление поддержки вывода стилей Bootstrap (рассматривается отделение названий стилей в JSON-файл для прямого конфигурационного управления)- [ ] Вывод без применения стилей (кодовые блоки не получают дополнительных стилей), а также упрощение HTML-тегов кодовых блоков
  • CLI поддерживает копирование ссылочных ресурсов (например, изображений) в каталог выходных данных при обработке
  • CLI добавляет опцию watch для поддержки реального времени отрисовки
  • webpack-loader. См. markdown-loader## Обновления

1.2.4

  • Устранена проблема некорректной обработки переноса строки, вызывающая ошибку парсинга
  • Улучшена обработка таблиц

1.2.3

  • Устранена проблема некорректного отображения quoteblock с отступом

1.2.1

  • Устранена проблема генерации невалидных файлов при использовании useHljs опции при парсинге с помощью NodeJS
  • Устранена проблема некорректной обработки лишних переносов строк, вызывающая ошибку парсинга

1.2.0

  • Добавлена поддержка метки [toc]
  • Улучшена поддержка эмодзи
  • Добавлена поддержка обработки директорий CLI

1.1.3

  • Устранена проблема, когда символ & в коде распознается как escape-символ
  • Устранена проблема стилизации директорий
  • Устранена проблема некорректного парсинга HTML внутри кода
  • Устранена проблема некорректного парсинга HTML
  • Устранена проблема некорректного парсинга внутреннего кода
  • Устранена проблема некорректного парсинга текста после элемента списка

1.1.0

  • Добавлена поддержка render, позволяющая настраивать отображение некоторых элементов
  • В режиме CLI теперь можно включать локальные изображения в виде данных Base64

1.0.0

  • Реализован модульный подход к коду
  • Добавлена поддержка CLI

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hyjiacan-md0.git
git@api.gitlife.ru:oschina-mirror/hyjiacan-md0.git
oschina-mirror
hyjiacan-md0
hyjiacan-md0
master