- Specify your own language 💥
- Transclude any part of a file 💥
- Line highlighting extended from Vuepress 💚
npm i -D markdown-it-vuepress-code-snippet-enhanced
In Vuepress config.js
add the following:
markdown: {
config: md => {
md.use(require('markdown-it-vuepress-code-snippet-enhanced'))
}
}
In Vuepress 1.x config.js
add the following:
markdown: {
extendMarkdown: md => {
md.use(require('markdown-it-vuepress-code-snippet-enhanced'))
}
}
You can now import code snippets into your markdown files with the following syntax:
@[code](@/docs/code.js)
@[code lang=ruby transclude={1-1}](@/docs/code.rb)
@[code highlight={1-6} transcludeTag=style](@/docs/code.vue)
@[code highlight={4,9,11-16} transcludeWith=:::](@/docs/code.vue)
You can specify any language for syntax highlighting as follows:
@[code lang=ruby](@/docs/code.rb)
@[code lang=csharp](@/docs/code.cs)
Vuepress uses prismjs, so for proper syntax highlighting check prism.js docs.
You can transclude a single or multiple parts of a file using transclude
, transcludeWith
, or transcludeTag
.
For transcluding one or more parts of a file, specify a unique pattern.
@[code lang=ruby transcludeWith=|_|_|](@/docs/code.rb)
@[code transcludeWith=:::](@/docs/code.js)
@[code transcludeWith=++++](@/docs/code.h)
require 'lib'
require 'other'
# |_|_|
def hello
puts 'hello'
puts 'vue'
end
# |_|_|
require 'lib'
require 'other'
# |_|_|
def hello
puts 'hello'
puts 'vue'
end
# |_|_|
... more code ...
# |_|_|
def goodebye
puts 'bye...'
end
# |_|_|
Useful when working Vue
single file components.
@[code transcludeTag=template](@/docs/code.vue)
@[code transcludeTag=script](@/docs/code.vue)
@[code transcludeTag=style](@/docs/code.vue)
Use a range indicating the start
and end
lines. This option is inclusive.
@[code transclude={5-13}](@/docs/code.js)
@[code highlight={1-6} transcludeTag=style](@/docs/code.vue)
<template>
<div class="component"></div>
</template>
<script>
export default {
mounted () {
alert('yay!')
}
}
</script>
<style lang="scss" scoped>
.component {
display: flex;
}
</style>
<style lang="scss" scoped>
.component {
display: flex;
}
</style>