解决highlight.js不支持Vue代码块的三种有效方法
当highlight.js不支持Vue代码块时,可以通过以下办法解决: 1. 使用JavaScript模式来突出Vue代码里面的JavaScript部分 在Vue文件中,通常有`<script>`标签,可以把highlight.js的JavaScript模式应用到这部分代码。 ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Highlight.js Vue Support</title> <!-- 引入highlight.js的CSS和JavaScript文件 --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/styles/default.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.7.0/highlight.min.js"></script> </head> <body> <pre><code class="javascript"> // 这是Vue中script标签里的代码 export default { data() { return { message: 'Hello, Vue!' } } } </code></pre> <script> // 初始化highlight.js hljs.highlightAll(); </script> </body> </html> ``` 在上述代码中,给`<code>`标签添加了`javascript`类,这样highlight.js就会用JavaScript的语法高亮规则处理这部分代码。 2. 使用Vue语法高亮库 可以使用专门为Vue设计的语法高亮库,比如`vue-syntax-highlight` 。 首先安装`vue-syntax-highlight`: ```bash npm install vue-syntax-highlight --save ``` 在Vue项目里使用: ```vue <template> <div> <vue-syntax-highlight language="vue"> <template #code> <!-- 这里是你的Vue代码 --> <template> <div>{{ message }}</div> </template> <script> export default { data() { return { message: 'Hello, Vue!' } } } </script> <style scoped> div { color: blue; } </style> </template> </vue-syntax-highlight> </div> </template> <script> import VueSyntaxHighlight from 'vue-syntax-highlight'; export default { components: { VueSyntaxHighlight } } </script> ``` 这个库对Vue代码的高亮显示支持更完善。 3. 自定义highlight.js语法规则 还能为highlight.js自定义Vue语法规则。 ```javascript // 自定义Vue语法规则 hljs.registerLanguage('vue', function(hljs) { return { subLanguage: 'xml', contains: [ hljs.COMMENT('<!--', '-->'), { begin: '<script', end: '</script>', subLanguage: 'javascript', skip: true }, { begin: '<style', end: '</style>', subLanguage: 'css', skip: true } ] }; }); // 初始化highlight.js hljs.highlightAll(); ``` 在这段代码中,注册了一个名为`vue`的新语言规则,能处理HTML、JavaScript和CSS在Vue代码块里的高亮。 ######[AI问答 | 790点数解答 | 2026-02-13 16:43:09]
- "Debugging 'Cannot Read Properties of Null (reading \'userid\')' Error in Vue Components: Steps and Example"(讯飞星火 | 614点数解答 | 2024-11-28 14:31:57)255
- Java 实现计算机硬件模拟:从 PCI 设备到主板、计算机的启动与关闭(字节豆包 | 716点数解答 | 2024-12-08 23:38:38)305
- Java 代码:模拟计算机主板启动与关闭 PCI 设备全流程(字节豆包 | 637点数解答 | 2024-12-09 08:31:54)279
- "Debugging 'Cannot Read Properties of Null (Reading 'userid')' Error: A Step-by-Step Guide"(讯飞星火 | 523点数解答 | 2024-11-28 14:32:05)240
- 解决 “Cannot read properties of null (reading 'userid')” 错误的代码修改方案(讯飞星火 | 516点数解答 | 2024-11-28 14:32:43)267
- Three.js 示例代码解析:优化场景渲染与注意要点(字节豆包 | 164点数解答 | 2025-02-27 23:30:20)242
- CSS 代码详解:改变盒模型、禁用选择及移除高亮效果(阿里通义 | 357点数解答 | 2023-11-26 21:06:21)273
- Java 实战:Vehicle 类与 User 类实现机动车速度功率控制( | 968点数解答 | 2024-03-12 11:26:25)527
- HTML+jQuery 实现列表元素悬停动画效果:代码详解与注意事项(字节豆包 | 475点数解答 | 2024-12-19 14:58:05)350
- HTML+jQuery:打造动态导航栏动画效果及注意事项(字节豆包 | 495点数解答 | 2024-12-19 14:58:06)299
- HTML+jQuery:打造带动态交互效果的商品展示页面(讯飞星火 | 497点数解答 | 2024-12-19 14:58:18)305
- HTML与jQuery结合:实现商品列表交互动画的首页代码解析(讯飞星火 | 497点数解答 | 2024-12-19 14:58:20)322