Vue項目markdown內(nèi)容預覽顯示優(yōu)化方式
更新時間:2025年10月25日 10:07:46 作者:Qredsun
在Vue項目中使用markdown-it組件預覽Markdown內(nèi)容時,通過安裝pnpm和markdown-it-github-markdown-css依賴,并重寫markdown部分樣式,實現(xiàn)了Markdown內(nèi)容的美化,在MarkdownPreview.vue組件中,通過變量renderedMarkdown接收并渲染Markdown內(nèi)容
背景
Vue項目中需要對markdown內(nèi)容進行預覽,使用markdown-it組件實現(xiàn)功能后,發(fā)現(xiàn)樣式比較丑,需要進行優(yōu)化一下
實現(xiàn)
安裝依賴
pnpm add markdown-it github-markdown-css
重寫markdown的部分樣式。
- MarkdownPreview.vue
<template>
<div v-html="renderedHtml" class="markdown-body"></div>
</template>
<script setup lang="ts">
import { ref, watch } from 'vue'
import MarkdownIt from 'markdown-it'
interface Props {
content: string;
}
const props = defineProps<Props>()
// 初始化 markdown-it 實例
const md = new MarkdownIt({
html: true, // 允許 HTML 標簽
breaks: true, // 支持換行
linkify: true // 自動識別鏈接
})
const renderedHtml = ref('')
// 監(jiān)聽 content 變化,重新渲染 markdown
watch(
() => props.content,
(newContent) => {
renderedHtml.value = md.render(newContent)
},
{ immediate: true }
)
</script>
<style>
@import "github-markdown-css/github-markdown-light.css";
.markdown-body {
padding: 20px;
line-height: 1.7;
font-size: 14px;
}
.markdown-body ul,
.markdown-body ol {
margin-left: 1.2em;
margin-bottom: 1em;
}
.markdown-body li {
margin-bottom: 0.4em;
}
.markdown-body table {
border-collapse: collapse;
width: 100%;
}
.markdown-body table,
.markdown-body th,
.markdown-body td {
border: 1px solid #d0d7de;
padding: 8px;
}
.markdown-body th {
background-color: #f6f8fa;
}
</style>
其他模塊進行引用
變量 renderedMarkdown 是stirng類型的Markdown內(nèi)容
<MarkdownPreview :content="renderedMarkdown" />
總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳談Vue.js框架下main.js,App.vue,page/index.vue之間的區(qū)別
這篇文章主要介紹了詳談Vue.js框架下main.js,App.vue,page/index.vue之間的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08
vue項目中在可編輯div光標位置插入內(nèi)容的實現(xiàn)代碼
這篇文章主要介紹了vue項目中在可編輯div光標位置插入內(nèi)容的實現(xiàn)代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2020-01-01
Vue transition實現(xiàn)點贊動畫效果的示例
點贊動畫是網(wǎng)頁評論中常見的功能,本文將介紹如何用vue實現(xiàn)這一效果。點贊時愛心縮小變大,變大時略微大一點再變正常,取消點贊時愛心無動畫,同時數(shù)字滾動,+1 時向上滾動,-1 時向下滾動2021-05-05
Vue+Node.js+WebSocket實現(xiàn)即時通訊
本文主要介紹了Vue+Node.js+WebSocket實現(xiàn)即時通訊,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-05-05

