Joomla/geshibot使用详解
Geshibot是一个Joomla的标准触发器(mambot),基于著名的Geshi程序开发。Geshi是Generic Syntax Highlighter(通用语法高亮显示)的缩写。是专门作程序代码嵌入显示的。
用Joomla建站时,难免有些文章中需要插入一段代码。凡是涉及修改程序代码的示范,总要把源代码及修改方法清清楚楚地介绍给读者。但是,Joomla本身对插入代码这件事情处理得不够好。在安装Joomla时,可以看到已经内置一个叫做Geshi的触发器,但是功能要弱得多,并且默认是未发布的。
Geshibot简介[ ]
Geshibot是将Geshi这款独立的代码高亮显示程序打包成为标准触发器,并且加入一些新特性。安装过程与其他触发器相同。安装后在后台进行简单设置并发布此触发器,就能在文章中使用了。Geshibot的使用语法支持两种标记,即{geshibot}和<pre>。当然,在后台参数设置中,你也可以只选定支持其中一个。
Geshibot显示程序代码有以下优点:
- 显示行号;
- 可以根据不同计算机语言进行相应高亮方式调整;
- 支持几乎所有计算机语言,包括常见的BASIC、C、C++、HTML、PHP、ASP、DELPHI等;
- 可以自定义CSS样式
- 在文章中需要插入代码的地方,将你的要展示的代码用{geshibot}代码{/geshibot}或者<pre>代码</pre> 的语法写入即可。
Geshibot触发器还支持3个标记属性,即 lang或langauge,head或header,foot或footer。第一个属性lang指定该代码所属的计算机语言,以便使用相应的高亮模式;第二个属性head允许在展示代码的区块上边框上显示一个表头;第三个属性foot则允许在展示代码的区块底部边框显示一个自定义的脚注。
比如,本文下面的代码展示就使用了这样的语法:
{geshibot lang="css" head="新添代码" foot="本代码由AutoIt友情赠送"} 代码 .... {/geshibot}
AutoIt介绍[ ]
不过,在使用过程中,发现Geshibot有一个很严重的问题就是不能解决代码语句换行的问题。有时候,一行php代码在屏幕上可能要连续两行才能显示,由于大部分Joomla网站展示文章的宽度并非屏幕全宽,因此导致用Geshibot展示的代码由于无法自动换行而强行拉宽网页,并且使文章跳出mainbody位置而独立显示。这对网站的外观美是一个很大的障碍。
针对以上问题,可以用AutoIt来解决。AutoIt使用很简单:利用CSS来控制Geshi进行换行。方法是,在你的当前网站前台模板的 /css/template_css.css 文件中插入以下代码:
/* added to make embeded code autowrap according to line length */ 02 pre { 03 white-space: pre-wrap; /* css-3 */ 04 white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ 05 white-space: -pre-wrap; /* Opera 4-6 */ 06 white-space: -o-pre-wrap; /* Opera 7 */ 07 } 08 09 * html pre { 10 word-wrap: break-word; /* Internet Explorer 5.5+ */ 11 white-space : normal ; /* Internet Explorer 5.5+ */ 12 }
不过有一点要注意:Geshibot后台设置参数中,允许定义选用CSS的来源,一种是“使用Joomla/Mambo CSS”,另一个选项是“使用自定义CSS”。如果选为前者,刚才说的修改方案才能生效。如果选为后者,那么就不能把上述代码插入到网站模板的CSS文件中了,而必须粘贴到Geshibot后台“自定义CSS”的那个输入框里。
Geshi本身还有一个功能就是可以自定义起始行号。这对于讨论程序代码文件非常方便。比如我们要告诉读者修改某文件第147行至153行代码,我们就可以在Geshi中指定代码起始行号为147,那么读者看到的样子应该非常接近原文,而不是现在这样自动从1开始。遗憾的是,这个功能在Geshibot中还没有被实现。
参考来源[ ]
http://www.joomlagate.com/article/joomla10-tutorial/geshibot-tutorial/