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 相关文章推荐
js资料prototype 属性
Mar 13 Javascript
浏览器加载、渲染和解析过程黑箱简析
Nov 29 Javascript
提取jquery的ready()方法单独使用示例
Mar 25 Javascript
使用javascript提交form表单方法汇总
Jun 25 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
Oct 24 Javascript
JS实现动画兼容性的transition和transform实例分析
Dec 13 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
Jan 10 Javascript
原生JS轮播图插件
Feb 09 Javascript
jQuery zTree树插件动态加载实例代码
May 11 jQuery
angular写一个列表的选择全选交互组件的示例
Jan 22 Javascript
使用Vue制作图片轮播组件思路详解
Mar 21 Javascript
vue-cli监听组件加载完成的方法
Sep 07 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 trim 去除空字符的定义与语法介绍
2010/05/31 PHP
cakephp打印sql语句的方法
2015/02/13 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
2017/05/09 PHP
laravel中Redis队列监听中断的分析
2020/09/14 PHP
js获取和设置属性的方法
2014/02/20 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
input框中的name和id的区别
2016/11/16 Javascript
使用JS批量选中功能实现更改数据库中的status状态值(批量展示)
2016/11/22 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
Vue实现boradcast和dispatch的示例
2020/11/13 Javascript
基于Vue+Webpack拆分路由文件实现管理
2020/11/16 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
Python中使用第三方库xlutils来追加写入Excel文件示例
2015/04/05 Python
python使用turtle库绘制时钟
2020/03/25 Python
IntelliJ IDEA安装运行python插件方法
2018/12/10 Python
使用Python批量修改文件名的代码实例
2019/01/24 Python
关于python3中setup.py小概念解析
2019/08/22 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
玩具反斗城美国官网:Toys"R"Us
2016/09/17 全球购物
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
电子商务专员岗位职责
2013/12/11 职场文书
党政领导班子四风问题对照检查材料思想汇报
2014/10/02 职场文书
鲁迅故居导游词
2015/02/05 职场文书
工资证明范本
2015/06/12 职场文书
母亲去世追悼词
2015/06/23 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书