仅 CSS 语法高亮显示

作者 Artyom Bologov 开始在博客上发布一些代码,后因博客风格单调决定添加语法高亮但承诺不用 JS。通过 ed(1)生成博客有中间 HTML 编译步骤,考虑用添加内联标签的简单方式实现高亮,如用<b>包裹代码令牌,但觉得可以更进一步。寻找无需 JS 的 CSS 语法高亮方案时,发现用span和类的方法,但不想这样做,因为会使高亮脚本变长且需考虑各种语言和令牌组合。最终采用在属性中复制代码令牌的 hack 方法,通过创建带有令牌属性的span,并匹配这些属性来实现高亮,还单独处理了关键字参数等情况,如用特定 CSS 规则突出显示关键字等,给出了一个 Lisp 代码示例展示高亮效果,并提供了用于高亮的脚本[scripts/tohighlight.ed],让读者自行寻找带有关键字匹配的样式表,还留下了通过邮件提供反馈的信息。

阅读 13
0 条评论