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 遍历验证所有文本框的值
Aug 27 Javascript
jQuery EasyUI API 中文文档 DateTimeBox日期时间框
Oct 16 Javascript
jQuery设置Cookie及删除Cookie实例分析
Apr 15 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
Aug 31 Javascript
常用原生js自定义函数总结
Nov 20 Javascript
浅析vue数据绑定
Jan 17 Javascript
javaScript+turn.js实现图书翻页效果实例代码
Feb 16 Javascript
js实现拖拽功能
Mar 01 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
Mar 17 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
Sep 14 Javascript
Vue动态控制input的disabled属性的方法
Jun 26 Javascript
JS Object.preventExtensions(),Object.seal()与Object.freeze()用法实例分析
Aug 25 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 CKEditor 上传图片实现代码
2009/11/06 PHP
php时间戳转换的示例
2014/03/31 PHP
JavaScript 创建对象
2009/07/17 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
基于jQuery架构javascript基础体系
2011/01/01 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
2013/06/05 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
js单例模式详解实例
2013/11/21 Javascript
用原生JS获取CLASS对象(很简单实用)
2014/10/15 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
jquery实现移动端点击图片查看大图特效
2020/09/11 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
js作用域和作用域链及预解析
2019/04/11 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
JavaScript运动原理基础知识详解
2020/04/02 Javascript
Python格式化css文件的方法
2015/03/10 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
Python while 循环使用的简单实例
2016/06/08 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python绘制KS曲线的实现方法
2018/08/13 Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
2019/07/17 Python
python 初始化一个定长的数组实例
2019/12/02 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
CSS3中的clip-path使用攻略
2015/08/03 HTML / CSS
垃圾回收的优点和原理。并考虑2种回收机制
2016/10/16 面试题
毕业自荐书
2013/12/09 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
八一建军节演讲稿
2014/09/10 职场文书
法定授权委托证明书
2015/06/18 职场文书
开学典礼致辞
2015/07/29 职场文书
讨论nginx location 顺序问题
2022/05/30 Servers