§

Options

Beautify options
§

粘贴 HTML

§

美化后的 HTML

html

国内前端开发者通过阿里云或腾讯云部署页面后,用浏览器「查看源代码」打开生产 HTML,常常发现内容全部压缩在两行之内。将其粘贴到这里,嵌套层级立即恢复,便于追查游离的关闭标签或不匹配的 div。遵循 WHATWG HTML Living Standard 并使用 Prettier 的团队会发现,美化器输出的缩进惯例与其工程规范完全一致,直接落入 Git diff 也不会将整个文件标记为已更改。对于从 CMS 模板继承了大量内联样式和脚本的项目,或在按照个人信息保护法要求进行无障碍审查(WCAG 2.2)时需要阅读真实文档结构而非压缩版本,此工具同样不可或缺。

HTML 美化的工作原理

美化器逐个标签读取标记,追踪每个元素的嵌套深度,然后以一致的缩进重新输出。它不会改变页面的任何渲染效果——只改变源代码的布局方式。

  1. 解析标签. 库将输入扫描为一系列词元(token):开始标签、结束标签、文本内容、注释,以及 script 和 style 块的内容。带引号的属性值以及 pre 和 textarea 元素的主体被视为单一单元,因此其内部的空白保持不变。
  2. 追踪嵌套. 在遍历词元流时,美化器维护一个实时缩进级别。每遇到非自闭合的开始标签,级别加深一层;每遇到对应的结束标签,级别退回。这个深度决定了输出中每行前方的缩进单位数量。
  3. 应用选项. 缩进选择(2 个空格、4 个空格或 Tab)确定一个缩进层级的宽度。换行列数值在属性或文本超过指定列数后将长行折断。空行上限将连续多行空行折叠至您设定的数量。
  4. 重新输出标记. 最后,格式化器按照计算好的缩进和换行规则打印标签。如果启用了内联格式化,每个 style 块的内容将通过 CSS 格式化器处理,每个 script 块的内容将通过 JS 格式化器处理,使嵌入代码与周围的标记对齐。

为什么要美化 HTML

  • 阅读压缩页面. 生产 HTML 去除了换行以节省字节。美化可以还原结构,让您找到需要的部分、发现遗漏的结束标签,并理解文档的真实嵌套方式。
  • 整理不一致的模板. 经多人编辑的标记往往出现混合缩进和标签位置混乱。一次美化能将整个文件统一为单一布局,使下一次提交只显示您真正做的修改,而不是满屏的空白重排。
  • 不拖慢页面加载. 大多数在线格式化工具在您打开页面时就加载整个库。本工具只在您点击「美化」或开启实时模式时才延迟加载 js-beautify,因此打开页面只消耗几千字节而非几百千字节,页面保持快速响应。
  • 代码不离开您的浏览器. 整个过程完全在您的设备上运行。您的标记从不上传到服务器——当页面属于客户、包含内部 URL 或受保密协议约束时,这一点尤为重要。

常见应用场景

凡是需要阅读并非为了可读性而编写的标记时,美化 HTML 就派上用场。

  • 检查线上页面:从「查看源代码」粘贴压缩源代码,找出本地无法复现的布局 bug 背后的标记。
  • 清理 CMS 输出:将页面构建器导出到一行的模板重新格式化,再提交回版本库。
  • 无障碍与 SEO 审查:展开文档以核查标题顺序、地标结构和 alt 属性是否符合真实 DOM。

一个实际示例

取一个压缩片段:<div><p>hi</p><span>x</span></div>。将缩进设为 2 个空格,粘贴到上方并点击美化。您将得到一个可读的代码块:<div> 独占一行,<p>hi</p><span>x</span> 各自缩进一层,匹配的 </div> 对齐在下方。将缩进切换为 Tab,每个层级从两个空格变为 Tab 字符。添加一个 <style>a{color:red}</style> 块,开启「同时格式化内联 CSS 和 JS」,规则将展开到各自缩进的行,而不是压在一行。

FAQ

这在我的浏览器中运行吗?

是的。js-beautify 库在您第一次点击「美化」或启用实时模式时延迟加载,然后缓存。您的标记不会离开页面——没有服务器往返,也没有上传。

美化会改变页面的渲染效果吗?

不会。美化器只添加和删除标签之间的空白和换行。浏览器在构建页面时会忽略这些空白,因此渲染结果完全相同。唯一需要注意的是 pre、textarea 或内联元素内部的空白敏感内容,格式化器会刻意保持不变。

内联 CSS 和 JS 开关有什么作用?

关闭时,style 和 script 块的内容与您粘贴时完全一致。开启后,每个 style 块内的 CSS 通过 CSS 格式化器处理,每个 script 块内的 JavaScript 通过 JS 格式化器处理,使嵌入代码的缩进与周围标记对齐。

「换行列数」有什么作用?

它设置超过多少列后,具有多个属性的标签或长文本会被折断到多行。设为 0 则无论多长都保持单行。设为 80 或 120,格式化器会将超过该列数的内容换行,让宽元素在窄编辑器中保持可读。

浏览器端 HTML 美化让您无需构建步骤或上传就能获得可读的标记。粘贴压缩或混乱的页面,选择缩进和换行列数,决定是否重新格式化内联 CSS 和 JS,然后复制或下载结果。代码不离开您的设备,无需账户,库只在您需要时才加载——打开本页面只花费几千字节,而不是几兆字节。