【vue】实现markdown

最近在做的一个团队写作项目,里面涉及到写周报的功能,在这里用markdown是最好的解决方法,采用了vue-markdown插件将文本转换为markdown格式,并使用highlight.js来实现代码高亮。

vue-markdown

首先安装vue-markdown

npm i vue-markdown

使用很简单:

import VueMarkdown from 'vue-markdown' //直接作为一个组件引入
export default {
    name: 'demo',
    data() {
        return {
            content: '## 这里是要展示的markdown文字,也可以通过props传递'
        }
    },
    components: {
        VueMarkdown // 声明组件
    }
}

在html中,直接使用该组件

<vue-markdown :source="content"></vue-markdown>

展示如下:

此时没有样式,下面我们引入highlight.js来实现代码高亮

highlight.js

首先安装highlight.js

npm i highlight.js

在main.js中注册一个新的指令

import hljs from 'highlight.js'
import 'highlight.js/styles/googlecode.css'

Vue.directive('highlight', (el) => {
    let blocks = el.querySelectorAll('pre code')
    blocks.forEach((block) => {
        hljs.highlightBlock(block)
    })
})

使用:

<vue-markdown v-highlight :source="content"></vue-markdown>

展示如下:

更多vue-markdown使用方法参考https://github.com/miaolz123/vue-markdown
更多highlight.js使用方法参考https://github.com/isagalaev/highlight.js

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值