迁移百度空间到Hugo
目录
2012年开始,我的个人博客由百度空间迁移到SAE。因为百度空间当时还能访问,转向到Wordpress时,就没有迁移百度空间上的文章。随着百度空间在2015年,所有文章以HTML格式保存在百度云中。今年从Wordpress迁移到Hugo,正好可以将百度空间的文章也迁移到Hugo。
任务实际上就是将HTML博客转成Hugo文章。需要处理两个部分:
- 将HTML转成Markdown,使用
html2txt
实现 - 增加Front Matter,使用
python-frontmatter
实现
HTML转成Markdown
读取HTML文件,使用html2text.html2text
库转成Markdown字符串。
import html2text
with open(Path(blog_page_path), encoding='utf-8') as f:
page_html = f.read()
text = html2text.html2text(page_html)
创建Front Matter
从HTML博客文章中提取标题和发布日期,使用frontmatter.Post
创建Front Matter对象,并使用frontmatter.dumps
转成Front Matter字符串。
def get_front_matter(**kwargs):
header = frontmatter.Post(content='')
for key in kwargs:
header[key] = kwargs[key]
return frontmatter.dumps(header)
header = get_front_matter(
title=title,
date=release_time.strftime('%Y-%m-%dT%H:%M:%S%z')
)
组成Hugo文章
将Front Matter和Markdown字符串输出成文件
def write_post(path, header, content):
with open(path, 'w', encoding='utf-8') as f:
f.write(header)
f.write('\n')
f.write(content)
完整示例请参考