MSN空间已经遭废弃,用户被赶往wordpress,微软刚刚发布的live套件中的writer也已经将wordpress设为默认blog发布地址。虽然这里的wordpress是指wordpress.com的wp博客,并不是我们使用wordpress程序搭建的博客,但是wlw与wordpress程序对于XML-RPC发布协议的良好支持使得wlw配置相当简单,目前来说甚至只需输入博客地址和用户名、密码,就可以自动完成检测、配置工作。
当然,我现在不是来讲如何使用wlw的,我要说的是wlw的一个插件——Code Snippet。这是一个代码高亮插件(其实高亮功能很弱),我从开始使用wlw写博就开始使用这个插件了。但是我一直发现存在一个问题,那就是这个插件默认的生成的代码格式在博客上显示并不是很整齐,偶数行明显的高度比奇数行高。。还好,这个Code Snippet支持自定义代码样式,所以我就通过修改插件配置,使得偶数行通过margin-top设置一个负数值来使得偶数行和奇数行变得一样高。
如果我不折腾ajaxPaled这个主题,也许以上我修改过的Code Snippet插件就可以很好的继续使用了。但是正是我折腾了ajaxPaled,我才发现之前博客中所贴的代码在ajaxPaled下都挤作了一团。我通过查看网页源码,发现原来是其他主题下的代码偶数行比ajaxPlaed下的多了一串空的<p>标签:
<p><!--CRLF--></p>
中间的是html注释,是不在页面上显示的。原来之前遇到插件生成的高亮代码的偶数行比奇数行高,都是这对<p>标签在搞怪。。。而我使用margin负值来强制偶数行与奇数行一样高,结果在ajaxPaled下没有了这个<p>标签干扰,所以反而使得两行两行的都挤在了一块。
ajaxPaled是通过ajax方式请求文章内容,文章内容使用然后通过JS显示的,而其他主题都是使用wordpress的the_content()函数直接输出的,所以我怀疑之所以多出这么个空标签,应该是wordpress在处理内容输出时自动给加上的。不过这个也好办,直接通过对the_content使用勾子过滤掉这些标签就行了。
function filter_code_snippet($content){
$content = str_replace('<p><!--CRLF--></p>', '', $content);
return $content;
}
add_filter('the_content', 'filter_code_snippet');
然后就不会再在页面上输出那对蛋疼的<p>标签了。
我将Code Snippet的样式设置恢复默认,重新生成高亮代码,发布后一看,果然行行整齐,ajaxPaled和SimPaled下都表现一致了。