Skip to content

4ok/bemjson-markdown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 Лицензия

About

Bemjson to markdown converter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published