html怎么做代码高亮展示_html code highlight代码语法高亮【全网最全】
highlight.js高亮失败主因是结构、class或时机错误:必须用嵌套结构,class需为language-xxx或lang-xxx格式,且脚本须在dom就绪后执行highlightall()并引入主题css。

直接用 highlight.js 是最省事的方案,但 90% 的“没高亮”问题都出在结构写错、class 漏写或加载时机不对——不是库不行,是没踩对点。
为什么 <code> 单独写不触发高亮
highlight.js 默认只扫描 <pre class="brush:php;toolbar:false;"><code></code> 嵌套结构,这是硬性约定,不是 bug。因为 <code><pre class="brush:php;toolbar:false;"></pre> 能保留换行、空格和缩进,而语法解析依赖这些格式信息。
-
<p><code class="javascript">const x = 1; —— 完全被忽略
-
<div><code class="html"><div></div>
—— 同样不处理
正确写法只有一种:<pre class="brush:php;toolbar:false;"><code class="js">const x = 1;</code></pre>
class 值必须是 language-xxx 或 lang-xxx
哪怕你引入了 python.min.js,如果 <code> 上没写 class="python",highlight.js 就会当成纯文本处理,不会着色。
Article To Html
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
下载
- 支持两种前缀:
language-html 和 lang-html 都行
- 常见写法:
language-js、language-css、language-bash
- 别写成
class="js" 或 class="html-code",这类会被跳过
- 不确定语言时可写
class="plaintext",强制不着色
引入后没颜色?按顺序查这三件事
高亮“看不见”基本不是代码问题,而是加载链断了。比重装库快得多的排查路径:
- 脚本是否在 DOM 就绪后执行?
<script>hljs.highlightAll()</script> 放在 里且没加 defer,就可能找不到还没生成的 <pre class="brush:php;toolbar:false;"><code></code></pre>
- CSS 文件引了吗?只引
highlight.min.js 不引对应主题 CSS(比如 atom-one-dark.min.css),代码能显示但全是黑白
- 是否误用了废弃 API?v11+ 已移除
initHighlightingOnLoad(),统一用 highlightAll();老教程抄过来容易卡在这儿
HTML 示例代码里的 和 <code>> 怎么安全显示
直接把 HTML 片段塞进 <code> 标签,浏览器会当真标签解析,导致结构崩坏、高亮失败。
- 最稳做法:用
<script type="text/plain"></script> 包住原始代码,再用 JS 读取 .textContent 插入 <pre class="brush:php;toolbar:false;"><code></code> 中</pre>
- 次选方案:手动转义:
→ <code><,> → >,& → &(注意 & 要写两次)
- 别用
innerHTML = "..." 直接赋值含 的字符串,容易漏转义
动态插入代码(比如 Vue/React 渲染后、fetch 加载完)时,highlightAll() 不会自动重跑;得手动调 hljs.highlightElement(el),且必须确保该元素已有正确的 class。这点最容易被忽略——尤其在 SPA 场景下。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!