迁移到Github Page后,一直没有把之前文章的存档迁移到现在的平台。今天尝试写了一个python脚本批量转换了一下,遇到了一些问题,在此记录一下
首先由于之前是突然被删库的,很多文章都没来得及保存,这个找不回来了(sigh)。
然后是很多文章都没有保存时间,但是由于我保存的是独立文件的MarkDown档案,只需要使用python获取每个文件的创建时间就好了,然后hexo的标题机制也和之前的完全不一样,导致只能用一些手段把文章开头的MarkDown大标题去掉,直接找到第一组‘=’、‘-’这种特殊符号段删掉就好了,但是一开始对于一些没有标题的文章也会误伤,非常Hack。。。。
最后就是文章图片缺失标签缺失,分割缺失,这个就不是能够自动化解决的问题了,坑得一点点手动补上。
最后附上迁移的代码,以作备忘
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
import time import datetime import os import re
def main(): for filename in os.listdir('./'): title, extension = os.path.splitext(filename) if extension not in ['.md', '.MD']: continue mtime = os.path.getmtime(filename) datestr = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(mtime)) print(datestr) with open(filename, 'r+') as fd: cont = fd.read() fd.seek(0, 0) cont = cont.split('===', 1)[-1] cont = cont.strip('=') temp = cont.split('---', 1) if len(temp) > 1 and len(temp[0]) < 50: cont = temp[-1] cont = cont.strip('-') cont = cont.strip() cont = "---\ntitle: %s\ndate: %s\n---\n"%(title, datestr) + cont fd.write(cont) main()
|