BuptStEve / markdown-it-vuese

📖 Vuese plugin for markdown-it markdown parser
https://buptsteve.github.io/markdown-it-vuese
MIT License
16 stars 8 forks source link
documentation markdown markdown-it markdown-plugin vuese

markdown-it-vuese

Build Status Coverage Status dependencies Downloads per month Version License

English | 简体中文

Vuese plugin for markdown-it markdown parser.

With this plugin, you can use Vuese to automatically generate documents while importing existing *.vue files via following syntax.

<[vuese](@/filePath)

The default value of @ is process.cwd().

Please click here to see the demo

Install

$ npm i -S markdown-it-vuese
# OR
$ yarn add markdown-it-vuese

Usage

const md = require('markdown-it')()
    .use(require('markdown-it-vuese') [, options])

Options

const md = require('markdown-it')()
    .use(require('markdown-it-vuese'), {
        root: 'some path',
        vueseRe: /your regexp/,
        useParser: parserRes => parserRes.name,
        useRender: (vueseRender) => {
            const renderRes = vueseRender.render()
            const markdownRes = vueseRender.renderMarkdown()

            return 'something'
        },
        useAll: ({ ... }) => {
            return 'something'
        },
    })

root

Root Directory, this value will replace the @ in file path.

vueseRe

Regular expression, you can customize it as you like.

ruleName

Rule name, it will be used by markdown-it, so be careful not to duplicate existing rules.

Use it with vueseRe, we can use different rules in the same document to render different results.

const vuese = require('markdown-it-vuese')

const md = require('markdown-it')()
    // default
    // <[vuese](filePath)
    .use(vuese)
    // <[vuese-h3](filePath)
    // No title, `Props` and other attributes should be changed from `<h2>` to `<h3>`
    .use(vuese, {
        vueseRe: /<\[vuese-h3\]\((.+)\)/i,
        ruleName: 'vuese-h3',
        useRender: (vueseRender) => {
            const renderRes = vueseRender.render()
            const genMd = key => `### ${key}\n${renderRes[key]}\n`

            return Object.keys(renderRes).map(genMd).join('')
        },
    })

useParser

It takes @vuese/parser ParserResult as a parameter.

If useParser exists, it returns the result directly after running, otherwise try running useRender.

useRender

It takes @vuese/markdown-render Render Class as a parameter.

If useRender exists, it returns the result directly after running, otherwise try running useAll.

For example, you can call the following methods to generate objects and markdown documents, respectively.

useAll

It takes an object as parameters with there attributes: content(source file content), parserRes, renderRes, markdownRes.

Return markdownRes.content by default, if useAll does not exist.

const md = require('markdown-it')()
    .use(require('markdown-it-vuese'), {
        useAll: ({
            content,
            parserRes,
            renderRes,
            markdownRes,
        }) => {
            return 'something'
        },
    })

parserOptions

It passes @vuese/parser options

renderOptions

It passes @vuese/markdown-render options

License

MIT

Copyright (c) StEve Young