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

目录
  • 背景描述:
  • 一、安装依赖:
  • 二、在vue3主入口main文件,对highlight进行引入和注册:
  • 三、页面使用:
  • 四、看下效果展示吧:
  • 五、一些优化:
    • 1.问题
    • 2.解决方法
    • 3. 处理后的效果
  • 总结

背景描述:

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

效果类似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 也会自动识别对应的语言

四、看下效果展示吧:

五、一些优化:

1.问题

可以看到生成的代码 是pre包裹的,会有个1rem 的margin-bottom,效果不是很好

2.解决方法

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

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

3. 处理后的效果

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

总结

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

(0)

相关推荐

  • Vue中使用highlight.js实现代码高亮显示以及点击复制

    目录 效果如下 第一步 安装highlight.js 第二步 在main.js中引入 第三步 创建组件 效果如图:点击显示代码 第四步: 使用组件 第五步 实现点击复制代码clipboard.js. 本文主要介绍了Vue中使用highlight.js实现代码高亮显示以及点击复制,具体如下: 效果如下 第一步 安装highlight.js yarn add highlight.js 第二步 在main.js中引入 import hl from 'highlight.js' // 导入代码高亮文件

  • vue 代码高亮插件全面对比测评

    全面对比 从活跃方面来看 从功能方面来看 代码高亮是必须的,社区必须活跃,不然修复bug没有一点点参考,太费时间.自动补全缩进,快捷键操作,搜索和替换等功能不是必须的,如果有,能拿来装逼当然最好,不能也不影响使用. 故而挑出了以下几个,再具体分析,逐个调查,查看后续开发,部署的坑,坑少方便的就被我选中. 深入对比 1,ace Ace是一个用JavaScript编写的嵌入式代码编辑器.它与Sublime,Vim和TextMate等原生编辑器的功能和性能相匹配.它可以很容易地嵌入到任何网页和Java

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

    目录 背景描述: 一.安装依赖: 二.在vue3主入口main文件,对highlight进行引入和注册: 三.页面使用: 四.看下效果展示吧: 五.一些优化: 1.问题 2.解决方法 3. 处理后的效果 总结 背景描述: 在项目开发中,经常一些日志预览,还有文件的预览,需要进行代码高亮显示.这样可以让文本内容展示的时候显得更加友好,也便于阅读 效果类似markdown语法的代码高亮,如下: <TestPlan guiclass="TestPlanGui" testclass=&q

  • Vue3引入axios封装接口的两种方法实例

    目录 第一种 1.安装 2.新建一个http.js文件 3.使用 第二种 1.安装 2.新建 3.http.js 4.request.js 总结 第一种 1.安装 npm install axios -S 2.新建一个http.js文件 import axios from "axios"; import qs from "qs"; import { Dialog, Toast } from "vant"; // axios.defaults.ba

  • 在react中使用highlight.js将页面上的代码高亮的方法

    通过 highlight.js 库实现对文章正文 HTML 中的代码元素自动添加语法高亮,highlight.js官方文档 下载highlight.js npm i highlight.js 导入highlight.js import hljs from 'highlight.js' import 'highlight.js/styles/vs2015.css'   用highlight.js   useEffect(() => {     // 配置 highlight.js     hljs

  • bootstrap中使用google prettify让代码高亮的方法

    利用google prettify 让代码高亮,好看. 下载地址: http://code.google.com/p/google-code-prettify/ http://www.bootcdn.cn/prettify/ 网络引入地址: //cdn.bootcss.com/prettify/r298/prettify.min.js 效果图如下 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" &quo

  • Python3打包exe代码2种方法实例解析

    这篇文章主要介绍了Python3打包exe代码2种方法实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 cx_Freeze(不推荐) 以前只用 cx_Freeze 支持将 python3 打包成 exe ,示例如下: 在你要打包的 python 文件下新建这个 setup.py 文件: #!/usr/bin/env python # -*- coding: utf-8 -*- from cx_Freeze import setup, Ex

  • 防止SyntaxHighlighter.js的代码高亮时闪一下的解决方法

    SyntaxHighlighter.js是一个代码高亮的JS插件,使用也很简单,但是由于是浏览器段执行JS代码来着色,会出现视觉上闪一下的效果.比如你的20行代码网页打开显示高度为100px,但是SyntaxHighlighter高亮后该区域高度变为120px 加上颜色的变化,这样的体验特别不好. 解决原理:把pre标签的样式定义为 高亮后的样式即可 解决方法:在shCoreDefault.css文件加上如下样式 pre { line-height:22px !important; backgr

  • JS实现图片高亮展示效果实例

    本文实例讲述了JS实现图片高亮展示效果的方法.分享给大家供大家参考,具体如下: 昨天朋友让我帮着做个图片高亮展示的效果,虽然不难,不过满有创意的: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w

  • JS正则表达式替换字符串replace()方法实例代码

    目录 replace()方法介绍 简单用法 重点:函数替换 补充:替换特殊字符 总结 replace()方法介绍 replace()方法执行搜索替换操作. 它接收一个正则表达式作为第一个参数, 接收一个替换字符串作为第二个参数. 它搜索调用它的字符串, 寻找与指定模式匹配的文本. 如果正则表达式带g标志, replace()方法会替换字符串中的所有匹配项; 否则, 它只替换第一个匹配项. 如果replace()方法的第一个参数是一个字符串而非正则表达式, 这个方法会按照字面值进行搜索. 简单用法

  • js实现jquery的offset()方法实例

    本文实例讲述了js实现jquery的offset()方法.分享给大家供大家参考.具体分析如下: 用过jQuery的offset()的同学都知道offset().top或offset().left很方便地取得元素相对于整个页面的偏移. 而在js里,没有这样直接的方法,节点的属性offsetTop可以获得该节点相对于父节点的相对偏移,但不能直接获得其绝对偏移,我们可用节点逐层递归向上来相加offsetTop来获得绝对偏移. 复制代码 代码如下: function getOffset(Node, of

随机推荐