前些天开始喜欢上用windows live writer来写博客, 特别在记录一些心得,或备忘一些在网上收集到的资料时很方便。
开始是用的windows live space, 感觉用起来很不方便, 想转cnblogs.
先是Google了一下WLW是否支持cnblogs, 显然是支持的, 意外的收获是有人为wlw写了cnblogs的插入高亮代码块的插件,激动之余马上下下来使用。
下载地址: LiveWriter插入高亮代码插件介绍 基于SyntaxHighighter
结果插入C++代码时老是崩溃。 我以为是系统不兼容的问题(用的2K3), 换到XP问题依然。 有点遗憾了~!
还好作者非常善良, 给出了源码下载, 赶紧下下来调试看看是什么原因。
原因如下:
下面是原始代码, 在Wilco.SyntaxHighlighting.HighlighterCollection中
public HighlighterBase this[string name] { get { HighlighterBase highlighter = null; for (int i = 0; i < this.List.Count; i++) { highlighter = (HighlighterBase)this.List[i]; if (highlighter.Name.ToLower() == name.ToLower()) return highlighter; } return null; } }
highlighter有两个属性与名字有关: Name和FullName
CPPHighlighter的Name是C++, FullName是CPP
而传进去的name是我们在第一次插入代码块时在下拉选项框中选择的语言 – cpp.
此时根据原始代码的判断,找不到这样的HighLighterBase对象, 系统因此崩溃.
我做了简单修改:
public HighlighterBase this[string name] { get { HighlighterBase highlighter = null; for (int i = 0; i < this.List.Count; i++) { highlighter = (HighlighterBase)this.List[i]; if (String.Compare(highlighter.Name, name, true) == 0 || String.Compare(highlighter.FullName, name, true) == 0) return highlighter; } return null; } }
重新编译后拷贝到\Windows Live\Writer\Plugins\中去, OK通过。
修正后的插件:
http://files.cnblogs.com/wfpb/Plugins.rar
再次感谢这个插件的作者, 很稀饭, 很好用!