PHP 语法突出显示 [已关闭]

2022-08-30 12:25:51

我正在寻找一个可以自定义的PHP语法突出显示引擎(即我可以为新语言提供自己的分词器),并且可以同时处理多种语言(即在同一输出页面上)。这个引擎必须与CSS类很好地协同工作,即它应该通过插入用属性装饰的元素来格式化输出。可扩展架构的奖励积分。<span>class

我不搜索客户端语法突出显示脚本(JavaScript)。

到目前为止,我一直坚持使用GeSHi。不幸的是,GeSHi由于几个原因而失败得很惨。主要原因是不同的语言文件定义了完全不同的、不一致的样式。我花了几个小时试图将不同的语言定义重构为一个共同点,但由于大多数定义文件本身都非常糟糕,我终于想切换。

理想情况下,我希望有一个类似于CodeRayPygments或JavaScript dp的API。语法突出显示器

澄清:

我正在寻找一个突出显示用PHP编写的软件代码,而不是PHP(因为我需要从PHP内部使用它)。


答案 1

由于没有现有的工具可以满足我的需求,所以我写了自己的工具。瞧瞧:

超轻

使用非常简单:只需使用

 <?php hyperlight($code, 'php'); ?>

以突出显示代码。编写新的语言定义也相对容易 - 使用正则表达式和强大但简单的状态机。顺便说一句,我仍然需要很多定义,所以请随时做出贡献。


答案 2

[我把这个答案标记为社区维基,因为你特别在寻找Javascript]

http://softwaremaniacs.org/soft/highlight/ 是一个 PHP(以及以下支持的其他语言列表)语法突出显示库:

Python, Ruby, Perl, PHP, XML, HTML, CSS, Django, Javascript, VBScript, Delphi, Java, C++, C#, Lisp, RenderMan (RSL and RIB), Maya Embedded Language, SQL, SmallTalk, Axapta, 1C, Ini, Diff, DOS .bat, Bash

它使用<span class=“keyword”>样式标记。

它也被集成到dojo工具包中(作为dojox项目:dojox.lang.highlight)。)

虽然不是运行Web服务器的最流行方式,但严格来说,Javascript不仅在客户端实现,而且还有服务器端Javascript引擎/平台组合


推荐