一个普通技术宅的点点滴滴

0%

老文章迁移

迁移到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
#!/usr/bin/python3

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()