vue-cli3项目展示本地Markdown文件的方法


Posted in Javascript onJune 07, 2019

【版本】

  • vue-cli3
  • webpack@4.33.0

【步骤】1、安装插件vue-markdown-loader

npm i vue-markdown-loader -D

ps:这个插件是基于markdown-it的,不需要单独安装markdown-it。

2、修改vue.config.js配置文件(如果没有,在项目根目录新建一个):

module.exports = {
 chainWebpack: config => {
  config.module.rule('md')
   .test(/\.md/)
   .use('vue-loader')
   .loader('vue-loader')
   .end()
   .use('vue-markdown-loader')
   .loader('vue-markdown-loader/lib/markdown-compiler')
   .options({
    raw: true
   })
 }
}

3、直接上代码

App.vue

<template>
 <my-markdown></my-markdown>
</template>

<script>
import myMarkdown from './assets/cpu.md';
export default {
 components: {
  myMarkdown
 },
</script>

正常情况下,到这里就结束了。

【坑】

由于业务给我的Markdown文档的标题是这样的:

##物理CPU个数
物理CPU数就是主板上实际插入的CPU数量
……

得到的结果并不让我满意:

vue-cli3项目展示本地Markdown文件的方法

折腾了大半天才发现,这是由于标题的#井号和文字之间没有空格导致的。证明见下:

var MarkdownIt = require('markdown-it'),
md = new MarkdownIt();
console.log(md.render('# markdown-it rulezz!'))//<h1>markdown-it rulezz!</h1>
console.log(md.render('#markdown-it rulezz!'))//<p>#markdown-it rulezz!</p>

Fine :)

愚蠢的我想出了一个解决办法:

因为HyperDown.js能避免上面那样的情况,于是我用它来对文档做预处理。

安装HyperDown.js

npm install hyperdown -D

然后把vue.config.js改成了这样。

let HyperDown = require('hyperdown');
let parser = new HyperDown;

module.exports = {
 chainWebpack: config => {
  config.module.rule('md')
   .test(/\.md/)
   .use('vue-loader')
   .loader('vue-loader')
   .end()
   .use('vue-markdown-loader')
   .loader('vue-markdown-loader/lib/markdown-compiler')
   .options({
    // markdown-it config
    preset: 'default',
    breaks: true,
    raw: true,
    typographer: true,
    preprocess: function(markdownIt, source) {
     return parser.makeHtml(source);//重点在这里!!!
    }
   })
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery ReferenceError: $ is not defined 错误的处理办法
May 10 Javascript
SinaEditor使用方法详解
Dec 28 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
Jan 14 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
Feb 05 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
Jul 09 Javascript
BootStrap注意事项小结(五)表单
Mar 10 Javascript
javascript 产生随机数的几种方法总结
Sep 26 Javascript
React Native日期时间选择组件的示例代码
Apr 27 Javascript
浅谈Node.js 中间件模式
Jun 12 Javascript
Vue 框架之动态绑定 css 样式实例分析
Nov 14 Javascript
微信小程序结合mock.js实现后台模拟及调试
Mar 28 Javascript
微信小程序中的video视频实现 自定义播放按钮、封面图、视频封面上文案
Jan 02 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
Jun 07 #Javascript
详解vue项目中实现图片裁剪功能
Jun 07 #Javascript
sortable+element 实现表格行拖拽的方法示例
Jun 07 #Javascript
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 #Javascript
Vue中实现权限控制的方法示例
Jun 07 #Javascript
vue 父组件中调用子组件函数的方法
Jun 06 #Javascript
通过seajs实现JavaScript的模块开发及按模块加载
Jun 06 #Javascript
You might like
解析PHP汉字转换拼音的类
2013/06/18 PHP
提高PHP性能的编码技巧以及性能优化详细解析
2013/08/24 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
PHP大转盘中奖概率算法实例
2014/10/21 PHP
php判断文件夹是否存在不存在则创建
2015/04/09 PHP
浅析jQuery对select操作小结(遍历option,操作option)
2013/07/04 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
jquery中$each()方法的使用指南
2015/04/30 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
js 中rewrap-ajax.js插件实例代码
2017/10/20 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
vue watch监听对象及对应值的变化详解
2018/02/24 Javascript
数据挖掘之Apriori算法详解和Python实现代码分享
2014/11/07 Python
python中退出多层循环的方法
2018/11/27 Python
Python hashlib加密模块常用方法解析
2019/12/18 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
Django数据统计功能count()的使用
2020/11/30 Python
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
美国伴娘礼服商店:Evening Collective
2019/10/07 全球购物
Ben Sherman官方网站:英国男装品牌
2019/10/22 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
工作决心书
2014/03/11 职场文书
借款担保书范文
2014/05/13 职场文书
私人委托书格式
2014/09/10 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
妈妈别哭观后感
2015/06/08 职场文书
使用redis生成唯一编号及原理示例详解
2021/09/15 Redis
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python