md-to-bemjson
v1.0.2
Published
markdown to bemjson converter
Downloads
20
Maintainers
Readme
md-to-bemjson
Requirements
Install
$ npm install md-to-bemjson
Usage
const toBemjson = require('md-to-bemjson').convertSync;
const bjson = toBemjson('# Hello world');
console.log(JSON.stringify(bjson, null, 4));
Yields:
{
"block": "md-root",
"content": {
"block": "heading",
"content": "Hello world",
"level": 1,
"mods": {
"level": 1
}
}
}
Markdown converter to bemjson
Module use remark with several plugins and custom compiler to convert markdown to bemjson. Plugins divided into two groups: necessary(you can't disable this plugins) and optional.
Necessary plugins:
- remark-inline-links - bemjson don't support references.
Optional plugins:
- remark-github - Github integrations (issues, commits, mentions)
Compiler
- remark-bemjson - custom bemjson compiler
API
- constructor([options])
- convert(markdown)
- convertSync(markdown)
- stringify(markdown)
- stringifySync(markdown)
- static convert(markdown[, options])
- static convertSync(markdown[, options])
- static stringify(markdown[, options])
- static stringifySync(markdown[, options])
constructor([options])
Options
Parameter | Type | Description
-------------|----------------------|------------------------------
github
| Object, boolean | Enables github support with remark plugin remark-github. Default false
.
exportType
| enum | remark-bemjson option. Exports to certain type with .stringify
. Supported exports.
exportName
| string | remark-bemjson option. Used with exportType=(modules, umd, YModules)
stringify bemjson with exported given name.
augment
| Function, Object | Options for augmentation resulting bemjson by every node. As function accepts bemNode and must return it.
plugins
| Array | Options for additional plugins to be included. Plugin format: { plugin: Function, options: Object }
Options.augment
Parameter | Type | Description
-------------|----------|------------------------------
prefix
| string | Add prefix to all blocks. Important: for root replace original prefix.
scope
| string | Replace root block with scope. And replace all blocks with elems.
map
| Object | Replace block names with provided in map. Available blocks.
html
| Object | Options for converting html to bemjson with html2bemjson.
Important: Augmentation flow is serial. Order: map, prefix, scope. Important: Other augmentations does not affect html.
convert(markdown) => Promise
Parameter | Type | Description
----------|-----------|------------------------------
markdown
| string | Markdown text
Asynchronously converts markdown to bemjson.
const Converter = require('md-to-bemjson');
const md2Bemjson = new Converter();
md2Bemjson.convert('# Hello world').then(bjson => console.log(JSON.stringify(bjson, null, 4)))
Yields:
{
"block": "md-root",
"content": {
"block": "heading",
"content": "Hello world",
"level": 1,
"mods": {
"level": 1
}
}
}
convertSync(markdown) => Bemjson
Parameter | Type | Description
----------|-----------|------------------------------
markdown
| string | Markdown text
Synchronously converts markdown to bemjson.
const Converter = require('md-to-bemjson');
const md2Bemjson = new Converter();
console.log(JSON.stringify(md2Bemjson.convertSync('# Hello world'), null, 4));
Yields:
{
"block": "md-root",
"content": {
"block": "heading",
"content": "Hello world",
"level": 1,
"mods": {
"level": 1
}
}
}
stringify(markdown [, options]) => Promise
Parameter | Type | Description
----------|-----------|------------------------------
markdown
| string | Markdown text
options
| Object | Options prefixed with export*
. Important: Creates new processor. For better performance set options via constructor.
Asynchronously converts and stringify markdown to bemjson module with exports.
const Converter = require('md-to-bemjson');
const md2Bemjson = new Converter();
md2Bemjson.stringify('# Hello world').then(content => console.log(content))
Yields:
module.exports = {
block: 'md-root',
content: {
block: 'heading',
content: 'Hello world',
"level": 1,
mods: {
'level': 1
}
}
};
stringifySync(markdown [, options]) => String
Parameter | Type | Description
----------|-----------|------------------------------
markdown
| string | Markdown text
options
| Object | Options prefixed with export*
. Important: Creates new processor. For better performance set options via constructor.
Synchronously converts and stringify markdown to bemjson module with exports.
const Converter = require('md-to-bemjson');
const md2Bemjson = new Converter();
console.log(md2Bemjson.stringifySync('# Hello world'));
Yields:
module.exports = {
block: 'md-root',
content: {
block: 'heading',
content: 'Hello world',
level: 1,
mods: {
'level': 1
}
}
};
static convert(markdown [, options]) => Promise
Parameter | Type | Description
----------|-----------|------------------------------
markdown
| string | Markdown text
options
| Object | plugin options
Asynchronously converts markdown to bemjson.
const toBemjson = require('md-to-bemjson').convert;
toBemjson('# Hello world').then(bjson => console.log(JSON.stringify(bjson, null, 4)))
Yields:
{
"block": "md-root",
"content": {
"block": "heading",
"content": "Hello world",
"level": 1,
"mods": {
"level": 1
}
}
}
static convertSync(markdown [, options]) => Bemjson
Parameter | Type | Description
----------|-----------|------------------------------
markdown
| string | Markdown text
options
| Object | plugin options
Synchronously converts markdown to bemjson.
const toBemjson = require('md-to-bemjson').convertSync;
console.log(JSON.stringify(toBemjson('# Hello world'), null, 4));
Yields:
{
"block": "md-root",
"content": {
"block": "heading",
"content": "Hello world",
"level": 1,
"mods": {
"level": 1
}
}
}
static stringify(markdown [, options]) => Promise
Parameter | Type | Description
----------|-----------|------------------------------
markdown
| string | Markdown text
options
| Object | plugin options
Asynchronously converts and stringify markdown to bemjson module with exports.
const toBemjsonString = require('md-to-bemjson').stringify;
toBemjsonString('# Hello world').then(bjson => console.log(JSON.stringify(bjson, null, 4)));
Yields:
module.exports = {
block: 'md-root',
content: {
block: 'heading',
content: 'Hello world',
level: 1,
mods: {
level: 1
}
}
};
static stringifySync(markdown [, options]) => String
Parameter | Type | Description
----------|-----------|------------------------------
markdown
| string | Markdown text
options
| Object | plugin options
Synchronously converts and stringify markdown to bemjson module with exports.
const toBemjsonString = require('md-to-bemjson').stringifySync;
console.log(toBemjsonString('# Hello world'));
Yields:
module.exports = {
block: 'md-root',
content: {
block: 'heading',
content: 'Hello world',
level: 1,
mods: {
'level': 1
}
}
};
License
Code and documentation copyright 2017 YANDEX LLC. Code released under the Mozilla Public License 2.0.