bemjson-markdown

0.1.9 • Public • Published

bemjson-markdown

Конвертирует данные из формата 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**
*/

Документация

@contructor([options])

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 - изображение

convert(bemjson)

bemjson

Type: object

Bemjson

Авторы

Идеи, замечания и пожелания

Все это можно оформить в виде issues на GitHub.

Лицензия

MIT Лицензия

Package Sidebar

Install

npm i bemjson-markdown

Weekly Downloads

1

Version

0.1.9

License

MIT

Last publish

Collaborators

  • 4ok