怎么利用HTML的Prism.js的data-language属性指定代码块的编程语言

轻萱大大_6925

轻萱大大_6925

2026-05-13

1033人浏览

原创

prism.js 默认不识别 data-language 属性,需加载 prism-data-attributes 插件才能生效;插件会自动将 data-language="json" 转为 class="json" 并触发高亮,且优先级高于 class 中的语言声明。

怎么利用html的prism.js的data-language属性指定代码块的编程语言

Prism.js 的 data-language 属性根本不起作用?

它确实不起作用——因为 Prism.js 默认压根不读这个属性。Prism 识别语言靠的是 class="xxx"(比如 class="js"),不是 data-language。如果你只写了 data-language="python" 而没配 class,代码块就按纯文本渲染,高亮完全失效。

怎么让 data-language 真正生效

必须手动启用 Prism 的「data-* 属性支持」插件:prism-data-attributes。这个插件会监听 data-language、data-toolbar 等属性,并自动补全对应 class 或行为。

  • 确保加载了插件文件:prism-data-attributes.min.js(需在 prism.js 之后加载)
  • HTML 中可直接写:
    <pre class="brush:php;toolbar:false;"><code data-language="json">{"ok": true}</code>
  • 插件会自动给 code 元素加上 class="json",触发高亮
  • 注意:插件也支持 data-tag(用于自定义标签名)、data-diff(diff 高亮)等,但核心是先配好 data-language

data-language 和 class="xxx" 能共存吗

能,但有优先级:插件默认以 data-language 为准,会覆盖 class 中的语言声明。不过这容易引发混淆,建议统一用一种方式。

Wechat HTML Publisher
Wechat HTML Publisher

直接上传HTML富文本到微信公众号草稿箱。支持完整的HTML格式,无需Markdown转换。

下载
  • 如果用了插件,就别再写 class="js",只留 data-language="js"
  • 如果不用插件,必须写 class="py"(注意 Prism 使用的短名:py 不是 python,ts 不是 typescript)
  • 常见短名对照:js、py、sh、json、html、css、bash —— 全部小写,无空格
  • 错误示例:data-language="JavaScript" → 不识别;data-language="Python" → 不识别

为什么推荐用 data-language 而不是 class

主要为解耦和动态场景服务,不是为了“更高级”。比如 CMS 输出 HTML 时,模板可能无法自由拼接 class 字符串,但能安全注入 data 属性;或者 JS 动态插入代码块时,用 el.dataset.language = 'rust' 比操作 classList 更干净。

  • 静态页面、手写 HTML:用 class="xxx" 最简单,不依赖插件
  • 需要运行时切换语言、或集成到富文本编辑器中:插件 + data-language 是合理选择
  • 插件本身很小(约 1.5KB gzip),但多一个 HTTP 请求或 bundle 体积,得权衡是否值得

实际最常被忽略的一点:插件必须在 Prism 主库初始化之后加载,否则 Prism.plugins 还不存在,插件会静默失败,控制台也不报错。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关文章

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

html js 编程语言

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
编程语言有哪些
编程语言有哪些

编程语言有C语言、C++语言、Java语言、Python语言、JavaScript语言、Ruby语言、Go语言等。本专题为大家提供编程语言相关的各种文章、以及下载和课程。

2023.08.11

1032

5

html转换txt文本格式方法
html转换txt文本格式方法

html通过使用在线工具、离线工具和编程语言来转txt。更多关于html转换txt文本格式方法详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.01

3355

8

c语言是什么编程语言
c语言是什么编程语言

c语言作为一种通用、结构化的编程语言,自诞生以来广泛应用于计算机领域。其基本特性包括结构化编程、过程式编程、底层访问能力、高效性能和跨平台性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.03.14

740

5

如何挑选适合初学者的编程语言
如何挑选适合初学者的编程语言

编程语言选择至关重要,它直接影响学习效率和职业发展。初学者选择易于入门且应用广泛的语言,能为未来的深造和职业规划奠定基础。选择不当可能导致学习曲线陡峭、应用范围狭窄、就业机会有限,甚至难以拓展其他领域。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2025.01.24

422

4

编程语言排行榜2025
编程语言排行榜2025

本专题文章深入分析2025年最新的编程语言流行度排名,基于TIOBE指数等权威数据,揭示Python、C++、Java等主流语言的最新动态与市场份额变化。通过对比各语言的优缺点、应用场景及就业前景,为开发者提供选择学习方向的实用参考,同时展望编程语言在人工智能、大数据和云计算等前沿技术中的未来发展。想了解更多详细内容,请阅读专题下面的文章。

2025.07.29

4347

27

java基础知识学习
java基础知识学习

本专题文章旨在为Java语言初学者提供系统化的学习路径,涵盖Java编程的核心基础知识、实用代码示例及全面的知识点总结。本专题适合零基础学习者及希望巩固Java基础的开发者,通过理论与实践结合,快速入门并迈向进阶开发。

2025.08.01

4164

26

2026 年编程语言排行榜与趋势解读
2026 年编程语言排行榜与趋势解读

本专题整合了编程语言排行榜合集,阅读专题下面的文章了解更多详细内容。

2026.05.29

19075

17

零基础编程语言选择与学习路线
零基础编程语言选择与学习路线

面向编程零基础用户与转行人群,系统分析不同编程语言的学习曲线、适用场景与就业前景,涵盖 Python(数据分析/AI/自动化/爬虫)、JavaScript/TypeScript(前端/全栈/小程序)、Java(企业后端/Android/大数据)、Go(云原生/微服务/DevOps)、C/C++(系统底层/嵌入式/游戏引擎)的定位对比与人群匹配建议、各语言从入门到实战的分阶段学习路线图、优质学习资源推荐(官方文档/在线课程/开源项目)、自

2026.05.29

684

20

html版权符号
html版权符号

html版权符号是“©”,可以在html源文件中直接输入或者从word中复制粘贴过来,php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

5715

7

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
GDB 17.2 官方文档集合
GDB 17.2 官方文档集合

共0课时 | 0人学习

Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

38+ PhpStorm 提示和技巧
38+ PhpStorm 提示和技巧

共1课时 | 220人学习