vue 代码高亮 prismjs 或 highlight.js插件的用法

vue nuxt.js 代码高亮 prismjs 或 highlight.js 插件的用法

功能点分析: 前端vue2.0 + nuxt.js 实现代码高亮 使用的插件是 prismjs 和 babel-plugin-prismjs编译器插件

1.安装 prismjs 插件 和 babel-plugin-prismjs

npm install prismjs // 这里也可以使用 yarn add prismjs
npm install babel-plugin-prismjs -D

课外小知识 · prismjs 要 配合着 babel-plugin-prismjs 编译器更好
有的小伙伴就好奇了
为啥要编译器更好呢 这里我就借用 prismjs 官网的一句话

*为了方便地仅使用您需要的语言和插件配置您的 Prism 实例,请使用 babel 插件
babel-plugin-prismjs。这将允许您加载最少数量的语言和插件以满足您的需求。有关配置详细信息,请参阅该插件的文档。

书归正传

2.需要配置 babel-plugin-prismjs 编译器这个插件
我们可以通过 nuxt 的 nuxt.config.js 文件进行配置

 module.exports = {
  build: { 
    babel: {
      plugins: [
        [
          'prismjs',
          {
          	// 可以选择多种语言
            languages:['javascript','php','c','cpp','python','go'],
            //配置显示行号插件
            plugins: [
              'line-numbers',
            ],
            theme: 'coy', //主体名称
            css: true
          }
        ]
      ]
    }
  },
}

3.在plugins文件下添加一个prismjs.js

在prismjs.js 中引入

·亿点小知识 ·provide/inject provide 可以在祖先组件中指定我们想要提供给后代组件的数据或方法,而在任何后代组件中,我们都可以使用 inject 来接收 provide 提供的数据或方法。

import Prism from 'prismjs';
//可以引入其他的css样式
import 'prismjs/themes/prism.min.css';
export default (ctx, inject) => {
  inject('prism', Prism)
}

4.在需要美化的代码块中添加

// reCode 其实就是要高亮的内容  请看下面 js代码
<pre v-html="resCode"></pre> //在页面中使用

methods:{
	// 在方法中使用 this.$prism.highlight 
	resCode(){ 
	return this.$prism.highlight(`var txt = 内容`, this.$prism.languages.bash, 'bash') 
	// language.xxx或lang.xxx选择编程语言
}	
}

_此功能适用与 vue + nuxt 想要纯 vue 可以点击下面穿越 _

还有另一个 vue-highlightjs来实现 代码高亮 穿越

想要进一步详细的配置 高亮内容 请穿越 prismjs官网

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Vue.js 官网使用了 highlight.js 库来处理代码。在 Vue.js 官网中,你可以看到在每个代码块的上方都有一个选择语言的下拉框,这个下拉框可以让你为你的代码块选择不同的语言,例如 HTML、CSS、JavaScript 等。 Vue.js 官网使用 highlight.js 来实现这个功能,具体步骤如下: 1. 引入 highlight.js 库和对应的样式文件: ```html <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.4.0/styles/default.min.css"> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/10.4.0/highlight.min.js"></script> ``` 2. 在页面加载时将所有代码块进行处理: ```javascript document.addEventListener('DOMContentLoaded', (event) => { document.querySelectorAll('pre code').forEach((block) => { hljs.highlightBlock(block); }); }); ``` 3. 监听下拉框的变化,为选中的代码块重新设置语言: ```javascript document.addEventListener('DOMContentLoaded', (event) => { document.querySelectorAll('pre code').forEach((block) => { hljs.highlightBlock(block); }); document.querySelectorAll('.language-selector').forEach((select) => { select.addEventListener('change', (event) => { const codeBlock = event.target.closest('.code-block').querySelector('pre code'); codeBlock.className = `language-${event.target.value}`; hljs.highlightBlock(codeBlock); }); }); }); ``` 其中,第一步是引入 highlight.js 库和对应的样式文件;第二步是在页面加载时将所有代码块进行处理;第三步是监听下拉框的变化,为选中的代码块重新设置语言,并重新进行处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下一站丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值