npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

markdown-bemjson

v3.1.1

Published

Markdown to bemjson converter

Downloads

8

Readme

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