【发布时间】:2010-09-09 08:51:10
【问题描述】:
我想在我的网站中突出显示 C/C++/Java/C# 等源代码。
我该怎么做?
高亮显示源代码是一项 CPU 密集型工作吗?
【问题讨论】:
-
我用于此的代码已发布在文章Colorizing Source Code。
我想在我的网站中突出显示 C/C++/Java/C# 等源代码。
我该怎么做?
高亮显示源代码是一项 CPU 密集型工作吗?
【问题讨论】:
您可以在服务器端或客户端执行此操作。它不是非常密集的处理器,但如果你在客户端(使用 Javascript)执行它,将会有明显的延迟。大多数客户端解决方案都围绕着 Google Code 的语法高亮引擎。这似乎是最受欢迎的:SyntaxHighlighter
服务器端解决方案往往更加灵活,尤其是在定义新语言和配置它们的突出显示方式(例如使用的颜色)方面。我使用 GeSHi,这是一个 PHP 解决方案,带有一个相当不错的 Wordpress 插件。还有一些为 Java 构建的库,甚至还有一些基于 VIM(通常需要从 CPAN 安装 Perl 模块)。
简而言之:您有很多选择,您的标准是什么?在不了解您的要求的情况下很难做出可靠的建议。
【讨论】:
我在pastebin.com 上使用GeSHi(“通用语法荧光笔”)
pastebin 的流量很大,所以我会缓存转换的结果,这肯定会减少负载。
【讨论】:
就个人而言,我更喜欢离线工具:我看不到在每个服务页面上一遍又一遍地解析代码(尤其是大代码)的意义,或者更糟糕的是,在每个浏览器上(对于 JS 库),因为如上所述,这些库通常滞后(您经常会在格式化之前看到原始源代码)。
有许多工具可以完成这项工作,上面提到了一些。我只是使用我最喜欢的编辑器 (SciTE) 的导出功能,因为它只尊重我精心设置的颜色选择... :-) 它也可以输出 XML、PDF、RTF 和 LaTeX。
【讨论】:
Pygment 是一个很好的 Python 库,用于生成 HTML、RTF、ANSI(终端样式)或 LaTeX 代码。它支持large range of languages(C、C++、Lua、Erlang,...),您甚至可以编写自己的输出格式化程序。
【讨论】:
我使用google-code-prettify。它是最简单的设置,并且适用于所有 C 风格的语言。
【讨论】:
我在my blog 上使用SyntaxHighligher。
【讨论】:
只需通过类似的工具运行它:http://www.gnu.org/software/src-highlite/
【讨论】: