vue中如何使用md文件。highlight.js高光处理
首先单纯页面若全部为md文件:如下~
1.
npm install markdown-loader html-loader --save-dev
npm install showdown --save-dev
2.build/webpack.base.conf.js添加
{ test: /\.md$/, use: [ { loader: 'html-loader' }, { loader: 'markdown-loader', options: {} } ] }
3.main.js
import showdown from 'showdown'// 引入md文件
Vue.prototype.md2html = (md) => {
let converter = new showdown.Converter();
let text = md.toString();
let html = converter.makeHtml(text);
return html
};
4.在相应的组件
<div v-html="readme"></div> import readme from '../../XXXXXX.md' data () { return { readme:this.md2html( readme ) } }
-----------------------------------------------------------------------------------
md:生成目录
npm install -g i5ting_toc //mac下分盘了是这个 npm install -g i5ting_toc //win All 或者max下直接是home目录是这个命令
之后进入当前MD的目录下
i5ting_toc -f xxxxx.md -o //进入目录使用这个命令后 若成功自动打开页面
-------------------------------------------------------------------------------------------------------------------------//
有一种简单的加载md方法,且为高光 (推荐)
最开始配置不改变-
1.首先安装highlight.js
npm install highlight.js --save-dev
2.随后创建highlight.js 的配置文件
// src/utils/highlight.js 文件路径,纯属自定义 // highlight.js 代码高亮指令 import Hljs from 'highlight.js'; import 'highlight.js/styles/tomorrow-night.css'; // 代码高亮风格,选择更多风格需导入 node_modules/hightlight.js/styles/ 目录下其它css文件 let Highlight = {}; // 自定义插件 Highlight.install = function (Vue) { // 自定义指令 v-highlight Vue.directive('highlight', { // 被绑定元素插入父节点时调用 inserted: function(el) { let blocks = el.querySelectorAll('pre code'); for (let i = 0; i < blocks.length; i++) { Hljs.highlightBlock(blocks[i]); } }, // 指令所在组件的 VNode 及其子 VNode 全部更新后调用 componentUpdated: function(el) { let blocks = el.querySelectorAll('pre code'); for (let i = 0; i < blocks.length; i++) { Hljs.highlightBlock(blocks[i]); } } }) }; export default Highlight;
3.全局引入自定义插件
// highlight.js代码高亮插件 import Highlight from './utils/highlight'; // from 路径是highlight.js的路径,纯属自定义 Vue.use(Highlight);
4. 在需要的组件内写入
<template>
<div id="codeView" v-highlight>
<code v-html="md"></code>
</div>
</template>
<script>
import demo from "./md/test.md";
console.log(demo)
export default {
data() {
return {
md:demo
};
}
};
</script>
注:本文参考以下作者:https://blog.csdn.net/qq_42848534/article/details/90047843 ,
https://blog.csdn.net/qq_41485414/article/details/103765196 ,
https://www.jianshu.com/p/e35f6d62b3bd