在 Blog 中贴源代码

源地址:http://blog.daviesliu.net/article/entry20050519-224302

往blog上贴程序代码是常有的事,为的是方便德进行交流和分享。

程序代码通常是有格式的,比如缩进等,部分是为了给机器看(编译器),部分是为了方便人看。如果简单的把源代码粘贴到浏览器的文本框中,再去查看时,格式都丢掉了。因为HTML语言中默认是将多个空白字符压缩成一个,此时源程序中的tab缩进都没有了。要想保留代码中的字符格式,有一种简单的方法,即在代码外部用标签 <pre> 包围起来,这样就不会对它内部的空白字符进行处理,会原样显示出来,支持代码中的格式(比如对齐)都能够正常显示。

现在流行的IDE都有语法加亮功能,能够自动对程序代码进行语法分析,将不同特性的字句用不同的颜色显示,使得源代码阅读起来方便了许多,书写时也不容易出错。用浏览器来查看程序代码时,最好也能够语法加亮,但是浏览器是不懂各程序语言的语法的,它只能看懂HTML等的语法,这就需要用第三方工具把程序代码按照其语法规测转换成相应的HTML代码,实现语法加亮。

目前可行的方案大概有这么几种:

1、letax2html,这是功能最强大的一个,不光是程序代码,网上很多文档也是用它生成的。letax有语法分析并加亮显示的宏包,达到效果不成问题。但有种杀鸡用牛刀的感觉:),除非是要处理大量的代码加文档。

2、用支持语法加亮的编辑器,将显示效果导出为HTML格式,比如vim,比较方便,但是它生成的代码很Ugly。vim不仅可以给各种高级语言进行语法加亮,还支持Linux下的各种配置文档和脚本程序,在贴这些特殊文档时可以用它。

3、用专门的转换工具,比如webcpp、code2html、highlight等,它们都支持都种语言。

webcpp是用C++写的程序,生成的代码挺干净,用了CSS。但有一点不好,生成的代码是HTML 4.0规范,而不是xhtml。本想对它做些修改来输出xhtml,但由于它的处理机制较复杂,程序稳定性也不是很好,未能得逞。

code2html是用Perl写的,处理文本是Perl的强项。但它生成的HTML代码也很难看,放弃。

第三个似乎还不够稳定,被标记为~x86,在我的gentoo box上居然不能装。

用webcpp贴了几份代码在blog中,看起来还可以。但是考虑到blog要朝xhtml标准靠拢,希望能有更好的工具。

还有其它的方案,欢迎补充,期待:-)

我准备用Python写一个,进展还挺顺利:)

 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值