[原创]Gedit应用实例:批量转换HTML实体字符

Wordprss中代码插件也有不少了,但没有我用得舒服的,代码高亮我也没兴趣。我有段时间用一个代码转换工具——Postable。
今天突然想到能不能将目标段落进行批处理,将某些字符转换成HTML实体字符就能避免wordpress输出代码的问题。
幸运的是我在Gedit中发现了插件扩展功能。Gedit首选项中有“插件”选项,其中的“外部工具”,可以执行外部命令和shell脚本。不幸的是,我该用到哪个外部命令或哪个shell脚本是完全没有想法。Google一阵后,了解到Sed可以处理对文本进行拆分,拼合,查找,替换等操作,找到工具了。
因为也是初步接触Sed,只能是多多借鉴前辈的实例了。推敲,实践多次后,终于写出了我要的脚本“代码转换”。
先上脚本(代码转换):
#!/bin/sh
sed 's/</\</g;s/>/\>/g;s/\//\//g;s/\]/\]/g;s/\[/\[/g;s/"/\"/g;s/'"'"/'\'''/g'

再进一步解释脚本。
Writing Code in Your Posts一文提到,转换如下7个字符即可满足大部分代码书写的需求。
< = <
> = >
/ = /
] = ]
[ = [
" = "
' = '
所以我的脚本“代码转换”要实现的目的就是:找出目标段落中的这7个字符,并用相应的HTML实体字符即可。
主要说明sed后面引号部分内容,相应的拆分为
's/</\</g;
s/>/\>/g;
s/\//\//g;
s/\]/\]/g;
s/\[/\[/g;
s/"/\"/g;
s/'"'"/'\'''/g'
参数s表示替换(substitute),格式为 s/替换前的内容/替换后的内容/g (g代表全文检索)
其中\和&字符比较特殊。
&代表替换前的字符串。例如:sed 's/test/& my car/g' 意思为将全文中的“test”替换为“test my car”
\用它来还原一些特殊符号(本例中用\还原& / [ ]等4个字符)
最后替换单引号'这个,我不太明白,参照这里(sed替换:把单引号替换成双引号)写的。
写好脚本之后,再来测试一下。

返回的结果结果就是本文第一张图片。


WP真的是好东西。
[回复]
07/11/2010 1:07 下午 | #1gedit可以干好多事哦
[回复]
07/13/2010 12:05 下午 | #2