迁移百度空间到Hugo

目录

2012年开始,我的个人博客由百度空间迁移到SAE。因为百度空间当时还能访问,转向到Wordpress时,就没有迁移百度空间上的文章。随着百度空间在2015年,所有文章以HTML格式保存在百度云中。今年从Wordpress迁移到Hugo,正好可以将百度空间的文章也迁移到Hugo。

任务实际上就是将HTML博客转成Hugo文章。需要处理两个部分:

  1. 将HTML转成Markdown,使用html2txt实现
  2. 增加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)

完整示例请参考

perillaroc/convert_baidu_blog_to_hugo.py