Vue中使用Prismjs高亮TinyMCE富文本编辑保存的代码

博客介绍了在Vue中使用Prism.js实现代码高亮的步骤,包括安装Prism.js和其编译器,编辑babel配置,不同cli版本或模式的babel配置文件名不同,还提及了组件内应用和页面显示效果。

1.安装Prism.js

cnpm install prismjs -S

2.安装prismjs编译器

cnpm install babel-plugin-prismjs -D

3.编辑babel配置

不同cli版本或模式的babel配置文件名不同,一般是放在babel.config.js.babelrcpackage.json这些文件中的某一个文件中

主要代码是plugins属性下包裹prismjs的这个数组,以下babel.config.js文件示例:

module.exports = {
    presets: ['@vue/cli-plugin-babel/preset'],
    plugins: [
        [
            'prismjs',
            {
                languages: ['javascript', 'css', 'markup', 'java', 'cpp', 'csharp', 'python', 'ruby', 'php'], //高亮语言类型
                plugins: ['line-numbers'], 
                theme: 'tomorrow', //主题
                css: true,
            },
        ],
    ],
};

4.组件内应用

<template>
    <div class="document-container" v-html="content"></div>
</template>

<script lang="ts">
import {Component, Prop, Watch, Vue } from 'vue-property-decorator';
import Prismjs from 'prismjs'; //引入插件

@Component({ name: 'DocumentPreview'})
export default class extends Vue {
    //文档数据
    private content: string = '';

   //挂载完成
   private async mounted() {
   		this.content = await this.getDocument();
        this.$nextTick(() => {
            Prism.highlightAll(); //数据渲染完成后执行一次
        });	
    }

    //获取文档详情
    private getDocument() {
        return this.$http.get(this.$api.DOCUMENT).then(
            (resolve: any) => {
                return resolve.data;
            }
        );
    }
}
</script>

<style lang="scss" scoped>
.document-container {
    min-height: 400px;
}
</style>

5.页面显示效果

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值