Showing posts with label 博客相关. Show all posts
Showing posts with label 博客相关. Show all posts

Wednesday, October 6, 2010

博客搬家:导出live space 到micolog或者wordpress

前段时间,微软宣布将停止live space 的服务,建议用户转移到wordpress,但是对于有些用户,比如说向我们这些用GAE+micolog搭建独立博客的用户,并不像直接搬到wordpress,或者由于各种原因,不想把live space的数据马上删除(默认转到wordpress,live space数据会删除)。因此,找一个能够把live space数据导出到micolog格式或者wordpress格式就很有必要。

我在网上找了下,终于找到了一个叫Live-space-mover的工具,并且成功的将live space 导出到micolog和wordpress,在此简要的记录一下过程。

准备工作:

1.设置live space日期格式:

重要的是让WindowsLiveSpace和Wordpress的日期格式一致,这里我两个设置的是2010/10/7。在WindowsLiveSpace中,我的时间格式是10:43,设置的路径是“选项”->“常规”->“日期和时间格式”:

image

另外,在“选项”->“日志”->“显示日志日期”选项中,勾选“在页首出显示日志发布日期”。

2.安装python:

我使用的是python2.5.2+Beautiful Soup 3.0.6,Python 2.5.2的官方下载地址在:

http://www.python.org/download/releases/2.5.2/

下载后若在命令行敲python说命令没找到,则要手动将python路径添加到环境变量,或者后续命令时把python路径敲全。

3.下载Beautiful Soup 3.0.6:

Beautiful Soup 3.0.6是一个解析HTML页面的类库,接下来那个下载博客文章的脚本需要用它。下载地址:

http://www.crummy.com/software/BeautifulSoup/download/3.x/BeautifulSoup-3.0.6.tar.gz

解压到一个文件夹,比如D:downloadBeautifulSoup-3.0.6。你将看到BeautifulSoup.py等几个脚本。

4.下载Live-space-mover:

Live-space-mover这个脚本,能够把WindowsLiveSpace中的所有文章和评论等,生成一个Wordpress能够识别的XML文件,以实现博客搬家的目的。下载地址:

http://code.google.com/p/live-space-mover/downloads/list

现在的最新版本是live-space-mover.1.8.zip。解压到Beautiful Soup 3.0.6的目录。在BeautifulSoup-3.0.6目录下,你应该看到脚本live-space-mover.py。


上述3,4两部,大家若嫌麻烦可以直接下载我打好包的Beautiful Soup 3.0.6+Live-space-mover,下载地址:

http://cid-264d14feb8ab1b38.office.live.com/embedicon.aspx/.Public/code/BeautifulSoup-3.0.6_live-space-mover.rar

搬到micolog或者wordpress:

1.导出live space:

在cmd下,cd到BeautifulSoup-3.0.6目录,若时间格式和我的一样,直接运行:

python live-space-mover.py -s http://yourSpaceName.spaces.live.com/

若时间格式后面还有秒,运行:

python live-space-mover.py -s http://yourSpaceName.spaces.live.com/ -t “%m/%d/%Y %I:%M:%S %p”

其中youSpaceName是你的博客名。倘若环境变量中没有python,则把python的路径输全即可,如:

D:\Program Files\Python25\python.exe live-space-mover.py -s http://yourSpaceName.spaces.live.com/ -t “%m/%d/%Y %I:%M:%S %p”

2.导入到micolog或者wordpress:

倘若是导入到wordpress,可以直接导入(tools->import->wordpress格式),只需设置一下作者即可。

倘若导入到micolog,则需要手动把一些中文post_name改成拼音或英文,如:

 <wp:post_name>中文</wp:post_name>




改成:



 <wp:post_name>english</wp:post_name>




否则或出现对应item没导入进去,有些文章会缺失。



wordpress评论也能够完美导入,但micolog貌似不能,我从wordpress导入到micolog也不能导入评论,所以这应该是micolog导入功能不够完善所致。




done & enjoy~

适用于micolog的windows live writer语法高亮插件

对于我等码农来说,在博客上贴代码是家常便饭,为了让代码更好看,代码高亮是必须的,作为离线博客最常用工具,windows live writer这方面的插件有不少,但很遗憾的是,我在网上花了九牛二虎之力,也没搜到适合我的博客平台micolog的语法高亮插件。


既然放搜狗不行,那只好自己动手,丰衣足食。于是我找了个适用于wordpress的语法高亮插件,将其更改了下,貌似原来的名字叫做HiLi,现在已经既不清了,原网址也记不清了,貌似是下网址的主人写的:


http://www.badder.cn/


我主要对代码进行了如下改动:



1. 对micolog和wordpress的高亮插件的语法进行了比较分析,从而对高亮语法的头的生成代码进行了更改,从而使值适用于micolog。


2. 对html一些特殊字符进行了自动替换,如”>”替换成”&gt”,使高亮后的代码末尾不会出现类似”<stdio.h>”的多余代码。


