终于把 blog 从远古的 WordPress 1.2 升级到了 2.0
一月 17th, 2006
上周六完成了最近的工作,狂睡一天+猛玩一天之后,昨晚花了一整夜的时间来进行升级工作。包括修改 WP 本身的少量代码,寻找插件的新版本并修改,以及完成去年三月就搁下的 Theme 移植 (从 1.2 的 style 移植到 1.5 的 Theme)。是的,去年三月…… 
意外的发现 MarkDown 这个超好用的写作插件,以前竟然一直无视了它的存在。
简单的说 MarkDown 可以让我们像写纯文本文件那样来写 HTML,再也不需要把 < > 写成 < > 了,直接书写 1. xxx 2. yyy 就可以产生 HTML 的有序列表,直接书写 * xxx * yyy 就可以产生 HTML 的无序列表等等。唯一不爽的是表示引用的效果需要用 Email 格式的 > 符号,并且至少每个段落前面要有一个 > 符号,这样就比直接使用 <blockquote> 麻烦多了,有空得研究一下如何修改它。
Update: 哈,原来要解决这个问题很简单,注释掉 markdown.php 中的这一行就可以了,目的是不去掉 WordPress 本身的段落自动转换过滤器。
//remove_filter('the_content', 'wpautop');
另外发现要使 Auto-hyperlink URLs 和 MarkDown 一起工作的话必须把前者的过滤器优先级设置得比 MarkDown 高,否则也会出些莫名其妙的问题。打开 autohyperlink-urls.php 把最末尾的三行改成这样就行了。add_filter() 函数的第三个参数表示过滤器优先级,由以前的 9 改成 5,因为 MarkDown 的过滤器优先级是 6。
Tags: Software 软件, WordPressadd_filter('the_content', 'c2c_hyperlink_urls', 5); remove_filter('comment_text', 'make_clickable'); add_filter('comment_text', 'c2c_hyperlink_urls', 5);
WordPress 1.5 的标点符号问题
二月 17th, 2005
刚才看到在 kDolphin 的中英双引号的问题中提到偶曾经说过的 WordPress 1.5 强制转义某些英文标点符号的问题,索性就在这里说说清楚吧。
事实上这个不是浏览器的问题,是 wp-includes\functions-formatting.php 中的 wptexturize() 函数在搞鬼。在页面被显示时(只是被显示时,数据库的标点符号还是正确的),它会把英文的单双引号和键盘上 TAB 键上面那个斜点符号以及其他一些东西都强行转换成了 Unicode 里的 CJK 标点符号,也就是全角的中文标点符号。这个函数会作用于站点标题、blog 标题、blog 内容、回复内容等地方。
它把标点符号变丑也就算了,关键是这样一转换会造成文章本来的意义被破坏,特别是有程序代码的文章。其实这就是我一直没有升级 1.5 的主要原因之一,另一个原因是懒得修改 style。 Read the rest of this entry »
Tags: Software 软件, WordPress解决 IE 关于 CSS 中 padding 的一个问题
二月 17th, 2005
这个问题其实纯粹是 IE 的问题和 CSS 的技巧问题,不过因为我是在调整 WordPress 的 style 时遇到并解决的,所以就归类到 WordPress 里了。
以前就听说 IE 对 CSS 支持不太好,特别是有关盒式模型的。不过由于我几乎不做网页,所以也没留意过。最近因为给 blog 添加那个“访客来源”显示,才注意到这个。 Read the rest of this entry »
Tags: Software 软件, WordPress搞定一个 1.2 版中的 TrackBack 的问题
一月 18th, 2005
前几天把 Blog 搬到了 Rainice 的 Linux 主机上,结果导致形如 http://rainux.sefans.com/blog/wp-trackback.php/67 的默认 TrackBack URI 无法正常工作。Rainice 猜测是 Apache 的 mod_rewrite 模块禁用造成,不过我在自己的 Windows 主机上禁用 mod_rewrite 后这个 URI 一样可以正常的工作。
Rainice 提议说可以把 URI 中最后一个 / 改成 ?。通过分析 WordPress 的源代码,打开 wp-trackback.php 和 wp-includes\template-functions-comment.php 修改后却仍然无法使用。因为 TrackBack 是以 POST 方法发送的,比较难调试,只好自己写了个简单的 PHP 页面来辅助调试。 Read the rest of this entry »
Tags: Software 软件, WordPress在 WordPress 文章里运行 PHP 代码
一月 13th, 2005
基于安全性考虑,WordPress 的文章是不能直接运行写进去的 PHP 代码的,但是某些时候我们需要文章有提供一些动态内容的能力,这个限制就很让人不爽了。
幸运的是 WordPress 有强大的插件功能,更幸运的是已经有人写了插件让我们可以这么做。Mark Somerville 的 Run PHP 就是其中一个,并且工作得很好。 Read the rest of this entry »
Tags: Software 软件, WordPress让 WordPress 不再“吃掉”反斜杠 "\"
十二月 27th, 2004
WordPress 1.2 有个“特性”,写在 Blog 内容里的所有的单个反斜杠 "" 都会在显示时或者再次编辑时消失,而成对的反斜杠则会在显示或者再次编辑时变成一个。如果仅仅是显示的问题,也就罢了,要用反斜杠时写成两个就行了。但每次在 WordPress 里编辑以前的 Blog 时反斜杠也会被“吃掉”,这是件很让人头疼的事,好好的文章编辑几次所有的反斜杠都没有了。
在 WordPress 的 Support 上搜索 "backslash",找到一些帖子。有人说这个问题在 1.3 里已经修正了,也有人提供了 1.2 下解决的办法,具体做法如下。 Read the rest of this entry »
Tags: Software 软件, WordPress用 Syntax Highlighter with Enscript 语法高亮显示各种程序设计语言代码
十二月 26th, 2004
在中文 WordPress 上看到一篇 HowTo: 显示彩色代码,里面介绍了可以用 WordPress 的一个插件 Syntax Highlighter with Enscript 进行代码的语法高亮显示。不过他们只简单的介绍了如何语法高亮显示 PHP 代码。事实上,借助于 GNU Enscript 的强大功能,这个插件可以让很多程序设计语言的代码语法高亮显示。
看了一下 Syntax Highlighter 的源代码,发现对于 PHP 代码,它调用 PHP 的 highlight_string() 函数来进行语法高亮的格式化,因此没有其他需求。而对于其他程序设计语言,则需要调用 Web 主机上安装的 GNU Enscript 来进行语法高亮格式化。
好在我的 Blog 是放在自己管理的机器上的,安装软件很容易。在 Free Software Foundation 的 GNU Enscript 页面上下载了 Win32 Binaries Zip 包,解压到准备安装的目录,并且为了能方便 Syntax Highlighter 和我们自己使用 Enscript,还要把这个目录下的 bin 子目录添加到系统环境变量 PATH 里。OK,用如下格式贴一段 Delphi 代码测试一下。 Read the rest of this entry »
Tags: Software 软件, WordPress