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 onload、ready概念介绍及使用方法
Apr 27 Javascript
Jquery中&quot;$(document).ready(function(){ })&quot;函数的使用详解
Dec 30 Javascript
深入理解javascript中的立即执行函数(function(){…})()
Jun 12 Javascript
基于JavaScript如何实现私有成员的语法特征及私有成员的实现方式
Oct 28 Javascript
js获取及修改网页背景色和字体色的方法
Dec 29 Javascript
基于JavaScript如何制作遮罩层对话框
Jan 26 Javascript
vue.js实现请求数据的方法示例
Feb 07 Javascript
js实现彩色条纹滚动条效果
Mar 15 Javascript
bootstrap模态框弹出和隐藏,动态改变中间内容的实例
Aug 10 Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 Javascript
vue中提示$index is not defined错误的解决方式
Sep 02 Javascript
jQuery实现本地存储
Dec 22 jQuery
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 array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
PHP文件操作实例总结
2016/09/27 PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
2018/05/24 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
JavaScript栏目列表隐藏/显示简单实现
2013/04/03 Javascript
xmlhttp缓存清除的2种解决方法
2013/12/13 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
js图片自动轮播代码分享(js图片轮播)
2014/05/06 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
使用OPENLAYERS3实现点选的方法
2020/09/24 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
webpack 最佳配置指北(推荐)
2020/01/07 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
python 判断自定义对象类型
2009/03/21 Python
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
利用Python将数值型特征进行离散化操作的方法
2018/11/06 Python
对pycharm 修改程序运行所需内存详解
2018/12/03 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
2020/04/13 Python
python 如何停止一个死循环的线程
2020/11/24 Python
Python爬取某平台短视频的方法
2021/02/08 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
JSP和EJB可以共享HttpSession么?EJB里面可以改变session里面的内容
2013/06/05 面试题
自荐信包含哪些内容
2013/10/30 职场文书
师范生自我鉴定
2014/03/20 职场文书
领导班子作风建设年个人整改措施
2014/09/29 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python