vue-markdown-loader
Version:
markdown file to vue component loader.
163 lines (130 loc) • 2.73 kB
Markdown
[](https://www.npmjs.com/package/vue-markdown-loader)

> Convert Markdown file to Vue Component using markdown-it.
- https://github.com/mint-ui/docs
- https://github.com/elemefe/element
https://glitch.com/edit/#!/vue-markdown
```bash
npm i vue-markdown-loader@0 -D
npm i vue-markdown-loader -D
```
- Hot reload
- Write vue script
- Code highlight
[](https://webpack.js.org/concepts/loaders/)
`webpack.config.js` file:
```javascript
module.exports = {
module: {
rules: [
{
test: /\.md$/,
loader: 'vue-markdown-loader'
}
]
}
};
```
Since `v2.0.0`, this loader will automatically extract script and style tags from html token content (#26). If you do not need, you can set this option
```js
{
test: /\.md$/,
loader: 'vue-markdown-loader',
options: {
preventExtract: true
}
}
```
You can customize wrapper tag no matter html element tag or vue component tag. Default is 'section'
```js
{
test: /\.md$/,
loader: 'vue-markdown-loader',
options: {
wrapper: 'article',
}
}
```
reference [markdown-it](https://github.com/markdown-it/markdown-it#init-with-presets-and-options)
```javascript
{
module: {
rules: [
{
test: /\.md$/,
loader: 'vue-markdown-loader',
options: {
// markdown-it config
preset: 'default',
breaks: true,
preprocess: function(markdownIt, source) {
// do any thing
return source
},
use: [
/* markdown-it plugin */
require('markdown-it-xxx'),
/* or */
[]
]
}
}
]
}
}
```
Or you can customize markdown-it
```javascript
var markdown = require('markdown-it')({
html: true,
breaks: true
})
markdown
.use(plugin1)
.use(plugin2, opts, ...)
.use(plugin3);
module.exports = {
module: {
rules: [
{
test: /\.md$/,
loader: 'vue-markdown-loader',
options: markdown
}
]
}
};
```
```js
var webpack = require('webpack');
module.exports = {
module: {
rules: [
{
test: /\.md$/,
loader: 'vue-markdown-loader'
}
]
},
plugins: [
new webpack.LoaderOptionsPlugin({
vue: {}
})
]
};
```
WTFPL