migrating-from-wikidot-to-jekyll
把Wikidot的Blog数据迁移到Jekyll
PS. 为什么把博客从Wikidot迁移出来? 为什么选择Github Pages + Jekyll 而不是Farbox或者其他? 这个先沉淀下,同时也用段时间验证下,过段时间再和大家分享。
看了下,有位哥们脚本实现了:wikidot-to-markdown,但是他只是对格式的转换,这个代码我可以复用,但是……
前提是我得先有数据给他转换,从上面介绍Wikidot直接提供给我们的数据是不够的
我的目的是放到Jekyll上,也就是说我的文件头需要加上Jakyll的配置,这个我还得另外写个脚本来做
需求描述变成了:
1. 从Wikidot拿到所有文章的索引信息(Title,Url,tags,Date),和backup中的文件关联起来;
2. 再处理下backup中的文件,加上文件头,把正文从Wiki转成Mardown
到此,问题分析的七七八八了,结论是我要写个脚本来做这个事情。
没能拿到全的RSS,但是全的索引还是可以拿到的,但是需要再wikidot下页面单独来做这个事情,比如我的:
这个Wikidot页面的源码如下:
[[module ListPages category="_default" perPage="500" date="@URL" separate="false" prependLine="||~ Page||~ Date created||~ Tags ||"]]
|| %%linked_title%% || %%date%% || %%tags%% ||
[[/module]]
解压后的文件路径类似:
~/backup_linyehui_20140705_1759UTC/source/system_recent-changes.txt
有了上面两步,我就能拿到全索引,并用索引把backup目录下的文件关联起来了 对脚本感兴趣的可以直接看代码:
https://github.com/linyehui/migrating-from-wikidot-to-jekyll
git clone 得到两个脚本文件
git clone https://github.com/linyehui/migrating-from-wikidot-to-jekyll
从Wikidot 管理后台备份Blog,并下载下来,解压后得到source目录,放到脚本下的wikidot根目录(是的,我的脚本不对文件进行处理)
新建一个Wikidot页面,用于生成所有文章的RSS(我这文章数上限设置的是500,你可以自己调整),生成的RSS保存成rss.html,把文件复制到脚本下的wikidot根目录
我新建了这个页面:
页面代码如下(点击Edit就能编辑):
[[module ListPages category="_default" perPage="500" date="@URL" separate="false" prependLine="||~ Page||~ Date created||~ Tags ||"]]
|| %%linked_title%% || %%date%% || %%tags%% ||
[[/module]]
现在的脚本目录结构如下:
|----wikidot
| |-convert.py
| |-wikidot.py
| |-rss.html
| |-source
| |- xxxx-xxx1.txt
| |- xxxx-xxx2.txt
执行convert.py,不带参数会使用默认的目录结构进行执行,执行后你就能再脚本旁边的./jekyll目录下得到你所需要的转换后的.markdown文件们
把.markdown文件全选,复制到github pages对应git目录下的_post目录,git commit,git push
迁移工作搞定。