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中activated的用法
Jan 03 Vue.js
vuex的使用步骤
Jan 06 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
vue常用高阶函数及综合实例
Feb 25 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
springboot+VUE实现登录注册
May 27 Vue.js
Vue图片裁剪组件实例代码
Jul 02 Vue.js
vue使用wavesurfer.js解决音频可视化播放问题
Apr 04 Vue.js
vue实现拖拽交换位置
Apr 07 Vue.js
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
vue生命周期钩子函数以及触发时机
Apr 26 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&amp;&amp;mysql)二
2006/10/09 PHP
NT IIS下用ODBC连接数据库
2006/10/09 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
解析isset与is_null的区别
2013/08/09 PHP
php实现网站顶踩功能的完整前端代码
2015/07/19 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
js escape,unescape解决中文乱码问题的方法
2010/05/26 Javascript
EasySlider 基于jQuery功能强大简单易用的滑动门插件
2010/06/11 Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
2012/02/27 Javascript
jquery实现按Enter键触发事件示例
2013/09/10 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
js验证电话号码与手机支持+86的正则表达式
2014/01/23 Javascript
上传文件返回的json数据会被提示下载问题解决方案
2014/12/03 Javascript
Bootstrap每天必学之标签页(Tab)插件
2020/08/09 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
jQuery Validate插件自定义验证规则的方法
2016/12/27 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
给你选择Python语言实现机器学习算法的三大理由
2017/11/15 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
Python模拟登录和登录跳转的参考示例
2020/10/30 Python
CSS3 新增选择器的实例
2019/11/13 HTML / CSS
StubHub哥伦比亚:购买和出售您的门票
2016/10/20 全球购物
菲律宾购物网站:Lazada菲律宾
2018/04/05 全球购物
巴西独家产品和现场演示购物网站:Shoptime
2019/07/11 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
中间件分为哪几类
2016/09/18 面试题
《从现在开始》教学反思
2014/04/15 职场文书
护士找工作求职信
2014/07/02 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
学习保证书100字
2015/02/26 职场文书
2015重阳节座谈会主持词
2015/07/30 职场文书
Python中super().__init__()测试以及理解
2021/12/06 Python