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中通过render函数给子组件设置ref操作
Nov 17 Vue.js
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
Vue如何跨组件传递Slot的实现
Dec 14 Vue.js
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
vue3+typeScript穿梭框的实现示例
Dec 29 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
Vue如何实现变量表达式选择器
Feb 18 Vue.js
Vue多选列表组件深入详解
Mar 02 Vue.js
vue代码分块和懒加载非必要资源文件
Apr 11 Vue.js
vue 给数组添加新对象并赋值
Apr 20 Vue.js
Vue Mint UI mt-swipe的使用方式
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
2019十大人气国漫
2020/03/13 国漫
phpfans留言版用到的数据操作类和分页类
2007/01/04 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
destoon数据库表说明汇总
2014/07/15 PHP
jQuery 点击图片跳转上一张或下一张功能的实现代码
2010/03/12 Javascript
js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)
2011/03/25 Javascript
js判断当前浏览器类型,判断IE浏览器方法
2014/06/02 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
node.js从数据库获取数据
2016/05/08 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
jQuery+CSS实现的table表格行列转置功能示例
2018/01/08 jQuery
Canvas实现微信红包照片效果
2018/08/21 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
Python中用startswith()函数判断字符串开头的教程
2015/04/07 Python
详解python中xlrd包的安装与处理Excel表格
2016/12/16 Python
python实现的正则表达式功能入门教程【经典】
2017/06/05 Python
Python实现的质因式分解算法示例
2018/05/03 Python
对python过滤器和lambda函数的用法详解
2019/01/21 Python
python+os根据文件名自动生成文本
2019/03/21 Python
Python输出指定字符串的方法
2020/02/06 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
年终晚会主持词
2014/03/25 职场文书
医院我们的节日活动实施方案
2014/08/22 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
常务副县长“四风”个人对照检查材料思想汇报
2014/10/02 职场文书
死亡证明书样本说明
2014/10/18 职场文书
银行求职信怎么写
2019/06/20 职场文书
导游词之海南天涯海角
2019/12/05 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS
uni-app 微信小程序授权登录的实现步骤
2022/02/18 Javascript
MongoDB支持的索引类型
2022/04/11 MongoDB