十月
07

关于windows live writer代码高亮插件——Code Snippet

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下都表现一致了。4556

本文标签: , , , , ,

分享

本文短网址: http://qiqi.boy.im/8z

这篇文章已经有 56 条评论

Comments (52) Trackbacks (4)
You can leave a response or Trackback this entry .
  1. winy -#1

    @@

  2. snowxh -#2

    - -

  3. snowxh -#3

    连个link都不给!

  4. snowxh -#4

    你的blog特别讨厌的一点是我都拉到页面下面了
    因为ajax载入最后还会给我拖到页面上面去

    • QiQiBoY --#1

      @snowxh
      唔。。。。我错了。。我改正。。我保证日志页再也不强制上拉了。。 :cry:

    • 静夜燃香 --#2

      @QiQiBoY
      心情好的时候还可以跟自动滚动玩儿,我拖上去,它给我拉下来,我再拖上去,它再给我拉下来,跷跷板似的,能玩儿好几个回合呢~~

    • liuqiqi --#3

      @静夜燃香
      额。。要是心情不好时呢。。好不容易来抢我沙发了结果被硬拖着向上来来回回好几次。。。。应该会恨不得砸掉鼠标吧。。。 :eek: 我要是站在你和snowxh面前,你俩一定掐不死我不解恨。。 :cry:

    • 静夜燃香 --#4

      @liuqiqi
      原来你懂的……
      摔鼠标舍不得,俺那个30磅呢。叉掉你的博客就行了^^

    • QiQiBoY --#5

      @静夜燃香
      我常常会被惹得想去抠掉鼠标左键。。按扁鼠标滚轮。。抠掉浏览器滚动条。。。。但是,我忍住,然后告诉自己,要淡定。。 :cry:

    • liuqiqi --#6

      @静夜燃香
      30磅呀。。你用的啥牛X鼠。。。炼狱蛇还是稍微有点软的蓝影。。

    • snowxh --#7

      @QiQiBoY
      原来你自己都忍不了了么!

    • 静夜燃香 --#8

      @QiQiBoY
      你说你自己都忍不了为啥还有弄上呢?
      抓紧时间赶快给去掉算啦~~

    • 静夜燃香 --#9

      @liuqiqi
      罗技M505~~俺也不知道牛不牛,反正当时就找个小一点的好看一点的无线鼠标就买它了……= =

    • 静夜燃香 --#10

      @snowxh
      +1
      看来我耐心好些,忍了好一段日子了……

  5. winy -#5

    我喜欢另外一个syntax highliter,简单

    • QiQiBoY --#1

      @winy
      wlw下的代码高亮插件我都试用过了。。。还是觉得snippet这个最好。。

  6. winy -#6

    原来发了两遍。。。

  7. 丕子 -#7

    发了两遍?

  8. IM路人 -#8

    这个code插件能自动换行吗?会不会因为代码一行过长而出现滚动条

  9. zwwooooo -#9

    我用文本编辑器的代码高亮直接贴到博客文章,用pre括住

    • QiQiBoY --#1

      @zwwooooo
      你文章中的代码挺漂亮的。。神马编辑器,还有这功能。。。 :?:

    • zwwooooo --#2

      @QiQiBoY
      RJ TextEd,有个功能“复制为带高亮的html”,不过还是比较繁琐,比起去一些转换网站方便点,凑合着用

  10. 静夜燃香 -#10

    我之前是在代码发芽网弄的~~还挺好看,咳,重要的就是好看……
    话说现在用WLW的人多啊~~我现在也是在用WLW写日志了~~

    • liuqiqi --#1

      @静夜燃香
      发芽网的不好看。。我试过滴。。 :cool: 。。
      wlw是大势所趋。。。 :smile:

    • 静夜燃香 --#2

      @liuqiqi
      咦,花花的很好看啊……
      反正我已经几乎不贴代码了~~
      嗯嗯,WLW贴图太方便了~~我喜欢 :oops:

  11. 第六空间 -#11

    说实话,我看不懂。

    不过这个评论框不错。喜欢,拿不走。

  12. 流年 -#12

    reader中很好看

  13. QiQiBoY -#13

    @静夜燃香
    我弄上时也没想到会遭遇到被强行往上拽的情况嘛。 :mad:

  14. 学夫子 -#14

    支持一下,虽然已经没有用wp。wp几乎可以实现任何你想要的功能了

  15. Simon -#15

    偶数行明显的高度比奇数行高。。还好,这个Code Snippet支持自定义代码样式,所以我就通过修改插件配置,使得偶数行通过margin-top设置一个负数值来使得偶数行和奇数行变得一样高。

    我也遇到你同样的问题,但是还没有找到解决方法。能否把你的解决方法写详细一些。我对网页编程不是很熟悉。谢谢

  16. Tinkre -#16

    请问 是在哪里加?我刚碰wordpress,对代码还不是很熟。

    看了文章几遍,没找到楼主 说代码放置的具体地点?代码页面的名字是?

    • QiQiBoY --#1

      @Tinkre
      你好,代码需要添加到主题目录中的function.php中 :oops:

    • Tinker --#2

      @QiQiBoY
      谢谢你的帮助,非常完美的解决了问题~~我排除掉我主题里面的CSS问题后,然后检查了数据库的源代码。最根本的问题在于add_filter(‘the_content’, ‘filter_code_snippet’);的the_content,我将其改为了content_save_pre,就可以了。
      具体原因可见:http://www.girlcoding.com/2011/02/codesnippet-wordpress/
      附上链接,以便别人更快解决问题。
      @@ 另外,我不小心把我的名字敲错了,哈哈,能否改回来?我叫 Tinker

  17. 有点蓝 -#17

    这个不算修改wp源码吧 对其他文章会不会有不可知的问题?

  18. 何苦呢 -#18

    第一次看到这种风格的主题 博客头部更是充满了遐想

  19. arik -#19

    用此方法解决了问题,但是!! 复制代码再粘贴,代码没有格式了,没有换行了,全部代码连成一堆

  20. reille -#20

    我用Code Snippet1.2版本的,觉得不错,问题是在我网页上,代码显示严重乱了,我估计是样式跟主题的样式重叠了,现在不知道怎么解决

  1. Hello WordPress!

    [...] RC Reply AJAX插件2.0发布,这是一次重大的更新。我还介绍了wlw的一个插件关于windows live writer代码高亮插件——Code Snippet。另一个很重要的更新是,我开放了WP Rc Reply Ajax插件的接口,WP RC Reply [...]

  2. 解决2011版本Windows Live Writer插件Code Snippet在wordpress的显示问题

    [...]   一般的博客p标签的定义是有作用的,不能删。那么现在的办法就是过滤标签。我因为刚接触wordpress,刚开始没想到这个方案,最后是通过另外一篇博文《关于windows live writer 代码高亮插件——Code Snippet》找到解决方案的。 [...]

  3. Windows Live Writer 插件Code Snippet 在wordpress 显示的问题

    [...] 《关于windows live writer代码高亮插件——Code Snippet》 [...]

  4. 悲催的Code Snippet

    [...] 刚开始用的时候也是发现这个插件的偶数行要比奇数行高出很多,后来看了关于windows live writer代码高亮插件——Code Snippet,发现是<!–CRLF–>注释的问题,去掉这个果然就好了。 [...]

Leave a Reply

Hi , say something.

  • :?:
  • :razz:
  • :sad:
  • :evil:
  • :!:
  • :smile:
  • :oops:
  • :grin:
  • :eek:
  • :shock:
  • :???:
  • :cool:
  • :lol:
  • :mad:
  • :twisted:
  • :roll:
  • :wink:
  • :idea:
  • :arrow:
  • :neutral:
  • :cry:
  • :mrgreen: