WordPress XML Backup to Markdown
记录把WordPress博客备份XML文件导出成Markdown格式遇到的问题。
使用工具dreikanter/wp2md,
首先,新建virtualenv环境,mkdir wp2md && cd wp2md && virtualenv ENV, 
接下来安装dreikanter/wp2md,
pip install git+https://github.com/dreikanter/wp2md, 
然后运行wp2md,wp2md -d /export/path/ wordpress-dump.xml, 
/export/path/为输出目录,wordpress-dump.xml为WordPress导出文件。
遇到的问题是

定位到文件/home/master/Work/wp2md/ENV/local/lib/python2.7/site-packages/wp2md/wp2md.py
的382行的content = meta.get('description', '') + '\n\n'出错。
因为该XML文件中post的description tag为空,content = meta.get('description', '')
返回的NoneType与字符串'\n\n'进行连接+运算自然会报错。
搜索meta.get可以发现前两处meta.get的用法为meta.get('[tag name]', None),故此处应为typo,
将382行的content = meta.get('description', '') + '\n\n'修改为content = meta.get('description', None) + '\n\n'即可。
一个ugly的解决方法是,既然description为空,那就修改XML文件,强行为<description></description>中加入一个空格。
这样content = meta.get('description', '')可以获得返回值空格字符' ',但这种做法不仅会为post文件Front Matter中description变量引入额外的空格,而且逼格太低。

Hacker的做法是,直接修改程序源码(反正是开源的),修改后的代码部分如下:
382    if not meta.get('description', ''):
383        content = '\n\n'
384    else:
385        content = meta.get('description', '') + '\n\n'
接写来当然是给作者提个pull request啦。
Pull Request已提交。