记得我刚开始学网页就是一个简单的想法,给自己弄个个人站。

于是开始学习
html,css,photoshop,dreamweaver,javascript,flash。然后又知道用静态html做出来的
网站很难维护,最好是用程序做成动态的。于是又学习asp,php,数据库,java,linux。结果这一下误入歧途,回不来了。法律专业也不搞了,转行写程序了。几年来给别人也做了好些网站程序,但自己最初的那个想法还没实现。本来是想抽空自己写个简单的个人博客用的,但这个想法一直处于构想当中。最
后还是找个现成的单用户blog程序吧。既然喜欢java,那也应该找个java的。找来找去,就找到了这个blog程序—pebble,官方网站
– 。咱买不起房子,但在网上给自己搭个家还行吧。

pebble的数据采用xml方式储存,没有用数据库,搭建方便,功能也不错。

对中文支持完全没问题。刚搭建之后,发现查询中文tag的时候会有乱码问题,它的url路径里出现中文了:http://jolestar.com/tags/开源项目/.但后来才发现那是我的mod_jk的配置问题。应该加上

JkOptions  ForwardURICompatUnparsed  ForwardDirectories

这两项。第一项是让apache不要解码,把url提交给tomcat处理。第二项是让apache把目录直接提交给tomcat处理。

这样就没问题了。

好了,开始转我的博客吧。但刚一转就发现,编辑器少个功能:插入代码。pebble默认是用FCKEditor编辑器,弄了一下,发现FCKEditor的插件体系不好,网上找到的FCKEditor的代码插入插件都不太好用,很多是直接把代码格式化成html的格式高亮。这种方式不好,因为这样格式化,用户复制代码的时候会很不方便,会复制上冗余的东西,以后编辑也不方便。好的方式就是用js动态实现高亮,而不是直接用html格式化。看了一下javaeye的代码插入功能,觉得不错。javaeye的编辑器用的是tiny_mce,于是就把博客的编辑器替换成了tiny_mce,又把javaeye的tiny_mce的代码插入插件搬了过来。嘿,还挺好用。在此感谢javaeye。

代码插件有了,然后就是代码高亮。javaeye用的是SyntaxHighlighter, http://alexgorbatchev.com ,但它好像用的是旧版本,或者是它的修改版本,不太好用。于是下载了最新的SyntaxHighlighter,实验了一下,嘿,效果不错。但又发现一个问题。新版本的SyntaxHighlighter把每种语言的高亮js都放在单独文件里,必须提前把需要用到的需要高亮的语言的js都加载进来。但页面模板里没法知道博客的内容会插入那些语言的代码,如果把所有的语言的js都加载进来,会严重影响页面加载速度。于是又写了个动态加载语言js的脚本。

var syntaxhighlighter_url = "/scripts/syntaxhighlighter/";
  var brushLibs = {js:"JScript",jscript:"JScript",javascript:"JScript",
		  bash:"Bash",shell:"Bash",css:"Css",actionscript3:"AS3",as3:"AS3",cpp:"Cpp",c:"Cpp",
		  csharp:"CSharp",groovy:"Groovy",java:"Java",javafx:"JavaFX",jfx:"JavaFX",
		  perl:"Perl",pl:"Perl",php:"Php",text:"Plain",plain:"Plain",
                 py:"Python",python:"Python",
		  ruby:"Ruby",ror:"Ruby",rails:"Ruby",scala:"Scala",sql:"Sql",xml:"Xml",html:"Xml",
                 xhtml:"Xml",xslt:"Xml"
		  };
  function loadBrushLibs(){
	  var pres = document.getElementsByTagName("pre");
	  for(var i=0;i