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 router安装及使用方法解析
Dec 02 Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
vue的hash值原理也是table切换实例代码
Dec 14 Vue.js
vue从后台渲染文章列表以及根据id跳转文章详情详解
Dec 14 Vue.js
Vue中computed和watch有哪些区别
Dec 19 Vue.js
vue编写简单的购物车功能
Jan 08 Vue.js
详解template标签用法(含vue中的用法总结)
Jan 12 Vue.js
vue穿梭框实现上下移动
Jan 29 Vue.js
vue中三级导航的菜单权限控制
Mar 31 Vue.js
深入讲解Vue中父子组件通信与事件触发
Mar 22 Vue.js
vue 自定义组件添加原生事件
Apr 21 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 在线打包_支持子目录
2008/06/28 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
PHP的变量类型和作用域详解
2014/03/12 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
php提取字符串中网站url地址的方法
2014/12/03 PHP
php显示指定目录下子目录的方法
2015/03/20 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
ThinkPHP框架整合微信支付之JSAPI模式图文详解
2019/04/09 PHP
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
获取内联和链接中的样式(js代码)
2013/04/11 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
用jQuery toggleClass 实现鼠标移上变色
2014/05/14 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
JS实现的多张图片轮流播放幻灯片效果
2016/07/22 Javascript
关于Angularjs中跨域设置白名单问题
2018/04/17 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
[47:53]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#2COL VS Spirit
2016/03/02 DOTA
Python正则表达式教程之一:基础篇
2017/03/02 Python
python如何重载模块实例解析
2018/01/25 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
使用Django连接Mysql数据库步骤
2019/01/15 Python
python调用其他文件函数或类的示例
2019/07/16 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
Pytorch中实现只导入部分模型参数的方式
2020/01/02 Python
python 实现表情识别
2020/11/21 Python
浅谈matplotlib默认字体设置探索
2021/02/03 Python
Expedia韩国官网:亚洲发展最快的在线旅游门户网站
2018/02/26 全球购物
美术专业个人自我评价
2014/01/18 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
乡镇干部学习心得体会
2016/01/23 职场文书
MySQL 可扩展设计的基本原则
2021/05/14 MySQL
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python