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 26 Vue.js
Vue仿百度搜索功能
Dec 28 Vue.js
vue.js实现点击图标放大离开时缩小的代码
Jan 27 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
如何管理Vue中的缓存页面
Feb 06 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
VUE使用draggable实现组件拖拽
Apr 06 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
Apr 11 Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 Vue.js
vue router 动态路由清除方式
May 25 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
关于页面优化和伪静态
2009/10/11 PHP
使用php实现截取指定长度
2013/08/06 PHP
php实现的css文件背景图片下载器代码
2014/11/11 PHP
php生成验证码函数
2015/10/20 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
Vue计算属性的学习笔记
2017/03/22 Javascript
js实现抽奖效果
2017/03/27 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
2017/07/31 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
python 容器总结整理
2017/04/04 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
2018/04/25 Python
解决Python print 输出文本显示 gbk 编码错误问题
2018/07/13 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
Python 用matplotlib画以时间日期为x轴的图像
2019/08/06 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
django自带的权限管理Permission用法说明
2020/05/13 Python
Python中socket网络通信是干嘛的
2020/05/27 Python
8种常用的Python工具
2020/08/05 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
教师实习自我鉴定
2013/12/13 职场文书
优秀员工演讲稿
2014/05/19 职场文书
语文教研活动总结
2014/07/02 职场文书
自主招生自荐信范文
2015/03/04 职场文书
义诊活动通知
2015/04/24 职场文书
团组织推荐意见
2015/06/05 职场文书
白银帝国观后感
2015/06/17 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
python如何读取.mtx文件
2021/04/22 Python
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript