markdown-it-vuese

Build Status Coverage Status dependencies Downloads per month Version License

English | 简体中文

Vuese plugin for markdown-it markdown parser.

借助这个插件,你可以通过下述的语法在导入已经存在的 *.vue 文件的同时,使用 Vuese 自动生成文档。

<[vuese](@/filePath)

此处的 @ 默认值是 process.cwd()

实际效果请点击这里

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

  • 类型:String
  • 默认值:process.cwd()

根路径,路径中填写的 @ 会被其替换。

vueseRe

  • 类型:RegExp
  • 默认值:/<\[vuese\]\((.+)\)/i

匹配正则,不满意默认匹配规则可以自定义。

ruleName

  • 类型:String
  • 默认值:vuese

注册的规则名,这个名称将被 markdown-it 使用,所以注意别和已有规则重复。

可以结合 vueseRe 改写规则名,实现在同一份文档中使用不同规则,渲染出不同的结果。

const md = require('markdown-it')()
    // 默认渲染结果
    .use(require('markdown-it-vuese'))
    // <[vuese-h3](filePath)
    // 自定义新规则,不需要标题,并将 Props 等属性从 <h2> 改成 <h3>
    .use(require('markdown-it-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

  • 类型:Function
  • 默认值:null

接受 @vuese/parser 解析后的结果

useParser 存在,则直接运行后返回结果,否则尝试运行 useRender

useRender

  • 类型:Function
  • 默认值:null

接受 @vuese/markdown-render 初始化后的渲染实例

useRender 存在,则直接运行后返回结果,否则尝试运行 useAll

例如可以调用以下方法分别生成对象和 markdown 文档

  • render: 将生成 renderRes
  • renderMarkdown: 将生成 markdownRes

useAll

  • 类型:Function
  • 默认值:null

以对象形式接受以下参数 content(源文件内容), parserRes, renderRes, markdownRes。若不存在则默认返回 markdownRes.content

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

parserOptions

  • 类型:Object
  • 默认值:{}

透传 @vuese/parser 的参数

renderOptions

  • 类型:Object
  • 默认值:{}

透传 @vuese/markdown-render 的参数

License

MIT

Copyright (c) StEve Young