Skip to content

BuptStEve/markdown-it-vuese

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

32 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

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

  • Type: String
  • Default: process.cwd()

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

vueseRe

  • Type: RegExp
  • Default: /<\[vuese\]\((.+)\)/i

Regular expression, you can customize it as you like.

ruleName

  • Type: String
  • Default: vuese

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

  • Type: Function
  • Default: null

It takes @vuese/parser ParserResult as a parameter.

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

useRender

  • Type: Function
  • Default: null

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.

  • render: will generate renderRes
  • renderMarkdown: will generate markdownRes

useAll

  • Type: Function
  • Default: null

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

  • Type: Object
  • Default: {}

It passes @vuese/parser options

renderOptions

  • Type: Object
  • Default: {}

It passes @vuese/markdown-render options

License

MIT

Copyright (c) StEve Young