改造WP-Syntax

经常要往blog里贴代码,没个代码高亮实在有点落伍。找来找去,wordpress下也就WP-Syntax最好用了,支持的语言也比较多,像linux下的bash, vim都可以被高亮化。不过WP-Syntax也并非完美,有些地方和我的使用习惯相差甚远:

先来看下改造前和改造后的代码吧:

wp-syntax
Read More

Tips in Aggregate

都是些很零碎的tips,涉及到linux, wordpress, css, php, English … 选择性阅读吧!

Douban and PHP

按照之前QQ签名秀的原理把豆瓣的个人广播系统也给提取出来了,效果请见此test页面

使用方法是把以下代码添加到你的页面里:

<script type="text/javascript" src="http://punkid.org/glade/douban/request.php?userid=<strong>username</strong>&numbers=5"></script>

其中userid后面跟的是你的豆瓣用户名,numbers后面是显示条目数(最多10条)。至于怎么polish这个douban的miniblog纯粹是你的CSS活。对了,输出编码是UTF-8。

PHP tips: 用addslashes这个函数可以对字符串进行转义。
Read More

Upgrade to WP2.3

wordpress在本机上调试了一个星期后,终于把WP升级到了2.3。因为native tag support的原因,不得不放弃了UTW这个超级好用的插件,我拿UTW做得一些SEO工作也得全部作废了。反正我就是不喜欢Wordpress的越来越华而不实,从2.1开始就没干过正经事儿了,反而让我越发不满意wordpress的运行效率。抱怨归抱怨,以下是调试WP2.3中碰到的一些问题,主要是和模板相关的。

糟糕的Tag体验

WP提供了原生的tag支持,不过这个the_tags()函数实在是有够弱的,一是它必须是strictly in the loop,而我的模板single page里的metadata都是显示在sidebar中的,the_category()the_time()都能工作的很好,就the_tags()显示为空。我又不想把tag放到日志的loop里,最后只能在sidebar里做个rewind操作了,代码如下:
Read More

QQ签名秀 : 在你的blog里调用QQ签名

qqsign 在上篇日志里我就提到要写一个输出QQ签名的程序了,作用是仅仅通过插入一行类似于豆瓣秀的代码在任意页面上显示最新的QQ签名,有点类似于twitter输出。经过两个晚上的努力,初步实现了我想要的功能,并完成了前台页面的设计,IE下还是有点wacky :( 。Now this is the official release announcement: QQ签名秀web程序诞生!

QQ签名秀网站 : http://punkid.org/qqsign/

功能/Features

  • 只需要简单的插入一行代码就能实现QQ签名的输出,而此过程的实现不需要你的主机支持php,也无须对XHTML有太多了解,一切我都替你完成了
  • 支持UTF-8和GB18030两种编码输出
  • 可定义显示最近QQ签名的条目数
  • 发表时间显示为更人性化的”XX月XX天XX小时前”
  • 可以通过CSS改变输出样式
  • 可通过前台页面生成你需要的脚本代码,无须手动配置
  • 前台页面配合预览功能,以验证输出的正确与完整

FAQ/疑问解答

  • 为保证顺利抓取到你的”心路历程”xml文件,请确保你开启了QQ空间功能,并没有设置访问密码;与此同时,你还需要在Q-zone下设置把最新签名添加到”心路历程”下
  • UTF-8/GB18030该选择哪个编码呢? 国内很多网站都还在使用GB(GB2312,GBK,GB18030)码,而时下的趋势是使用UTF-8码,用什么编码取决于你的页面编码。例如blogbus用的就是UTF-8码。
  • 显示条目数究竟能设置多大值? 因为QQ的xml文件并没有一次性输出所有历史签名,所以条目数不宜设置过大。当然,即使你设置值已经超过了最大实际值也不要紧,程序最自动输出到最大实际值后停止的

程序实现过程

这个程序的原理很简单,读取Q-zone里的”心路历程”的XML文件,经过数据处理后再输出为javascript形式。写这个程序遇到了四个困难:

  1. Q-zone的代码实在太乱太dirty了,腾讯又没有官方明确申明有RSS,而Q-zone又没法在非IE浏览器下浏览,我没办法使用FF下的firebug来inspect它的XML文件,最后通过从IE临时文件中找到js文件,把xml文件地址给揪了出来
  2. 我本打算采用php的SimpleXML/DomDocument直接读取QQ的XML文件,但是DH主机不支持URL-file-access mode,不得不放弃了这种最简单的方法,好在我曾经在给自己的blog写个wordpress插件时发现可以用MagpieRSS来读取XML文件,并最终通过MagpieRSS实现了成功读取
  3. 第三个困难是编码问题,QQ的xml输出的编码是GB2312,在我用MagpieRSS之前我曾考虑过用curl下载XML文件并储存为字符型数据,结果curl把GB码的汉字全丢掉了,更糟糕的是,我测试用的几个朋友的QQ签名里因为各式各样的非汉字/非英文特殊文字弄得读取出错,换成MagpieRSS后,发现指定输出编码的话也会出这样的问题,最终的办法是使用早先的MagpieRSS版本,不指定输出编码,直接读取XML数据储存为数组
  4. 最后一个问题是怎么把php执行的结果由javascript方式输出,研究了下livid的project babel程序ing模块代码,通过直接在php里写入javascript的document.write格式输出搞定了。

最后,特别感谢Druggo和我熬夜奋斗啊,很多东西都是他帮忙想辙的! And dont forget to send some feedbacks to me if you have some better ideas or suggestion.

让Feedburner的计数器重新显示

自从feedburner被河蟹之后,内地用户就没法看到那个fancy的feedburner计数器了,不过…Look at my site, I’ve brought it to earth! 原理很简单,利用国外的远程主机先在远程主机上获取feedburner的计数图片并保存在远程主机上,然后相应的修改feedburner的图片地址为保存在主机上的就行了。

我利用的是php方式来实现获取图片功能,代码如下 (其实我还是个php beginner,获取文件的代码是google来的)
Read More

You Might Know

This site is powered by WordPress CMS & hosted by Dreamhustle Dreamhost.

And the theme is inspired by WP Typo and completely crafted under Gentoo Linux with VIM editor.

Sponsors

Monthly Archives

Search