代码高亮输出到文本:highlight

因为要申请计算机软件著作权,需要生成源代码文档。通常,生成源代码文档有两个要求:

  1. 代码可以根据语言规则进行高亮
  2. 可以有前置的行号
  3. 可以批量处理

其中,1和2应该是必须有的,3最好也应该有,不过要是程序自身没有应该也可以通过脚本来进行支持处理。

试验了几个方案:

1. code::blocks方案

codeblocks中有一个code export插件,可以支持代码高亮输出到多种格式,包括html、rtf、odt、pdf格式,输出时自带行号,但缺少选项支持。codeblocks自身作为一个ide,也支持code reformat,因此也可以在输出前先进行format。对中文支持也不错。但测试发现,输出php代码为odt格式时,文档中高亮部分有问题,通常只有前面一部分是正常的,之后高亮就不工作了。备注:使用此插件需要安装contrib包:

sudo apt-get install codeblocks-contrib

2. gnu source highlight

无意中发现ubuntu下还有一个软件:source-highlight-ide,于是安装尝试了一下,发现其只能转换为docbook、latex、xhtml、html,没有我想要的格式。

3. libreoffice的macroformmatter插件

openoffice/libreoffice之前有一个插件可以支持各种代码的高亮,即macroformmatter插件,但安装后发现其不支持我这次要的php代码输出。

4. highlight

搜索的时候,发现这儿的一个需求和我是一致的:

How do I embed source code or HTML in Open Office Org Presentations without using screenshots?

发现其中提到的一个highlight软件可以解决此问题,到其官方网站上查询发现,其提供了两个下载方式,分别是windows下的安装包以及源代码包,开始还以为此软件不支持linux呢,结果在其文档中发现此软件在各发行版中都已经内置,直接安装就可以了。

sudo apt-get install highlight

仓库中的软件版本为3.8,官方网站上最新版本为3.11 beta。

其输出格式支持html、xhtml、rtf、TeX, LaTeX, SVG, BBCode等格式。在ubuntu下默认安装后需要使用命令行操作,试验了一下rtf格式,发现效果很好,上面的123要求都能满足,但是打开转换后的文件发现中文乱码!但html格式是不乱码的。

尝试下载了最新版本,在编译过程也遇到了问题,就先把windows版本先下载下来尝试一下。在试验过程中,发现其输出格式中支持odt格式,试验了一下,用此格式中文是不乱码的,要求都满足了,若最终目的是打印输出的话,选择其中的print样式效果很好的。

在其changelog里发现,odt格式支持是在3.10beta版本中开始支持的。

highlight 3.10 beta

21.07.2012

-fixed HTML ordered lists to improve copy&paste in browsers (suggested by Nash)
-changed default output from HTML 4.01 to HTML5
-changed default HTML font family to include the generic monospace font
-<strong>added ODT Flat XML output format</strong> (--out-format=odt)
-added fontenc package in LaTeX output (patch by Yimin Li)
-fixed RTF hyperlink output in several plug-ins
-removed ctags option (functionality was replaced by plug-in)
-CLI: added --wrap-no-numbers option (patch by Michael Enßlin)
-GUI: replaced Qt file dialogs by native dialogs

已发布

分类

,

来自

评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注