我喜欢用命令行做一些事情,写一篇文章,发布到这个博客,也是一样。最好的方法应该能够使用文本编辑器写好,然后从命令行直接发布,比如
[plain light=”true”]
blog hello.txt
blog -m hello.txt
blog -d post_id
[/plain]
-m 是修改,-d是删除,这样就方便多了

wordpress的设置中有个Remote Publishing项,支持atom publishing protocol和xml-rpc,我对atom不太熟悉,不过xml-rpc以前用过,便想试一试,python很适合这种实验性质的程序。wordpresss是用xmlrpc.php文件支持远程调用的,看了看这个文件,在客户端写了几个脚本尝试一下,感觉挺简单的,就写了下面段代码,丑是丑了点儿,不过能满足我的需求就够了。
[python]
import sys;
import xmlrpclib;

class Blog:
"""just a simple interface for xmlrpc call"""
def __init__(self,url,name,pwd):
self.name = name;
self.pwd = pwd;
self.sv = xmlrpclib.ServerProxy(url);
def newPost(self, cont):
self.sv.metaWeblog.newPost(1, self.name, self.pwd, cont, True);
def editPost(self, pid, newpost):
self.sv.metaWeblog.editPost(pid, self.name, self.pwd, newpost, True);
def delPost(self, pid):
self.sv.metaWeblog.deletePost(0, pid, self.name, self.pwd, True);

def parse_content(ct):
bcont = {};
ct = ct.decode("gbk");
head,cont = ct.split("nn",1);
for line in head.split("n"):
k,v = line.split(":");
if k.startswith("categories"):
bcont[k] = v.split(",");
else:
bcont[k] = v;
bcont["description"] = cont;
return bcont;

def new_from_commandline(b):
ct = sys.stdin.read();
return b.newPost(parse_content(ct));
def new_from_file(b,fname):
ct = open(fname).read();
return b.newPost(parse_content(ct));

def modify_from_commandline(b,pid):
ct = sys.stdin.read();
return b.editPost(pid, parse_content(ct));

def modify_from_file(b, pid, fname):
ct = open(fname).read();
return b.editPost(pid, parse_content(ct));

def delete_post(b,pid):
b.delPost(pid);

def main():
b = Blog("http://localhost/wordpress/xmlrpc.php","username","password");
if len(sys.argv)==1:
new_from_commandline(b);
elif len(sys.argv)==2 and not sys.argv[1].startswith("-"):
new_from_file(b,sys.argv[1]);
elif len(sys.argv)==3:
if sys.argv[1].startswith("-m"):
modify_from_commandline(b,int(sys.argv[2]));
elif sys.argv[1].startswith("-d"):
delete_post(b,int(sys.argv[2]));
elif len(sys.argv)==4:
modify_from_file(b,int(sys.argv[2]),sys.argv[3]);

if __name__ == ‘__main__’:
main();

[/python]
现在很喜欢python,给人一种优雅简约的感觉,心里想什么,顺手就能写出来。

对程序员来说,代码加亮的需求很迫切。心想既然wordpress这么成熟了,肯定会有语法加亮的模块,于是便google了一把,果不出所料,找到了一个叫SyntaxHighlighter Evolved的插件,在本地机器上试了试,貌似用起来还不错,便装了上来。

服务器好像不支持php直接写文件,安装的时候,wordpress提示填入ftp账户,proceed就成功了,不过要这样的话,图片不知道能不能上传。

下面放几段代码测试一下

C语言

[c highlight=”4″]
#include <stdio.h>
int main()
{
printf("hello worldn");
return 0;
}
[/c]

perl

[perl]
while(<>){
s/^/hello world/g;
print;
}
[/perl]

貌似支持的语言不少,可惜的是,没有lua和mathematica,而这两种语言我恰好还经常使用~

google了一下,找到了mathematica语法的.js文件,我想,也许直接拷到相应的文件夹就行了吧,找了找,里面有一个third-party-brushes的文件夹,拷了过去,居然不行,看了看里面的readme文件,给出了一个怎么添加new brush的链接,懒得仔细看了,改天有空再搞搞吧。

自从blogspot被封以后,我已经大半年没有写过东西了

去年尝试用appengine开发一个blog,从十一就开始打算,中间断断续续的写了一些,今年一月份已经差不多完善了,只是还不支持rss输出。中间appspot又被封掉几次,让我对appengine失去了信心。

今年过来,在godaddy注册了一个域名,就是现在的lipte.com了,当时试了好几个名字,都已经被人注册掉了,一年10.69美刀,不算便宜,忍了。lipte是life,philosophy,technology三个字母的综合,大致反映这个博客的内容趋向吧。

看了看国内的虚拟主机,平均一年都要四五百块钱,大部分是windows+iis,不太喜欢,提供的空间也不大,最近风声比较紧,就想在国外注册一个,vps太贵,想想我也没有太大的需求,就一个地方能写点东西就行了。国外的虚拟主机像dreamhost之类的也不便宜,最后找了个免费的,megabyet.net,提供2GB的空间,支持php和mysql,对我来说已经够用了。测了一下,速度还可以,比国内很多空间都快。

当时觉得wordpress太臃肿,华而不实,便想自己动手写一个,以前没用过php,现学现卖,工作之余便写写,一两个月后的现在,也做了个差不多,就是这里http://www.lipte.com,后来实在是写不下去了,随着想加入的功能越来越多,越写越觉得没有必要,何必再重新造轮子呢?wordpress已经做的很好了。

今天终于下定决心,使用wordpress了,就是现在这个博客,http://blog.lipte.com,本来想直接把www.lipte.com绑定到这里,不过,既然算是个博客,还是blog比较贴切一些,www倒是可以再放一些其他东西。

今天试了试,将blogger里的东西导过来,没有成功,可能是服务器禁止建立连接吧,算了,过去的东西,也没必要再去看。

以后就在这里安家吧~