您好,登錄后才能下訂單哦!
小編給大家分享一下vue-cli3項目展示本地Markdown文件的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
【版本】
vue-cli3
webpack@4.33.0
【步驟】1、安裝插件vue-markdown-loader
npm i vue-markdown-loader -D
ps:這個插件是基于markdown-it的,不需要單獨安裝markdown-it。
2、修改vue.config.js配置文件(如果沒有,在項目根目錄新建一個):
module.exports = { chainWebpack: config => { config.module.rule('md') .test(/\.md/) .use('vue-loader') .loader('vue-loader') .end() .use('vue-markdown-loader') .loader('vue-markdown-loader/lib/markdown-compiler') .options({ raw: true }) } }
3、直接上代碼
App.vue
<template> <my-markdown></my-markdown> </template> <script> import myMarkdown from './assets/cpu.md'; export default { components: { myMarkdown }, </script>
正常情況下,到這里就結束了。
【坑】
由于業務給我的Markdown文檔的標題是這樣的:
##物理CPU個數
物理CPU數就是主板上實際插入的CPU數量
……
得到的結果并不讓我滿意:
折騰了大半天才發現,這是由于標題的#井號和文字之間沒有空格導致的。證明見下:
var MarkdownIt = require('markdown-it'), md = new MarkdownIt(); console.log(md.render('# markdown-it rulezz!'))//<h2>markdown-it rulezz!</h2> console.log(md.render('#markdown-it rulezz!'))//<p>#markdown-it rulezz!</p>
Fine :)
愚蠢的我想出了一個解決辦法:
因為HyperDown.js能避免上面那樣的情況,于是我用它來對文檔做預處理。
安裝HyperDown.js
npm install hyperdown -D
然后把vue.config.js改成了這樣。
let HyperDown = require('hyperdown'); let parser = new HyperDown; module.exports = { chainWebpack: config => { config.module.rule('md') .test(/\.md/) .use('vue-loader') .loader('vue-loader') .end() .use('vue-markdown-loader') .loader('vue-markdown-loader/lib/markdown-compiler') .options({ // markdown-it config preset: 'default', breaks: true, raw: true, typographer: true, preprocess: function(markdownIt, source) { return parser.makeHtml(source);//重點在這里!!! } }) } }
以上是“vue-cli3項目展示本地Markdown文件的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。