3. 增加了对某些行进行高亮的功能,这个功能对于比较长的代码中需要强调某行代码是很有用的。



完成后的软件界面如下:


image


下面是上面这段代码的高亮结果:



  using namespace std;

int main()
{
cout << "test"<<endl;
}

下载地址:


编译好的dll:

源码:



使用方法:把dll考入windows live writer 插件目录(默认是C:\Program Files\Windows Live\Writer\Plugins)即可.


enjoy~


btw:问一个在windows live writer上发micolog日志的问题


我用wlw发日志的时候,发现其slug无效,感觉是slug没被传输,有人碰到类似问题并且找到了解决方案吗?有的话在留言里告诉我,谢谢~

Friday, October 1, 2010

我的新浪微博被删了

到底我干什么了,新浪要删我微博,登陆提示“抱歉,你要访问的页面不存在或已经被删除”

截图如下

 image

网上查了下,貌似也有人有类似的经历,如某位微博用户说:

昨天,我的微博也被删了,两次致电新浪客服后,才得知是因为在微博中“刷帖”所致;再问什么是“刷帖”,答曰:就是同一内容发了多次(那是因为网速太慢,没法子确认发送成功没有造成的);三问我的微博怎样恢复,答曰:恢复是不可能了,再申请一个吧;四问为什么管理员不能先有个提示,告知注意事项,让博主今后有个注意或避免?如果再出现同类错误后再做处罚?客服答曰,对不起了;五问,能否向你们再上一级反映此事,答曰:没地方可反映了。六问为什么新浪博客和微博中存在好多淫秽的内容能够存在,我仅仅多发了几个帖子就被封了微博?客服无语。。。 
我想:每个博主为了自己的博客、微博都是牺牲了自己宝贵的时间去维护的,甚至可以说是注以心血的,同时也为“新浪”带来巨大的点击量和无穷的财富。可新浪就是这样无情地对待他忠实的的用户,删你博文!封你的博!
亲爱的博友,遇此情形,你能怎样呢?

感觉新浪这样无端删账户太狠了,对用户太不负责了,并且删账户没通过邮件(也许那封私信是通知,但我点私信的结果还是页面不存在)提醒,以后再也不用新浪微博了

Friday, September 24, 2010

为博客添加分享按钮

有时,我们想为独立博客添加一个类似于分享到的按钮,以便分享到各种SNS网站添加人气。虽然,现在网上提供这种插件的网站,如addthisonjiathis等,但是,这些网站都是商业网站,为了流量,分享时会跳到上述网站,比较不爽。因此,求人不如求己,自己动手,丰衣足食,于是我搜了一下,看网上有没类似的代码,于是得到下述地址:



http://blog.csdn.net/skymountain/archive/2010/06/25/5694697.aspx



但是,我试用上述代码,发现在我micolog系统里没效,几番更改代码,终于出现了分享按钮图标,但是除图标外,还有一堆文字,看着不美观。于是,我再对代码进行修理,最终得到如下代码,其效果见本文标题下面:



 function ShareCode(server_url, server_icon_url,text){
var title = encodeURIComponent(document.title.substring(0,76));
var url = encodeURIComponent(location.href);
server_url = server_url.replace("{title}",title);
server_url = server_url.replace("{url}",url);

return "<a href=\"javascript:window.open(\'"
+ server_url
+"'); void 0\" title =\"" + text + "\"><IMG alt="
+ text + " src=\""
+ server_icon_url
+ "\"><\/a>"
}
function WriteSNS()
{
document.writeln(ShareCode("http://share.renren.com/share/buttonshare.do?title={title}&link={url}",
"http://s.xnimg.cn/favicon-rr.ico?ver=2",
"Share to Renren"));

document.writeln(ShareCode("http://www.kaixin001.com/repaste/share.php?rtitle={title}&rurl={url}",
"http://www.kaixin001.com/favicon.ico",
"Share to Kaixin"));

document.writeln(ShareCode("http://v.t.sina.com.cn/share/share.php?title={title}&url={url}",
"http://t.sina.com.cn/favicon.ico",
"Share to SinaMicroblog"));

document.writeln(ShareCode("http://www.douban.com/recommend/?url={url}&title={title}",
"http://t.douban.com/favicon.ico",
"Recomend to Douban"));

document.writeln(ShareCode("http://apps.hi.baidu.com/share/?title={title}&url={url}",
"http://www.baidu.com/favicon.ico",
"Forword to BaiduHi"));


}


相比于原作者的代码,我做了以下改动:第一,设置分享打开页面为浏览器默认设置,而不会跳转到新的窗口;第二,对打开参数进行精简;第三,删除了按钮旁的文字进行,更加美观;第四,函数不是封装成div,这样可以更方便的贴到某一行内。



使用方法也很简单,在页面的任何一处假如js引用代码:



 <script type="text/javascript" src="/share.js"></script> 


在需要插入分享按钮的地方加入js函数调用代码即可:



 <script type="text/javascript">WriteSNS();</script>