vue導(dǎo)入.md文件的步驟(markdown轉(zhuǎn)HTML)
前言
剛接到這個需求的時候,覺得很簡單(的確很簡單)但是這玩意的坑真的也讓人無奈。
網(wǎng)上找了很多的資料,都沒有寫出痛點(這就很難過了)。通過實踐并且在我們項目中平穩(wěn)運行,想分享給后面的人
我的博客上也寫了100多篇文章,點擊量有上萬的也有個位數(shù)的,能夠幫助到他人這就是寫作記錄的動力。
需求
vue項目中可以良好展示markdown(只是展示功能 沒有編輯功能)
痛點問題
- .md文件類型,直接模塊加載(只有字符串,這得多難受,怎么維護呢),還是一個文件一個文件的好維護并且好修改復(fù)用
- 用第三方插件,只是md轉(zhuǎn)HTML,不帶樣式的(重點強調(diào) 沒有樣式?jīng)]有樣式)
解決方案
一、vue需要有markdown這樣良好的展示效果,什么樣的插件是最好的?
貨比三家,我推薦以下方式
//安裝
npm install --save html-loader;
npm install -- save markdown-loader;
//webpack
{
test: /\.md$/,
loader: "html-loader",
},
{
test: /\.md$/,
loader: "markdown-loader"
}
大坑預(yù)警:我不知道在哪里抄的配置,一定不要配置option(配置了的話表格 代碼 都不能好好轉(zhuǎn)化)
以上真的就完成了轉(zhuǎn)化了。是不是so easy ?。?! 再來換個皮膚(穿上衣服)
二、一定要引用CSS,找了很多樣式真的都特別的丑(當然可以自己寫,但是費時間啊)
強烈推薦
npm install github-markdown-css
import 'github-markdown-css'; //哪里用markdown 就在哪里引用 可以放在min.js
//自己也可以再調(diào)整調(diào)整 (貢獻一版 我們調(diào)整的一版樣式)
.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`); //導(dǎo)入md 我這里根據(jù)不同的類型拿不同md文件
}
}
};
</script>
四、最終效果 (表格,代碼(縮進完全沒有問題)我懶的去寫一個實例了)打碼勿怪

以上就是vue導(dǎo)入.md文件的步驟(markdown轉(zhuǎn)HTML)的詳細內(nèi)容,更多關(guān)于vue 導(dǎo)入.md文件的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue2.0 + ele的循環(huán)表單及驗證字段方法
今天小編就為大家分享一篇vue2.0 + ele的循環(huán)表單及驗證字段方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09
如何解決Vue3組合式API模式下動態(tài)組件不渲染問題
這篇文章主要介紹了如何解決Vue3組合式API模式下動態(tài)組件不渲染問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教<BR>2024-03-03
vue2.x 通過后端接口代理,獲取qq音樂api的數(shù)據(jù)示例
今天小編就為大家分享一篇vue2.x 通過后端接口代理,獲取qq音樂api的數(shù)據(jù)示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10
Vue?3?使用moment設(shè)置顯示時間格式的問題及解決方法
在Vue?3中,因為過濾器(filter)已經(jīng)被廢棄,取而代之的是全局方法(global?method),本文給大家介紹Vue?3?使用moment設(shè)置顯示時間格式的問題及解決方法,感興趣的朋友一起看看吧2023-12-12
vue 實現(xiàn)在同一界面實現(xiàn)組件的動態(tài)添加和刪除功能
這篇文章主要介紹了vue 實現(xiàn)在同一界面實現(xiàn)組件的動態(tài)添加和刪除,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06

