Конвертирует данные из формата markdown в bemjson
Для обратного преобразования (bemjson в markdown) используйте модуль bemjson-markdown
npm
npm i markdown-bemjson --save
git
git clone https://github.com/bem-contrib/markdown-bemjson.git
const MarkdownBemjson = require('markdown-bemjson');
const markdownBemjson = new MarkdownBemjson();
const markdown = 'I am using __markdown__';
const bemjson = markdownBemjson.convert(markdown);
console.log(bemjson);
В результате получим следующий bemjson:
{
"block": "content",
"content" : [
{
"elem" : "p",
"content" : [
"I am using ",
{
"elem" : "strong",
"content" : ["markdown"]
}
]
}
]
}
options
Type: object
Настройки
options.isEscapeHtml
Type: boolean
Default: true
Экранировать html или нет. Если установить опцию в false
то для каждого текстового узла будет добавлена обертка { html: ... }
. Подробнее об это можно почитать тут
options.wrapper
Type: object|false
Default: { block : 'content }
Bemjson обертка, content-ом которого будет bemjson объект результата парсинга. Если значение установить в false
, то обертки не будет.
options.markdown
Type: object
Настройки для markdown парсинга.
options.markdown.gfm
Type: boolean
Default: true
Включает GitHub flavored markdown.
options.markdown.tables
Type: boolean
Default: true
Включает GFM tables.
Для это опции необходимо установить опцию gfm
в true.
options.markdown.breaks
Type: boolean
Default: false
Включает GFM line breaks.
Для это опции необходимо установить опцию gfm
в true.
options.markdown.pedantic
Type: boolean
Default: false
Пытаться максимально соответствовать markdown.pl
и не устранять ошибки и нестандартное поведение оригинального markdown.
options.markdown.sanitize
Type: boolean
Default: false
Игнорировать любой HTML-код.
options.markdown.smartLists
Type: boolean
Default: true
Использовать интелектуальное поведение в отличие от оригинального markdown.
options.markdown.smartypants
Type: boolean
Default: false
Использовать "правильные" типографические знаки препинания, например кавычки и тире.
options.markdown.highlight
Type: function
A function to highlight code blocks. See https://github.com/chjj/marked#highlight
options.rules
Type: function|string
Правила преобразования.
Если передана строка, то она будет считаться путем до файла который возвращает правила.
{
paragraph() {
return {
elem : 'p',
content : text
}
},
heading() {
return {
elem : 'h' + level,
content : text
}
}
}
Block level
- code(string code, string language)
- blockquote(string quote)
- html(string html)
- heading(string text, number level)
- hr()
- list(string body, boolean ordered)
- listitem(string text)
- paragraph(string text)
- table(string header, string body)
- tablerow(string content)
- tablecell(string content, object flags)
flags
содержит следуюшие свойства:
{
header: true || false,
align: 'center' || 'left' || 'right'
}
Inline level
- strong(string text)
- em(string text)
- codespan(string code)
- br()
- del(string text)
- link(string href, string title, string text)
- image(string href, string title, string text)
Правила применяемые по умолчанию
options.tag
Type: boolean
Default: false
Флаг для контроля вывода в результирующий BEMJSON
поля tag
с HTML-тегами по умолчанию.
markdown
Type: string
Markdown строка
Все это можно оформить в виде issues на GitHub.
MIT Лицензия