电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Vue單頁面應用中實現Markdown渲染

瀏覽:100日期:2022-10-05 16:17:01

之前渲染 Markdown 的時候, 筆者使用的是 mavonEditor 的預覽模式, 使用起來比較爽, 只需要引入組件即可, 但是在最近的開發中, 遇到了困難.

主要問題在于作為單頁面應用, 站內鏈接必須是使用 router-link 跳轉, 如果使用 mavonEditor 默認渲染的 a 標簽, 就會重新加載頁面, 用戶體驗較差.

動態渲染

想要實現在前端動態地根據用戶內容渲染router-link , 需要使用動態渲染, 根據 官方文檔, 直接修改vue.config.js 即可:

// vue.config.jsmodule.exports = { runtimeCompiler: true}渲染 Markdown

筆者使用的是 markdown-it, 配置過程如下:

安裝

npm install markdown-it --save # 本體npm install markdown-it-highlightjs --save # 代碼高亮npm install markdown-it-katex --save # latex 支持

這里還另外安裝了兩個語法插件, 如果有其他需要的話, 可以在 npm 上搜索

靜態文件導入

highlight.js通過 cdn 導入, 在 index.html 中加入:

<link rel='stylesheet' rel='external nofollow' ><script src='http://www.hdgsjgj.cn/uploads/202102/21/16138832431.js'></script>github-markdown-css

markdown 的樣式

安裝

npm install github-markdown-css --save導入

在 main.js 文件中添加

import ’github-markdown-css/github-markdown.css’katex

通過 cdn 導入, 在 index.html 中加入:

<link rel='stylesheet' rel='external nofollow' >使用

首先在 components 目錄下創建 Markdown.vue 文件,

<template> <components :is='html' class='markdown-body'></components></template><script>import MarkdownIt from ’markdown-it’import hljs from ’markdown-it-highlightjs’import latex from ’markdown-it-katex’export default { name: ’Markdown’, props: { content: String }, data: () => ({ md: null }), computed: { // 使用 computed 才能在動態綁定時動態更新 html: function () { let res = this.md.render(this.content) // 使用正則表達式將站內鏈接替換為 router-link 標簽 res = res.replace(/<a href='http://www.hdgsjgj.cn/bcjs/(?!http://|https://)(.*?)' rel='external nofollow' >(.*?)</a>/g, ’<router-link to='$1'>$2</router-link>’) // 使用正則表達式將站外鏈接在新窗口中打開 res = res.replace(/<a href='http://www.hdgsjgj.cn/bcjs/(.*?)' rel='external nofollow' >(.*?)</a>/g, ’<a href='http://www.hdgsjgj.cn/bcjs/$1' rel='external nofollow' target='_blank'>$2</a>’) return { template: ’<div>’ + res + ’</div>’ } } }, created () { this.md = new MarkdownIt() this.md.use(hljs).use(latex) }}</script>

然后在想使用的地方導入即可

<template> <div> <Markdown :content='content'/> </div></template><script>import Markdown from ’@/components/Markdown.vue’export default { name: ’Home’, components: { Markdown }, data: () => ({ content: ’’ }), created () { this.content = ’# 測試’ }}</script>

以上就是Vue單頁面應用中實現Markdown渲染的詳細內容,更多關于vue Markdown渲染的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
主站蜘蛛池模板: 净化工程_无尘车间_无尘车间装修-广州科凌净化工程有限公司 | 东莞注册公司-代办营业执照-东莞公司注册代理记账-极刻财税 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | cnc精密加工_数控机械加工_非标平键定制生产厂家_扬州沃佳机械有限公司 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 一技任务网_有一技之长,就来技术任务网 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 展厅设计-展馆设计-专业企业展厅展馆设计公司-昆明华文创意 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 深圳市宏康仪器科技有限公司-模拟高空低压试验箱-高温防爆试验箱-温控短路试验箱【官网】 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 深圳法律咨询【24小时在线】深圳律师咨询免费 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! | 气动机械手-搬运机械手-气动助力机械手-山东精瑞自动化设备有限公司 | 煤粉取样器-射油器-便携式等速飞灰取样器-连灵动 | 护腰带生产厂家_磁石_医用_热压护腰_登山护膝_背姿矫正带_保健护具_医疗护具-衡水港盛 | 立刷【微电签pos机】-嘉联支付立刷运营中心 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 湖州织里童装_女童男童中大童装_款式多尺码全_织里儿童网【官网】-嘉兴嘉乐网络科技有限公司 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 魔方网-培训咨询服务平台 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 二手色谱仪器,十万分之一分析天平,蒸发光检测器,电位滴定仪-湖北捷岛科学仪器有限公司 | 恒温水槽与水浴锅-上海熙浩实业有限公司 | 早报网| 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 健康管理师报考条件,考试时间,报名入口—首页 | Dataforth隔离信号调理模块-信号放大模块-加速度振动传感器-北京康泰电子有限公司 | 昆山新莱洁净应用材料股份有限公司-卫生级蝶阀,无菌取样阀,不锈钢隔膜阀,换向阀,离心泵 | 美缝剂_美缝剂厂家_美缝剂加盟-地老板高端瓷砖美缝剂 | 污泥烘干机-低温干化机-工业污泥烘干设备厂家-焦作市真节能环保设备科技有限公司 | 无轨电动平车_轨道平车_蓄电池电动平车★尽在新乡百特智能转运设备有限公司 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 |