FHiLight插件升级
对FHiLight做了简单的升级,把解析代码用的SyntaxHighlighter升到了最新的2.1,添加了几种新的语言的支持,加了一种代码格式Eclipse。现在一个比较大的问题是单行代码太长的话 ,会破坏模板样式,暂时只能自己在发布代码是手动把太长的代码截断一下,这应该是SyntaxHighlighter的问题吧?
新版本下载FHilight.1.0.1.7z
对FHiLight做了简单的升级,把解析代码用的SyntaxHighlighter升到了最新的2.1,添加了几种新的语言的支持,加了一种代码格式Eclipse。现在一个比较大的问题是单行代码太长的话 ,会破坏模板样式,暂时只能自己在发布代码是手动把太长的代码截断一下,这应该是SyntaxHighlighter的问题吧?
新版本下载FHilight.1.0.1.7z
原来在pjblog自己做了一个高亮插件,发来一些代码,转到typecho后这些代码的处理很麻烦,换新的代码插件还是 直接修改文章内容都很麻烦,相比较而言,修改原文内容更麻烦。所以最好做一个与我原来在pj下使用的插件相兼容的插件就行了,方便又简单。
但是typecho的插件原理搞不懂,只有下了一个Simple Code 和XHighlighter插件来研究、修改。原来pj下用的是SyntaxHighlighter,te下可以采用geshi和SyntaxHighlighter两种方式进行代码着色。决定用SyntaxHighlighter,因为是javascript代码的,而且代码显示好看方便。功能已实现,现在在想怎么把它做得更好更方便,现在还手工需要在header.php文件中添加内容,每换模板都需要添加一次,现在正在研究怎么动态插入header内容。
从http://alexgorbatchev.com/下载SyntaxHihglighter2.0,解压后有三个文件夹,src那个不用管,把其他两个目录下的所有文件拷到新建Hlight的目录下,再把Hilght放到pjblog的Plugins目录下。
然后在header.asp文件中95行左右加入以下内容:
(shThemeDefault.css可以替换为其他样式表,如:shThemeDjango.css)
类似于Plugins/Hilight/shBrushCpp.js的文件,根据需要添加;
如需使用静态页面,需把上面的内容加入Template/static.htm中。
再在common/ubbcode.asp文件中254行加入:
re.Pattern = "\[code=(.[a-zA-Z]*)([0-9]*)\](.*?)\[\/code\]"
Set strMatchs = re.Execute(strContent)
Dim lang,code,line
For Each strMatch in strMatchs
lang=strMatch.SubMatches(0)
line=strMatch.SubMatches(1)
code=strMatch.SubMatches(2)
strContent = Replace(strContent,strMatch.Value,"
"& lang&" 代码"&code&"
")
NEXT
最后再稍微修改下Plugins/Hilight/shCore.css文件,就可以好看点。
margin: 0 0 0 0 !important;
把外边距全改为0,可以更好的融入pjblog的代码框里面的
使用格式:
[code=code231]代码[/code]
code为代码类型:php vb css 等
231为代码起始行号,如果行号从1开始可以不写
fckeditor中直接
代码
http://defe.me/article.asp?id=118
syntaxhighlighter_2.0用起来比1.0更舒服,简单改了下,暂时能够使用,效果如下:
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('Select * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "< br>";
die();
}
最大的好处就是纯javascript实现,不需要php ajax支持等,而且有多种样式可以选择,明天下班了在接着改!
现在最大的问题是在chrome浏览器下,直接用鼠标选择高亮的代码,会造成对应的标签页假死,只能关闭标签页,重新打开才行,这个是SyntaxHighlighter的问题,官网上也是如此