我的另外一个Blog,是用Blogger的FTP功能发布的,只能使用Classic Templates,常规是不能列出分类(Labels)列表的,不象用Blogspot发布的,可以用新的Layout,用“分类”控件实现。
参考了著名的Blogspot Hacker phydeaux3的文章《Automatic List of Labels for Blogger Classic Templates / FTP》。摸索出了适合中文的方法,介绍如下。
首先是如何列出所有的Labels。Blogger所提供的一个叫“metafeed”的功能可以实现这个,地址是: http://www.blogger.com/feeds/USERID/blogs/BLOGID
其中,USERID和BLOGID,可以在Blogger的控制面板中查到,所有对于用户级别的设置的链接中,可以看到USERID,所有关于特定Blog的设置的链接,都可以找到BLOGID。这个地址支持标准的GData的接口,所以可以通过在后面添加参数实现其他功能。这个地址其实是个Feed,所以原来的格式是atom。Javascript处理XML比较困难,所以要把它转化成Javascript比较容易处理的JSON格式,而且选用GData的json-in-script的方式,以便把它嵌入到网页中作为Javascript运行。所以可以采用: http://www.blogger.com/feeds/USERID/blogs/BLOGID?alt=json-in-script&callback=listLabels
其中listLabels是回调函数,参数就是JSON描述的对象,通过在回调函数中对JSON对象的处理,就可以列出所有的Labels。由于www.blogger.com在G~F~W外面,回传的东西里面都是Labels,一旦Labels包括某些关键字,后果可想而知,好在Google的大部分服务都提供https,所以最终采用的链接是: https://www.blogger.com/feeds/USERID/blogs/BLOGID?alt=json-in-script&callback=listLabels
列出所有的Labels还是不够,关键要解决每个Label所对应的链接是什么。对于全部是英文或者数字的Label,链接就是http://BLOGURL/Labels/后面加Label名称再加上html扩展名,但是一旦Label包含有中文就不是这样了,假如全部是中文,Label名称要进行base64编码,假如Label包括中文和英文或数字,那么Label名称里面的英文保持原文,每个中文要转为“=XX=YY=ZZ”,其中,XXYYZZ为16进制表示的中文字的Unicode编码。在参考了这个连接里面的Base64 Javascript实现后,最终的脚本为:
<script type="text/javascript">
//<![CDATA[
var Base64 = {
// private property
_keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
// public method for encoding
encode : function (input) {
var output = "";
var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
var i = 0;
var go = false;
/* 判断是否包括数字和字母 */
if (input.match(/[A-Za-z0-9\+\/\=]/g)){
go = true;
}
input = Base64._utf8_encode(input);
while (i < input.length) {
/* 如果包括数字和字母,按特殊方式处理,否则用base64编码 */
if (go){
chr1 = input.charCodeAt(i++);
if (chr1<127){
output = output +input.charAt(i-1);
continue;
}
output = output + '=' + chr1.toString(16).toUpperCase();
continue;
}
chr1 = input.charCodeAt(i++);
chr2 = input.charCodeAt(i++);
chr3 = input.charCodeAt(i++);
enc1 = chr1 >> 2;
enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
enc4 = chr3 & 63;
if (isNaN(chr2)) {
enc3 = enc4 = 64;
} else if (isNaN(chr3)) {
enc4 = 64;
}
output = output +
this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
}
/* 将结果中的斜杠替换成两个下划线 */
output = output.replace(/\//g,"__");
return output;
},
// private method for UTF-8 encoding
_utf8_encode : function (string) {
string = string.replace(/\r\n/g,"\n");
var utftext = "";
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utftext += String.fromCharCode(c);
}
else if((c > 127) && (c < 2048)) {
utftext += String.fromCharCode((c >> 6) | 192);
utftext += String.fromCharCode((c & 63) | 128);
}
else {
utftext += String.fromCharCode((c >> 12) | 224);
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
utftext += String.fromCharCode((c & 63) | 128);
}
}
return utftext;
}
};
function listLabels(root){
var baseURL = 'http://blog.yypig.net/labels/';
var baseHeading = "Labels";
var isFTP = true;
var entry = root.entry;
var category = entry.category;
labelSort = new Array();
for(p in category){
labelSort[labelSort.length] = [category[p].term];
}
//labelSort.sort();
for (var r=0; r < labelSort.length; r++){
document.write('<a href="'+baseURL+Base64.encode(labelSort[r]+'')+'.html" >');
document.write(labelSort[r]+'');
document.write('</a>, ');
}
}
//]]>
</script>
<script type="text/javascript" src="https://www.blogger.com/feeds/USERID/blogs/BLOGID?alt=json-in-script&callback=listLabels" ></script>
今天,大牛无形的博客是《不在乎天长地久,只珍惜曾经拥有》。Blog图党的是《钻》。原因是为了配合申办OG时候的承诺,G~F~W让我们出去放放风。
其实,大佬们应该去看看BBC中文论坛里面的这个链接:BBC中文网“解封”——您的经历。就会懂得封网其实一点必要都没有,链接后面的跟贴我感觉和网易和新浪的评论没有什么区别,有愤青,有五毛,有批判BBC灭我之心不死的,非常热闹。我估计解封前,那个论坛里面应该只有攻击我~党的声音。所以,何必封呢?
来自:SharpTee.com : I Love BJ’s,作用是:“Tell her what you really want for your birthday with this shirt!”,明显可以和她的T恤配成一套,完了,老徐又成了大家YY的对象了。
来源1:看图翻译
来源2:看Tee补脑
来源3:SharpTee.com : I Love BJ’s
最近听交通台,老是有一个号称高端楼盘用的空调的广告,最后一句广告词写得不错:
“人与空气之间,总有XX(空调牌子)。”
我突然想到了一个套套的广告词,不知道套套的厂家用不用?
“男女之间,总有杜X丝(可以换成任何的套套的牌子)。”
看来名字不能乱起,容易引起歧义,书记晚上干什么去了?
深圳市委副书记白天兼任市委政法委书记
本报讯 (记者/曾妮)省委副书记、深圳市委书记刘玉浦昨天主持召开相关会议,宣布政法机关和工青妇机关干部人事任命和领导分工调整。市委决定,市委副书记白天兼任市委政法委书记。
根据市委决定,市委副书记白天兼任市委政法委书记。李意珍增加分管市总工会、团市委、市妇联工作。王穗明兼任市委党校、深圳行政学院、深圳社会 主义学院、深圳经济管理学院、深圳中华文化学院校长、院长职务,李锋不再兼任市委政法委书记、市公安局党委书记职务,李铭兼任市委政法委副书记、市公安局 党委书记职务。许德森兼任市总工会党委书记,为市总工会主席人选;胡利群任市委副秘书长,免去市妇联党组书记职务,不再担任市妇联主席职务。蔡立任市妇联 党组书记,为市妇联主席人选。