markdown-it-vuese
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 generaterenderRes
renderMarkdown
: will generatemarkdownRes
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
Copyright (c) StEve Young