MicroLighter:2KB 的 CSS 语法高亮新方案
Introducing MicroLighter
我开发了一款名为 MicroLighter 的轻量级客户端语法高亮工具,它利用 CSS Custom Highlights API 实现,体积仅约 2KB 且零依赖。与传统方案不同,它不再向 DOM 注入 span 标签,而是通过 CSS 伪类直接高亮代码。该工具集成了 Textmate 的语法规则,支持按需加载语言,并巧妙地将光暗主题合并为统一的 light-dark() 变量。为了保持核心库的纯粹,我将行号等额外功能移到了自定义 Web 组件中。如果你厌倦了庞大的 Highlight.js 或 PrismJS,这个专注于单一职责的新方案或许正是你需要的。
使用 Highlight API 意味着我无需操作 DOM,库的作用范围缩小为:使用正则模式扫描代码块,并调用 CSS.highlights.set 来高亮代码。
HN 评论区
15- piratebroadcast
我不是想粗鲁或不领情,但在我看来,网站本身居然没有展示这个工具的演示,这有点离谱。我看到了在自己网站上实现它的示例代码,但网站本身似乎没有任何高亮效果?或者我试着高亮了一些文本,也没看到任何异常?也许只是我这边的问题,也许是我漏掉了什么?我希望能先看到一个实际效果的例子,再直接把这个代码装到我的网站上。
- relativeadv
很高兴看到 dave 还在继续做他的事情
- xigoi
真的很酷!可惜 CSS Highlight API 只允许改颜色,不能改字体。