vue导入.md文件的步骤(markdown转HTML)


Posted in Vue.js onDecember 31, 2020

前言

刚接到这个需求的时候,觉得很简单(的确很简单)但是这玩意的坑真的也让人无奈。

网上找了很多的资料,都没有写出痛点(这就很难过了)。通过实践并且在我们项目中平稳运行,想分享给后面的人

我的博客上也写了100多篇文章,点击量有上万的也有个位数的,能够帮助到他人这就是写作记录的动力。

需求

vue项目中可以良好展示markdown(只是展示功能 没有编辑功能)

痛点问题

  1. .md文件类型,直接模块加载(只有字符串,这得多难受,怎么维护呢),还是一个文件一个文件的好维护并且好修改复用
  2. 用第三方插件,只是md转HTML,不带样式的(重点强调 没有样式没有样式)

解决方案

一、vue需要有markdown这样良好的展示效果,什么样的插件是最好的?

货比三家,我推荐以下方式

//安装
npm install --save html-loader;
npm install -- save markdown-loader;

//webpack
 {
   test: /\.md$/,
   loader: "html-loader",
 },
 {
   test: /\.md$/,
   loader: "markdown-loader"
 }

大坑预警:我不知道在哪里抄的配置,一定不要配置option(配置了的话表格 代码 都不能好好转化)

以上真的就完成了转化了。是不是so easy !!! 再来换个皮肤(穿上衣服)

二、一定要引用CSS,找了很多样式真的都特别的丑(当然可以自己写,但是费时间啊)

强烈推荐

npm install github-markdown-css
import 'github-markdown-css'; //哪里用markdown 就在哪里引用 可以放在min.js

//自己也可以再调整调整 (贡献一版 我们调整的一版样式)
.markdown-body {
 padding: 20px;
 min-width: 200px;
 max-width: 900px;
 font-size: 12px;
 h2 {
 font-size: 18px;
 margin: 1em 0 15px;
 padding-top: 0.8em;
 padding-bottom: 0.8em;
 }
 h3 {
 font-size: 14px;
 margin: 22px 0 16px;
 }
 h4 {
 font-size: 13px;
 margin: 20px 0 16px;
 }
 h5 {
 font-size: 12px;
 margin: 16px 0 16px;
 font-weight: 700;
 }
 p {
 font-size: 12px;
 line-height: 24px;
 color: #666666;
 margin-top: 0px;
 margin: 8px 0;
 margin: 14px 0 14px;
 }
 pre {
 background-color: #eee;
 margin-bottom: 8px;
 margin-top: 8px;
 margin: 12px 0 12px;
 }
 blockquote {
 margin-bottom: 8px;
 margin-top: 8px;
 margin: 14px 0 14px;
 background-color: #eee;
 padding: 16px 16px;
 }
 tr {
 background-color: #f5f5f5;
 }
 code {
 background-color: #eee;
 }
 ul,
 ol,
 li {
 list-style: unset;
 font-size: 12px;
 line-height: 20px;
 color: #666666;
 margin-top: 0px;
 margin: 8px 0;
 }
 blockquote {
 border-color: #48b6e2;
 }
 table {
 display: table;
 width: 100%;
 max-width: 100%;
 margin-bottom: 20px;
 }
}

三、页面运用(实践检验真理)

页面
<template>
 <div class="markdown-body" v-html="htmlMD"></div> //markdown-body 一定要写这个class名
</template>

<script>
export default {
 name: 'GitBook',
 data() {
 return {
  htmlMD: ''
 };
 },
 mounted() {
 this.getHtmlMD(this.$route.query.databaseType);
 },
 methods: {
 getHtmlMD(type) {
  this.htmlMD = require(`./GitBook/${type.toLowerCase()}.md`); //导入md 我这里根据不同的类型拿不同md文件
 }
 }
};
</script>

四、最终效果 (表格,代码(缩进完全没有问题)我懒的去写一个实例了)打码勿怪

vue导入.md文件的步骤(markdown转HTML)

以上就是vue导入.md文件的步骤(markdown转HTML)的详细内容,更多关于vue 导入.md文件的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
详解vue 组件注册
Nov 20 Vue.js
解决vue下载后台传过来的乱码流的问题
Dec 05 Vue.js
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
VUE实现吸底按钮
Mar 04 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
Vue h函数的使用详解
Feb 18 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue实现在data里引入相对路径
Jun 05 Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
vue-cli4.0多环境配置变量与模式详解
Dec 30 #Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 #Vue.js
SpringBoot+Vue 前后端合并部署的配置方法
Dec 30 #Vue.js
vue中实现点击空白区域关闭弹窗的两种方法
Dec 30 #Vue.js
梳理一下vue中的生命周期
Dec 30 #Vue.js
Vue实现简易购物车页面
Dec 30 #Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 #Vue.js
You might like
PHP调用Linux的命令行执行文件压缩命令
2013/01/27 PHP
JavaScript 对象、函数和继承
2009/07/07 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
框架页面高度自动刷新的Javascript脚本
2013/11/01 Javascript
页面加载完毕后滚动条自动滚动一定位置
2014/02/20 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
浅谈JS中逗号运算符的用法
2016/06/12 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
vue的注意规范之v-if 与 v-for 一起使用教程
2019/08/04 Javascript
Python跳出循环语句continue与break的区别
2014/08/25 Python
python获取当前计算机cpu数量的方法
2015/04/18 Python
python通过Windows下远程控制Linux系统
2018/06/20 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
Python代码实现http/https代理服务器的脚本
2019/08/12 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
森海塞尔美国官网:Sennheiser耳机与耳麦
2017/07/19 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
大学生咖啡店创业计划书
2014/01/21 职场文书
保安队长职务说明书
2014/02/23 职场文书
初中家长寄语
2014/04/02 职场文书
幼师小班个人总结
2015/02/12 职场文书
超级礼物观后感
2015/06/15 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
JavaScript文档对象模型DOM
2021/11/20 Javascript
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js