vue3引入highlight.js进行代码高亮的方法实例


Posted in Vue.js onApril 08, 2022

背景描述:

在项目开发中,经常一些日志预览,还有文件的预览,需要进行代码高亮显示。这样可以让文本内容展示的时候显得更加友好,也便于阅读

效果类似markdown语法的代码高亮,如下:

<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="自动化测试">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.tearDown_on_shutdown">true</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
    </TestPlan>

一、安装依赖:

注意:我们需要安装的依赖有两个,网上的博文,都是写的一个,比较坑。
npm install --save highlight.js
npm install --save @highlightjs/vue-plugin
命令行如下

## 这个是highlight.js基础依赖
npm install --save highlight.js
## 安装支持vue3 的@highlightjs/vue-plugin 依赖
npm install --save @highlightjs/vue-plugin

二、在vue3主入口main文件,对highlight进行引入和注册:

需要引入的有

样式 ,在main主入口引入样式为全局统一都使用这个样式,也可以在单独的页面引入,你想要的样式。样式效果参考官网:https://highlightjs.org/static/demo/
更改 import ‘highlight.js/styles/atom-one-dark.css’ 把styles 后面的值改成你想要的样式就行依赖包组件
# --- 文件src/main.ts | src/main.js 
# highlight 的样式,依赖包,组件
import 'highlight.js/styles/atom-one-dark.css'
import 'highlight.js/lib/common'
import hljsVuePlugin from '@highlightjs/vue-plugin'

import { computed, createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)

// 引入代码高亮,并进行全局注册
app.use(hljsVuePlugin)
app.mount('#app')

三、页面使用:

<!-- 把数据绑定到 `code` 属性-->
    <highlightjs autodetect :code="code" />
    <!--或者直接将显示的代码写到 `code`中 -->
    <highlightjs language='javascript' code="var x = 5;" />

示例如下:
可以使用 language 指定具体的语言,如javascript、xml等
这个值省略,highlightjs 也会自动识别对应的语言
vue3引入highlight.js进行代码高亮的方法实例

四、看下效果展示吧:

vue3引入highlight.js进行代码高亮的方法实例

vue3引入highlight.js进行代码高亮的方法实例

五、一些优化:

1.问题

可以看到生成的代码 是pre包裹的,会有个1rem 的margin-bottom,效果不是很好
vue3引入highlight.js进行代码高亮的方法实例

2.解决方法

在对应的页面,使用style 标签,对样式进行重写,注意不要加 scoped

<style lang="scss">
pre {
  margin-bottom: 0;
}
</style>

vue3引入highlight.js进行代码高亮的方法实例

3. 处理后的效果

这个是示例,当然你们可以根据实际的项目进行样式改造
码字不容易,对你有帮助的话,给个点赞吧 ☻ (✿◠‿◠)
更多详情,请查阅官方文档,
官网链接:https://highlightjs.org/
官网github链接:https://github.com/highlightjs/vue-plugin

vue3引入highlight.js进行代码高亮的方法实例

总结

到此这篇关于vue3引入highlight.js进行代码高亮例的文章就介绍到这了,更多相关vue3引入highlight.js代码高亮内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
vue实现表格合并功能
Dec 01 Vue.js
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
vue实现树状表格效果
Dec 29 Vue.js
Vue中引入svg图标的两种方式
Jan 14 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
vue使用节流函数的踩坑实例指南
May 20 Vue.js
Vue实现动态查询规则生成组件
May 27 Vue.js
简单聊聊Vue中的计算属性和属性侦听
Oct 05 Vue.js
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
vue3 自定义图片放大器效果的示例代码
Jul 23 Vue.js
vue中的可拖拽宽度div的实现示例
vue 实现弹窗关闭后刷新效果
Apr 08 #Vue.js
vue中this.$http.post()跨域和请求参数丢失的解决
Apr 08 #Vue.js
vue实现书本翻页动画效果实例详解
Apr 08 #Vue.js
vue实现列表拖拽排序的示例代码
vue实现可以快进后退的跑马灯组件
Apr 08 #Vue.js
Axios代理配置及封装响应拦截处理方式
You might like
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
PHP向浏览器输出内容的4个函数总结
2014/11/17 PHP
YII框架中使用memcache的方法详解
2017/08/02 PHP
一个js封装的不错的选项卡效果代码
2008/02/15 Javascript
番茄的表单验证类代码修改版
2008/07/18 Javascript
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
在jquery中的ajax方法怎样通过JSONP进行远程调用
2014/04/04 Javascript
jquery对table中各数据的增加、保存、删除操作示例
2014/05/14 Javascript
js简单抽奖代码
2015/01/16 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
简单的jQuery banner图片轮播实例代码
2016/03/04 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
Highcharts入门之简介
2016/08/02 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
JS实现在文本指定位置插入内容的简单示例
2017/12/22 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[02:33]2018 DOTA2亚洲邀请赛回顾视频 再次拾起那些美妙的时刻
2018/04/10 DOTA
使用Python中的cookielib模拟登录网站
2015/04/09 Python
python 性能提升的几种方法
2016/07/15 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
Python创建普通菜单示例【基于win32ui模块】
2018/05/09 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
Python hashlib模块用法实例分析
2018/06/12 Python
Python multiprocess pool模块报错pickling error问题解决方法分析
2019/03/20 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
Python学习笔记之Zip和Enumerate用法实例分析
2019/08/14 Python
python统计文章中单词出现次数实例
2020/02/27 Python
会计师职业生涯规划范文
2014/02/18 职场文书
工作岗位说明书模板
2014/05/09 职场文书
民警个人对照检查剖析材料
2014/09/17 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
工作自我推荐信范文
2015/03/25 职场文书
五星红旗迎风飘扬观后感
2015/06/17 职场文书