首页 arrow 文章新闻 arrow Joomla教程 arrow geshibot 使用详解
Narrow screen resolution Wide screen resolution default color green color orange color

Translate this site

         

文章分类阅读

即将发布

RSS 供稿

1月 04 2007

geshibot 使用详解

(0 次投票)
2007-01-04
 

作者: 白建鹏,

查看 : 3158    

已被收藏 : 33

发表于: : 文章, Joomla教程


Geshibot是一个Joomla的标准触发器mambot),基于著名的Geshi程序开发。说实话,我一看到Geshi这个名字,老是联想到汉语拼音,怀疑它是不是“葛氏”的意思啊。后来才知道,Geshi 是Generic Syntax Highlighter(通用语法高亮显示)的缩写。呵呵,原来是专门作程序代码嵌入显示的。

用Joomla建站时,难免有些文章中需要插入一段代码,比如像本站的“教程”栏目。凡是涉及修改程序代码的示范,总要把源代码及修改方法清清楚楚地介绍给读者。但是,Joomla本身对插入代码这件事情处理得不够好。在安装Joomla时,可以看到已经内置一个叫做Geshi的触发器,但是功能要弱得多,并且默认是未发布的。

于是“有高人出,发Gehsibot以利万民”,呵呵。

Geshibot是将Geshi这款独立的代码高亮显示程序打包成为标准触发器,并且加入一些新特性。本站已经将它汉化并发布到下载栏目。安装过程与其他触发器相同。安装后在后台进行简单设置并发布此触发器,就能在文章中使用了。

Geshibot的使用语法支持两种标记,即

  1. 和<pre>。当然,在后台参数设置中,你也可以只选定支持其中一个。</p>
  2. <p dir="ltr">Geshibot显示程序代码的优点有: </p>
  3. <ul style="margin-right: 0px;" dir="ltr">
  4. <ul>
  5. <li>显示行号; </li>
  6. <li>可以根据不同计算机语言进行相应高亮方式调整; </li>
  7. <li>支持几乎所有计算机语言,包括常见的BASIC、C、C++、HTML、PHP、ASP、DELPHI等; </li>
  8. <li>可以自定义CSS样式</li></ul></ul>
  9. <p>在文章中需要插入代码的地方,将你的要展示的代码用{geshibot}代码
 
或者<pre>代码</pre> 的语法写入即可。

Geshibot触发器还支持3个标记属性,即 lang或langauge,head或header,foot或footer。第一个属性lang指定该代码所属的计算机语言,以便使用相应的高亮模式;第二个属性head允许在展示代码的区块上边框上显示一个表头;第三个属性foot则允许在展示代码的区块底部边框显示一个自定义的脚注。

比如,本文下面的代码展示就使用了这样的语法:

新添代码
  1.  
  2.  
  3. 代码 ....
  4.  
本代码由AutoIt友情赠送

不过,在使用过程中,我发现Geshibot有一个很严重的问题就是不能解决代码语句换行的问题。有时候,一行php代码在屏幕上可能要连续两行才能显示,由于大部分Joomla网站展示文章的宽度并非屏幕全宽,因此导致用Geshibot展示的代码由于无法自动换行而强行拉宽网页,并且使文章跳出mainbody位置而独立显示。这对网站的外观美是一个很大的障碍。

这个问题困扰了我很久,但是一直没有找到合适的解决方法。我曾经给软件作者写信,但是他也没有什么好招。然而昨天,AutoIt却将这个问题轻易地解决了。

AutoIt大侠使用的手段很简单:利用CSS来控制Geshi进行换行。方法是,在你的当前网站前台模板的 /css/template_css.css 文件中插入以下代码:

新添代码
  1. /* added to make embeded code autowrap according to line length */
  2.  
  3. pre {
  4.  
  5. white-space: pre-wrap; /* css-3 */
  6.  
  7. white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
  8.  
  9. white-space: -pre-wrap; /* Opera 4-6 */
  10.  
  11. white-space: -o-pre-wrap; /* Opera 7 */
  12.  
  13. }
  14.  
  15.  
  16.  
  17. * html pre {
  18.  
  19. word-wrap: break-word; /* Internet Explorer 5.5+ */
  20.  
  21. white-space : normal ; /* Internet Explorer 5.5+ */
  22.  
  23. }
本代码由AutoIt友情赠送

AutoIt 的原文见:http://www.autoit.cn/index.php/content/view/96/2.html

不过有一点要注意:Geshibot后台设置参数中,允许定义选用CSS的来源,一种是“使用Joomla/Mambo CSS”,另一个选项是“使用自定义CSS”。如果选为前者,刚才说的修改方案才能生效。如果选为后者,那么就不能把上述代码插入到网站模板的CSS文件中了,而必须粘贴到Geshibot后台“自定义CSS”的那个输入框里。

经过试用,AutoIt发明的这个方法果然有效。真是“踏破铁鞋无觅处,得来全不费功夫”,呵呵。在此感谢AutoIt大侠又给Joomla用户带来一件珍贵的礼物。

当然,Geshi本身还有一个功能就是可以自定义起始行号。这对于讨论程序代码文件非常方便。比如我们要告诉读者修改某文件第147行至153行代码,我们就可以在Geshi中指定代码起始行号为147,那么读者看到的样子应该非常接近原文,而不是现在这样自动从1开始。遗憾的是,这个功能在Geshibot中还没有被实现。我们期待作者能够继续改进这个触发器。

向朋友推荐




喜欢这篇文章?那就收藏它!
Digg!Reddit!Del.icio.us!Facebook!Slashdot!Technorati!Spurl!Simpy!Blinklist!Furl!Fark!Blogmarks!Yahoo!Smarking!Netvouz!Shadows!RawSugar!Ma.gnolia!PlugIM!Squidoo!BlogMemes!FeedMeLinks!BlinkBits!Tailrank!linkaGoGo!

   
转载本文
加为收藏
推荐给朋友
相关文章
收藏到 del.icio.us

关键词 : geshibot, Geshi, 插入代码, Program code, 触发器, 插件,


会员评论  评论的 RSS
 

会员平均评分

 


发表评论
姓名
E-mail
标题  
 
评论
 
剩余可输入字符数量: 600
   若有后续评论请通知我
  计算下面数学题并填写正确答案:
YCH         IY9      
  H    W    S Q   XC3
  M   XX5   MB5      
  I    G    U M   U1Q
  T         4IA      
   
   

尚无评论发表



mXcomment 1.0.8 © 2007-2008 - visualclinic.fr
License Creative Commons - Some rights reserved
< 上一篇   下一篇 >

Donation below, thanks ! 请资助我们做的更好,谢谢!

Chinese translations for Joomla! CMS Core and extensions (components, modules, plugins, as well as free Joomla! templates)

I want to donate:
$

用支付宝向本站捐款

Donate to joomlagate.com to translate more Joomla! extensions and free Joomla! templates

会员登录

欢迎 访客.




忘记密码
没有账户? 马上注册
您的IP: 38.103.63.18

在线会员

现在有 22 位访客在线