Skip to content

bem-contrib/markdown-bemjson

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

markdown-bemjson

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

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

@contructor([options])

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-тегами по умолчанию.

convert(markdown)

markdown

Type: string

Markdown строка

Авторы

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

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

Лицензия

MIT Лицензия