2008年3月16日

有备无患:为Blogger传统模板(FTP发布)添加标签云

Blogger的传统模板一直不支持标签的输出。虽然有hack可以从feed中抓取标签列表,但不能分析每个标签所含的文章数,所以仍然不能生成随标签使用频率而字体大小和颜色变化的真正意义上的“标签云”。

所以,我写了一个python的自动化脚本,可以从ftp服务器上分析blogger文件,计算出每个标签的使用频率,并将这些信息保存在服务器上,供模板中的javascript脚本调用。效果么,你可以看看这个演示网页,或者点击我blog下方widget dock左起第四个“文件夹”图标(wyt:还在用IE6的同学们应该看不到。因为IE6不支持widget dock用的透明png,所以我把widget dock给隐藏起来了,实际上“标签云”还在那里。IE7、Firefox、Opera、Safari等应该都没问题)

使用方法很简单,要执行脚本首先得有python。Linux大多默认安装,Windoze上安装Python的方法见这篇文章

另外,脚本中用到了BeautifulSoup分析HTML文件,simpleJSON生成JSON格式的数据流。你也必须安装这两个python模块。如果你和我一样用Gentoo,just emerge it。Windoze用户可以用easy install工具快速安装。

接下来下载压缩文件:konatag.tar.gz,解压缩用得到两个文件konatag.py和konatag.js。

konatag.tar.gz

修改konatag.py其中的ftp服务器,用户名,密码以及归档(archives)的路径参数,以便脚本可以访问你的ftp服务器。

if __name__ == '__main__':
    options = dict(
        server='yourftpserver',    # 服务器地址不用包含ftp://
        username='yourusername',   # 用户名
         password='yourpassword',   # 密码
         path='/path/to/archives/'  # blogger的归档路径
    )
    ftp = FTPServer(**options)
    blogger = Blogger(ftp)

保存退出之后,在终端(wyt:也就是Windoze的命令行)执行:

$ python konatag.py

事实上,如果高兴的话,可以像我一样把这个脚本扔到crontab的计划任务中,每星期执行一次自动更新你的Blogger的标签信息。

执行完脚本之后,登录ftp,在你的blogger归档目录中会多出一个konatag.json的文件,这是一个包含JSON格式数据的文本文件。不用去管它,将konatag.js上传到任何你能记住的目录。接下来我们将要修改Blogger模板。需要说明的是,konatag.js使用prototype库,所以在模板里还必须包含相应的js文件。

<!-- 将js的调用加入<head> -->
<script type="text/javascript" src="/scripts/prototype.js"></script>
<script type="text/javascript" src="/scripts/konatag.js"></script>
<!-- or: 如果你想直接调用我这儿的javascript脚本的话 -->
<script type="text/javascript" src="http://demos.luliban.com/scripts/prototype.js"></script>
<script type="text/javascript" src="http://demos.luliban.com/scripts/konatag.js"></script>

<!-- 这个div是“标签云”的容器,加入<body>中
     id可以随意指定,但要与下面的javascript对象的第一个参数相一致 -->
<div id="konatag"></div>

<script type=text/javascript>//<![CDATA[ 
    // Konatag的第一个参数是刚才提到的div的id
    // 第二个参数是脚本上传的JSON数据的路径
    new Konatag('konatag', '/blog/archives/konatag.json', {
       startSize: 13,    // 使用频率最低的标签的字号,单位是px,请随意设定,下同
        stopSize: 24,     // 使用频率最高的标签的字号,单位同样是px
       startColor: '#3d81ee',    // 使用频率最低的标签的颜色
        stopColor: '#930fe3'      // 使用频率最高的标签的颜色
    });
//]]></script>

这样就大功告成,只需要重新发布一遍模板就可以了。有什么意见,建议和砖头,欢迎留言。

标签: , ,

3 条评论:

Anonymous 匿名 说...

我也很喜欢blogger,如果可能,希望能在gtalk上交流一下。sagasw#gmail.com

2008-3-17 8:32:00
Blogger wyt 说...

大欢迎:-)

2008-3-18 16:47:00
Blogger 小浩 说...

BLOG主:
你好,
好喜欢你的这个BLOG风格,
请问,是BLOGGER的版吗?
我好头痛呢,因为BLOGGER老师被河蟹,
所以我改成了FTP方式的BLOGGER,
但是现在问题出来了,很多东西都没有了,而且不怎么好看,我想问一下,
你这个也是FTP的BLOGGER模板吗?
还有FTP的BLOGGER可以做一些什么事情呢?
真心的希望得到你的回复。
我的GMAIL.
lizonghao(at)gmail.com

2008-4-20 17:12:00

发表评论

指向此文章的链接:

创建链接

<< 主页