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 相关文章推荐
JavaScript高级程序设计阅读笔记(六) ECMAScript中的运算符(二)
Feb 27 Javascript
js判断页面中是否有指定控件的简单实例
Mar 04 Javascript
优化RequireJS项目的相关技巧总结
Jul 01 Javascript
深入理解MVC中的时间js格式化
May 19 Javascript
vue2.0父子组件间通信的实现方法
Apr 19 Javascript
微信小程序 判断手机号的实现代码
Apr 19 Javascript
node.js express中app.param的用法详解
Jul 16 Javascript
详解Axios统一错误处理与后置
Sep 26 Javascript
一次让你了解全部JavaScript的作用域
Jun 24 Javascript
简单谈谈javascript高级特性
Sep 04 Javascript
vue利用全局导航守卫作登录后跳转到未登录前指定页面的实例代码
May 19 Javascript
MutationObserver在页面水印实现起到的作用详解
Jul 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
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
jQuery 添加/移除CSS类实现代码
2010/02/11 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
原生javascript实现简单的datagrid数据表格
2015/01/02 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
浅析JavaScript作用域链、执行上下文与闭包
2016/02/01 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
2017/10/31 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
axios全局注册,设置token,以及全局设置url请求网段的方法
2018/09/25 Javascript
javascript事件监听与事件委托实例详解
2019/08/16 Javascript
vue项目出现页面空白的解决方案
2019/10/31 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
微信小程序图片右边加两行文字的代码
2020/04/23 Javascript
[46:55]Ti4 冒泡赛第二轮 LGD vs C9
2014/07/14 DOTA
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
python tools实现视频的每一帧提取并保存
2020/03/20 Python
Python中那些 Pythonic的写法详解
2019/07/02 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
python绘图模块之利用turtle画图
2021/02/12 Python
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
英国复古服装购物网站:Collectif
2019/10/30 全球购物
Java语言的优势
2015/01/10 面试题
毕业生求职简历的自我评价
2013/10/23 职场文书
咖啡店的创业计划书,让你hold不住
2014/01/03 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
三八妇女节寄语
2015/02/27 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
python基于tkinter制作无损音乐下载工具
2021/03/29 Python