在vuepress中使用vue组件和highlight
vuepress 中使用 vue 组件 在 vuepress 中一般会直接写 md 文件,但是有时需要做一些自定义的东西,比如展示一些前端效果,点击切换样式等等,就可以结合 vue 组件来实现。1.在.vuepress 文件夹中建立 components 文件夹,添加一个例如名为 my-demo.vue 的文件<template>...
·
vuepress 中使用 vue 组件
在 vuepress 中一般会直接写 md 文件,但是有时需要做一些自定义的东西,比如展示一些前端效果,点击切换样式等等,就可以结合 vue 组件来实现。
1.在.vuepress 文件夹中建立 components 文件夹,添加一个例如名为 my-demo.vue 的文件
<template>
<div>
<button @click="change">{{buttonName}}</button>
</div>
</template>
<script>
export default {
data() {
return {
buttonName: "点击按钮"
};
},
methods: {
change() {
console.log(111);
}
}
};
- 在 docs 下的 md 文件中使用
<ClientOnly>
<my-demo></my-demo>
</ClientOnly>
注:直接按照组件名字使用即可,但是 md 文件外包裹文件夹会调不到组件,待观察。
vuepress 中使用 highlight 高亮代码
- 安装 highlight
npm i highlight -D
- 在组件中引入
created() {
//主题css,可自选
import("highlight.js/styles/paraiso-dark.css");
import("highlight.js/lib/index.js").then(hljs => {
hljs.initHighlightingOnLoad();
});
}
- 在 template 中使用 pre、code 包裹代码即可,highlight会将包裹的字符串进行标签包裹处理,加上class以实现高亮
<pre><code class="javascript">
test = {
name : function () {
return 'hello';
},
age : function () {
return 13;
}
}
</code></pre>
<pre><code class="css"> .a{
background: red
}
</code></pre>
最终页面上的实现效果:
vuepress 中使用 Prism 高亮代码
在实际开发过程中,想在 code 标签中修改内容,用 highlight 不知道怎么做,所以尝试用 Prism 高亮代码
- 在 created 的时候引入
created() {
import("prismjs/prism").then(Prism => {
this.Prism = Prism;
this.codeHtml = this.Prism.highlight(
code,//想要高亮的内容
this.Prism.languages.css,
"css"
);
});
},
- 在 code 内容发生变化时
if (code) {
this.codeHtml = this.Prism.highlight(code, this.Prism.languages.css, 'css');
}
- 在模板中使用
<code class="language-css" v-html="this.codeHtml"></code>
更多推荐
已为社区贡献9条内容
所有评论(0)