📝Convert markdown to Vue-component
Please consider starring the project to show your ❤️ and support.
You can use the @evillt/vuedown-loader for webpack loader
You can use the parcel-plugin-vuedown for parcel plugin
vuedown is very similar to vmark, but with different tooling based on.
vuedown(8kb) is 4 times smaller than vmark(30kb), because vmark use saber-markdown(fork from markdown-it) while vuedown use marked(forked) under the hood.
- Support
@
in attribute names Convert link to<router-link>
by default- Support convert
<a>
to<router-link>
- Mini size
yarn add vuedown --dev
In:
# {{ title }}
> I'm a markdown file
<button @click="inc">Count: {{ count }}</button>
<script>
export default {
data() {
return {
title: 'Hello',
count: 0
}
},
methods: {
inc() {
this.count++
}
}
}
</script>
Out:
<template>
<div class="vuedown">
<h1>{{ title }}</h1>
<p>
<blockquote>I'm a markdown file</blockquote>
</p>
<p>
<button @click="inc">Count: {{ count }}</button>
</p>
</div>
</template>
<script>
export default {
data() {
return {
title: 'Hello',
count: 0
}
},
methods: {
inc() {
this.count++
}
}
}
</script>
Code:
const component = vuedown(input)
// Get the component in Vue SFC format
- Type:
string
- Required:
true
The markdown string.
Options for marked.options.
- Type:
boolean
- Default:
false
Convert <a>
to <router-link>
but external link will always be <a target="_blank">
.
- Type:
(html: string) => string
- Default:
html => `<div class="vuedown">${html}</div>`
Wrap the HTML in an element.
- Type:
(renderer: marked.Renderer) => void
You can modify the marked renderer we use.
- Type:
boolean
Support chrome 75's native image lazy loading.
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request :D
vuedown © evillt, Released under the MIT License.
Authored and maintained by EVILLT with help from contributors (list).