Vue3解析markdown并實(shí)現(xiàn)代碼高亮顯示的詳細(xì)步驟
Vue實(shí)現(xiàn)博客前端,需要實(shí)現(xiàn)markdown的解析,如果有代碼則需要實(shí)現(xiàn)代碼的高亮。
Vue的markdown解析庫有很多,如markdown-it、vue-markdown-loader、marked、vue-markdown等。這些庫都大同小異。這里選用的是marked,代碼高亮的庫選用的是highlight.js。
具體實(shí)現(xiàn)步驟如下:
一、安裝依賴庫
在vue項(xiàng)目下打開命令窗口,并輸入以下命令
npm install marked -save // marked 用于將markdown轉(zhuǎn)換成html npm install highlight.js -save //用于代碼高亮顯示
命令執(zhí)行完后可以在控制臺或package.json文件中看到有安裝的版本號
二、在main.js文件中引入highlight.js及樣式并創(chuàng)建一個自定義的全局指令
import hljs from 'highlight.js'; import 'highlight.js/styles/atom-one-dark.css' //樣式 //創(chuàng)建v-highlight全局指令 Vue.directive('highlight',function (el) { let blocks = el.querySelectorAll('pre code'); blocks.forEach((block)=>{ hljs.highlightBlock(block) }) })
這樣就可以在vue組件中使用v-highlight引用代碼高亮的方法了。
三、在Vue組件中應(yīng)用marked解析及實(shí)現(xiàn)代碼高亮
代碼示例如下:
<!-- 正文輸出 --> <div class="entry-content"> <div v-highlight v-html="article" id="content"></div> </div>
<script> // 將marked 引入 import { marked }from 'marked'; export default { name: 'articles', data(){ return{ article:'' } }, methods: { getPostDetail() { console.log('getPostDetail()'+this.id) fetchPostDetail(this.id).then(res => { this.postdetail=res.data // 調(diào)用marked()方法,將markdown轉(zhuǎn)換成html this.article= marked(this.postdetail.content); console.log(res.data) }).catch(err => { console.log(err) }) }, created() { //調(diào)用獲取文章內(nèi)容的接口方法 this.getPostDetail() }, } </script>
四、顯示效果
markdown解析及代碼高亮顯示效果
示例中引用的樣式是 import 'highlight.js/styles/atom-one-dark.css'
實(shí)際highlight.js/styles中提供了很多樣式,可以根據(jù)自己的喜好選用。
到此這篇關(guān)于Vue3解析markdown并實(shí)現(xiàn)代碼高亮顯示的文章就介紹到這了,更多相關(guān)Vue3解析markdown內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在vscode中統(tǒng)一vue編碼風(fēng)格的方法
本篇文章主要介紹了在vscode中統(tǒng)一vue編碼風(fēng)格的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02vue中各選項(xiàng)及鉤子函數(shù)執(zhí)行順序詳解
今天小編就為大家分享一篇vue中各選項(xiàng)及鉤子函數(shù)執(zhí)行順序詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08Vue中使用event的坑及解決event is not defined
這篇文章主要介紹了Vue中使用event的坑及解決event is not defined,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03記錄--使用el-time-picker默認(rèn)值遇到的問題
這篇文章主要介紹了記錄--使用el-time-picker默認(rèn)值遇到的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09Vue渲染器如何對節(jié)點(diǎn)進(jìn)行掛載和更新
這篇文章主要介紹了Vue 的渲染器是如何對節(jié)點(diǎn)進(jìn)行掛載和更新的,文中通過代碼示例給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-05-05