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 08 Vue.js
Vue实现简单购物车功能
Dec 13 Vue.js
Vite和Vue CLI的优劣
Jan 30 Vue.js
Vue项目打包部署到apache服务器的方法步骤
Feb 01 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
Vue过滤器(filter)实现及应用场景详解
Jun 15 Vue.js
Vue3.0中Ref与Reactive的区别示例详析
Jul 07 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 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
php无限遍历文件夹示例分享
2014/03/04 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
浅谈JavaScript 浏览器对象
2016/06/03 Javascript
使用BootStrap实现悬浮窗口的效果
2016/12/13 Javascript
jquery实现简单实用的轮播器
2017/05/23 jQuery
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
html+jQuery实现拖动滑块图片拼图验证码插件【移动端适用】
2019/09/10 jQuery
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
[01:38]DOTA2第二届亚洲邀请赛中国区预选赛出线战队晋级之路
2017/01/17 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
Python列表(list)常用操作方法小结
2015/02/02 Python
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
python 中字典嵌套列表的方法
2018/07/03 Python
python 字典 按key值大小 倒序取值的实例
2018/07/06 Python
Python制作动态字符图的实例
2019/01/27 Python
python过滤中英文标点符号的实例代码
2019/07/15 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
django框架auth模块用法实例详解
2019/12/10 Python
python入门之基础语法学习笔记
2020/02/08 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
美国美妆网站:B-Glowing
2016/10/12 全球购物
美国独家设计师眼镜在线光学商店:Glasses Gallery
2017/12/28 全球购物
上班看电影检讨书
2014/02/12 职场文书
员工拓展培训方案
2014/02/15 职场文书
同学聚会邀请函
2015/01/30 职场文书
简单的辞职信模板
2015/05/12 职场文书
公司年会开场白
2015/06/01 职场文书
Redis如何实现分布式锁
2021/08/23 Redis
Go 通过结构struct实现接口interface的问题
2021/10/05 Golang
Python实现学生管理系统并生成exe可执行文件详解流程
2022/01/22 Python