Package Exports
- vuepress-plugin-demo-code
- vuepress-plugin-demo-code/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (vuepress-plugin-demo-code) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
vuepress-plugin-demo-code
English | įŽäŊ䏿
demo-code plugin for vuepress.
With this plugin, you can both display demo and code via following syntax.
::: demo
<div @click="onClick">Click me!</div>
<script>
export default {
methods: {
onClick: () => { window.alert(1) },
},
}
</script>
:::Please click here to see the demo
Features
- Only one source code
- Foldable code
- Support online editing
- â Codepen
- â JSFiddle
- â CodeSandbox
- Designed for long code
- Sticky fold button
- Auto scroll to top when you fold code
Install
First of all, install vuepress v1.x
Then install the plugin
$ npm i -D vuepress-plugin-demo-code
# OR
$ pnpm i -D vuepress-plugin-demo-code
# OR
$ yarn add -D vuepress-plugin-demo-code- If you are using vuepress 2.x, please install the next version.
$ npm i -D vuepress-plugin-demo-code@next
# OR
$ pnpm i -D vuepress-plugin-demo-code@next
# OR
$ yarn add -D vuepress-plugin-demo-code@nextUsage
Write vuepress config
module.exports = {
plugins: ['demo-code'],
}Options
This plugin supports the following configurations.
module.exports = {
plugins: [
['demo-code', {
jsLibs: [
// umd
'https://unpkg.com/tua-storage/dist/TuaStorage.umd.js',
],
cssLibs: [
'https://unpkg.com/animate.css@3.7.0/animate.min.css',
],
vueVersion: '^3',
showText: 'show code',
hideText: 'hide',
styleStr: 'text-decoration: underline;',
minHeight: 200,
onlineBtns: {
codepen: true,
jsfiddle: true,
codesandbox: true,
},
jsfiddle: {
framework: 'library/pure', // default
// framework: 'vue/2.6.11',
},
codesandbox: {
deps: { 'lodash': 'latest' },
json: '',
query: '',
embed: '',
},
demoCodeMark: 'demo-code',
copyOptions: { ... },
}]
],
}jsLibs
- Type:
Array - Default:
[]
Js libraries for the demo.
cssLibs
- Type:
Array - Default:
[]
Css libraries for the demo.
vueVersion
- Type:
String(semantic versioning syntax) - Default:
^2.6.14
The semantic version string of vue. For more information on semantic versioning syntax, see the npm semver calculator.
showText
- Type:
String - Default:
show code
The display text of unfold code button.
hideText
- Type:
String - Default:
hide code
The display text of fold code button.
minHeight
- Type:
Number - Default:
200(px)
The height of the code when it is folded.
onlineBtns
- Type:
Object - Default:
{ codepen: true, jsfiddle: true, codesandbox: true }
Display online edit buttons.
jsfiddle
- Type:
Object - Default:
{ framework: 'library/pure' }
It passes jsfiddle options.
codesandbox
- Type:
Object - Default:
{ deps: {}, json: '', query: 'module=App.vue'', embed: '' }
It passes CodeSandbox options.
depsis dependencies
demoCodeMark
- Type:
String - Default:
demo
The mark of the plugin, follows the tag after :::.
copyOptions
- Type:
Object/Boolean - Default:
{ align: 'top', selector: '.demo-and-code-wrapper div[class*="language-"] pre' }
It passes vuepress-plugin-code-copy's options, or false to disable it.
Related
License
Copyright (c) StEve Young
Contributors â¨
Thanks goes to these wonderful people (emoji key):
StEve Young đģ đ đ đ |
leandrofngl đ |
Tian Jian đ |
Spence đģ |
This project follows the all-contributors specification. Contributions of any kind welcome!