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 表单输入框不支持focus及blur事件的解决方案
Nov 17 Vue.js
VUE项目实现主题切换的多种方法
Nov 26 Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
vue 动态生成拓扑图的示例
Jan 03 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
vuex的使用和简易实现
Jan 07 Vue.js
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 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
CI框架扩展系统核心类的方法分析
2016/05/23 PHP
DLL+ ActiveX控件+WEB页面调用例子
2010/08/07 Javascript
js 分页全选或反选标识实现代码
2011/08/09 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
AngularJS HTML编译器介绍
2014/12/06 Javascript
简单实现轮播图效果的实例
2016/07/15 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
Vue自定义图片懒加载指令v-lazyload详解
2020/12/31 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
微信小程序实现点击生成随机验证码
2020/09/09 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
[02:06]DOTA2英雄基础教程 暗影萨满
2013/12/16 DOTA
[55:11]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第一场 11.26
2020/11/30 DOTA
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
Python多线程和队列操作实例
2015/06/21 Python
Python处理PDF及生成多层PDF实例代码
2017/04/24 Python
python3获取当前目录的实现方法
2019/07/29 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
python 读取二进制 显示图片案例
2020/04/24 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
Python连接mysql方法及常用参数
2020/09/01 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
SQL Server面试题
2013/04/04 面试题
干部行政关系介绍信
2014/01/17 职场文书
信电学院毕业生自荐书
2014/05/24 职场文书
安全环保标语
2014/06/09 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
2014幼儿园中班工作总结
2014/11/10 职场文书
公司行政主管岗位职责
2015/04/09 职场文书
个人工作总结(管理人员)范文
2019/08/13 职场文书
Python实现拼音转换
2021/06/07 Python
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers