Конвертирует данные из формата bemjson в markdown
Для обратного преобразования (markdown в bemjson) используйте модуль markdown-bemjson
npm
npm i bemjson-markdown --save
git
git clone https://github.com/4ok/bemjson-markdown.git
// Классический путь
var BemjsonMarkdown = require('bemjson-markdown');
var bemjsonMarkdown = new BemjsonMarkdown();
// Тоже самое, но с сахаром
var bemjsonMarkdown = require('bemjson-markdown')();
var bemjson = {
block : 'content',
content : [
{
elem : 'header',
mods : {
level : 3
},
content : 'Header level 3'
},
{
elem : 'p',
content : [
'I am using ',
{
elem : 'strong',
content : 'markdown'
}
]
}
]
};
var markdown = bemjsonMarkdown.convert(bemjson.content);
console.log(markdown);
/*
### Header level 3
I am using **markdown**
*/
options
Type: object
Настройки
options.masks
Type: object
Коллекция масок.
{
paragraph : {
elem : 'p'
},
list : {
block : 'list',
mods : {
block : 'content',
elem : 'list
}
}
}
К примеру мы имеем часть bemjson следующего вида:
{
block : 'block-a',
mods : {
'block' : 'block-b'
},
mix : [
{
'block' : 'block-c',
},
{
'block' : 'block-d',
'elem' : 'elem-d'
}
]
}
На него накладываются следующие маски:
{
block : 'block-a',
mix : [
{
'block' : 'block-c',
}
]
}
{
block : 'block-a',
mods : {
'block' : 'block-b'
},
mix : {
'block' : 'block-d',
'elem' : 'elem-d'
}
}
Если маска совпадает, то будет вызвано соответствующее преобразование в markdown.
Правило по которому будет применено преобразование указано как ключ для маски, для примера выше это paragraph
и list
.
Если ни одна из масок не совпала, то не распознанный bemjson будет обертнут как код javascript:
```javascript
{
block : 'block',
content : 'content
}
```
Маски применяемые по умолчанию
Block level
- code - блок кода
- blockquote - цитата
- heading - заголовок
- hr - горизонтальная линия
- list - блок списка
- listitem - элемент списка
- paragraph - параграф
- table - таблица
- tablerow - строка таблицы
- tablecell - ячейка таблицы
Inline level
- strong - выделение текста жирным
- em - выделение текста курсивом
- codespan - код инлайн
- br - перевод строки
- del - перечеркнутый текст
- link - ссылка
- image - изображение
bemjson
Type: object
Bemjson
Все это можно оформить в виде issues на GitHub.
MIT Лицензия