PHP开源博客LifeType(plog)中使用和修改Plogeshi(PlogGeShi)
今天刚把这个博客的代码高亮显示插件修改好,共享一下
Plogeshi使用的是GeSHi – Generic Syntax Highlighter(Generic Syntax Highlighter – 通用语法高亮工具) 是 ASP、PHP、JSP、Java、Javscript、XML、CSS、C、Delphi、Ruby、VB等多种计算机源代码语法加亮工具
plogeshi使用,将插件压缩包,解压到plugins目录
1.后台–全部站台管控–外挂程式–外挂中心–扫描
2.后台–全部站台管控–外挂程式–外挂程式设置–启动外挂
3.后台–内容管理–文章管理–PloGeShi–启动
4*.后台–个人博客设置–基本设置–博客设定–关闭所见即所得(WYSIWYG)文章编辑(使用这个编辑文章暂时会出现错误07年7月20日,希望以后整合,我不会…..)
修改:
1.开启geshi的行号功能和修改容器
1 2 3 4 5 6 |
//在plugins&my;plogeshi&my;class&my;plogeshi&my;plogeshi.class.php文件中的214行左右找到 $geshi = new GeSHi($text, strtolower($option), PLOGESHI_GESHI_PATH . "geshi"); //添加 $geshi->set_header_type(GESHI_HEADER_DIV); //修改容器(也可不修改,为了别人复制之用) $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); //添加行号显示 |
—————————————————————————————————–
以下为关于set_header_type(),enable_line_numbers()两函数的相关解释
一.容器
参数:
GESHI_HEADER_DIV
GESHI_HEADER_PRE
GESHI_HEADER_NONE
pre与div方式选择
GeSHi的代码加亮输出结果可以采用不同的代码容器(Code Container),以便达到理想的页面输出效果,并与网页的整体效果良好匹配。
这里所指的代码容器,就是包容代码“装饰活动”的东西。默认状态下,代码加亮结果将被 pre标签 包围,但你也可以使用 div标签 来代替。
代码容器的选定要在开始代码处理之前进行。
pre 容器:
pre标签 是默认设置。熟悉HTML的人知道, pre元素将被渲染为空白区域。如果使用pre容器,则所生成的空白区域将与源代码中的空白完全一致, 并且 GeSHi 将不必为了进行缩进而不得不在代码中增加大量的 br 及 。这将节省你的代码量(以及你所看重的访客等待时间、你的带宽)
二.行号
GESHI_NORMAL_LINE_NUMBERS – 正常的行号,正常的行号意味着你为所有行号指定统一的样式。
GESHI_FANCY_LINE_NUMBERS – 美化的行号,美化的行号中你可以为每N行(默认5行)指定一个不同样式(第二个参数值)。
GESHI_NO_LINE_NUMBERS – 禁止行号 (default)
—————————————————————————————————–
所以使用pre标签后,当显示行号时,虽然显示上是多行显示,但是实际上是一行显示
当别人复制你的网页上的代码到text文件中时,发现都是写在一行了…..这是很郁闷的事—–所以需要修改容器
2.在geshi中显示特殊符号
1 2 3 4 5 6 7 8 9 |
//在代码中有时候需要这个符号(),但是在网上找HTML符号中,居然没有这个符号........ //修改-----plugins&my;plogeshi&my;class&my;plogeshi&my;plogeshi.class.php文件中的239行左右找到 $string = str_replace ( '&', '&', $string ); //....还有几个 //发现原来lifetype插件有些符号事靠这个来转换的,所以自己往这个添加一个即可 //添加 $string = str_replace ( '&me;', '&my;&my;', $string ); |
注意:
虽然麻烦,但在写出代码的时候需要修改大于号,小于号,反斜线(暂时发现就这么多)为相应的编号,否则会出现显示问题
3.代码过多胀破窗口问题,指定DIV容器样式
1 2 3 4 5 6 |
//在plugins&my;plogeshi&my;styles&my;plogeshi.css中 //添加 div.code{ //使用div容器必须指定此样式,否则,样式不会起作用 table-layout:fixed;word-wrap:break-word;word-break:break-all; //自动换行 background-color: #ffffff; } |
4.高亮显示CSS修改
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
//修改plugins&my;plogeshi&my;styles&my;plogeshi.css,以下为本网站修改的CSS样式(适合黑色系) .code .br0 { color: #66cc66; } .code .co1 { color: rgb(0,128,0); } .code .co2 { color: rgb(0,128,0); } .code .coMULTI { color: rgb(0,128,0); } .code .es0 { color: #000099; font-weight: bold; } .code .kw1 { color: #b1b100; } .code .kw2 { color: #b1b100; } .code .kw3 { color: rgb(0,255,255); } .code .kw4 { color: #b1b100; } .code .kw5 { color: #b1b100; } .code .me0 { color: #006600; } .code .nu0 { color: #aa0000; } .code .re0 { color: #dddddd; } .code .re1 { color: #dddddd; } .code .re2 { color: #dddddd; } .code .re4 { color: #dddddd; } .code .sc0 { color: #aa0000; } .code .sc1 { color: #aa0000; } .code .sc2 { color: #aa0000; } .code .st0 { color: #aa0000; } |
4.添加背景图片
1 2 3 |
//在相应CSS块中添加,也可达到一定得隐藏效果,虽然很小:) background: url("yourlogo.gif") no-repeat fixed center center; /*需注意:经测试fixed属性在IE7下的显示效果跟IE6不一样,建议删除*/ |
本站使用的plogeshi外挂下载:
plogeshi.rar(geshi已升级至1.0.7.20)
演示页面:演示
Trackback from your site.
(7)条评论
wupei
| #
像上面写的一样,在相应的CSS添加
table-layout:fixed;word-wrap:break-word;word-break:break-all;
加上这个FireFox和IE都不会出现撑破现象(中文和英文)
很多的标点符号在IE下不会撑破,FF下会撑破…..一般不会有那么多人打那么多标点吧…. 🙂
回复
Claymore
| #
朋友,看到我的留言的时候回复一句好吗,我等着你的回复,谢谢!
另外,我的QQ:389961817
我很喜欢PHP & VC++,交个朋友吧!
回复
Claymore
| #
朋友,上面的符号怎么撑不宽你的表格,我在好多网站的评论框中输入上面的符号都被撑宽了,请问你是怎么解决的,谢谢!!!!!!!!!!!!!!
回复
wupei
| #
不客气
回复
Claymore
| #
明白了,谢谢!
回复
wupei
| #
pluginbase.class.php文件?我搜索整个博客程序,发现只有 “/class/plugin” 目录下有这个文件,而这个目录应该是lifetype的核心文件夹,我是不太懂这个目录中的东西
你是不是解压错地方了?应该解压到根目录中的 “/plugin” 文件夹中
给你提供一个官方的plogeshi的下载地址,可以试试
官方plogeshi地址: http://wiki.lifetype.net/index.php/Plugin_plogeshi
下载地址: http://prdownloads.sourceforge.net/lifetype/1.2_plogeshi.zip?download
回复
claymore
| #
朋友,我从你这下的plogeshi.rar缺少这个pluginbase.class.php文件,请查看,谢谢!
回复