我正在寻找一个可以定制的PHP语法高亮引擎(即我可以为新语言提供我自己的自己的标记器)并且可以处理多种语言< em>同时(即在同一输出页面上)。这个引擎必须与 CSS 类 一起工作,即它应该通过插入 <span>
来格式化输出。装饰有 class
的元素属性。可扩展架构的奖励积分。
我不搜索客户端语法高亮脚本 (JavaScript)。
到目前为止,我一直坚持使用 GeSHi .不幸的是,GeSHi 的失败有几个原因。主要原因是不同的语言文件定义了完全不同的、不一致的样式。我已经工作了好几个小时,试图将不同的语言定义重构为一个共同点,但由于大多数定义文件本身都很糟糕,我最终想切换。
理想情况下,我希望有一个类似于 CodeRay 的 API , Pygments或 JavaScript dp.SyntaxHighlighter .
澄清:
我正在寻找一种用 PHP 编写的代码高亮软件,而不是 for PHP(因为我需要在 PHP 中使用它)。
最佳答案
由于没有现成的工具可以满足我的需求,所以我自己编写了一个。你瞧:
Hyperlight
使用非常简单:只需使用
<?php hyperlight($code, 'php'); ?>
高亮代码。编写新的语言定义也相对容易——使用正则表达式和功能强大但简单的状态机。顺便说一下,我仍然需要很多定义,所以请随意贡献。
关于PHP语法高亮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/230270/