从WordPress迁移到Hugo完整过程

219次阅读
没有评论

共计 2724 个字符,预计需要花费 7 分钟才能阅读完成。

背景

为什么抛弃 WordPress?

  1. 网站访问量极少,大部分是自用记录些笔记
  2. 不想再买服务器了

为什么选择 Hugo?

  1. Hugo 编译速度贼快
  2. 有一款喜欢的 Hugo 主题

从 WordPress 导出数据

在 WordPress 仪表盘中,[工具] -> [导出] -> [下载导出的文件]。

搭建临时 Hexo 博客

安装 node.js

node.js 官方下载地址:https://nodejs.org/en/

设置 npm 淘宝镜像站:npm config set registry https://registry.npm.taobao.org

切回官方镜像用:npm config set registry http://www.npmjs.org

安装 Git

Git 官方下载地址:https://git-scm.com/downloads

安装 Hexo

运行下列命令安装 Hexo:

npm install -g hexo

新建一个 Hexo 博客:

hexo init <folder>
cd <folder>
npm install

再安装 hexo-migrator-wordpress 插件:

npm install hexo-migrator-wordpress --save

插件安装完成后,执行下列命令来迁移所有文章,source 可以是 WordPress 导出的文件路径或网址。

hexo migrate wordpress <source>

文章很快就能出现在 source/_posts 目录下,转换效果非常棒。

修改文章属性

刚迁移完的每篇文章都有 yaml 配置,像这样:

title: 3G 壁纸
tags:
  - 网站
id: '73'
categories:
  - - 软件
comments: false
date: 2022-01-10 22:05:31

直接丢到 Hugo 的 posts 文件夹里也没什么问题,但最好还是改一下。比如改成这样:

author: abee
categories:
- 软件
date: 2022-01-10 22:05:31
draft: false
title: 3G 壁纸 

可以使用下面的 Python 脚本来实现:

# pip install pyyaml 安装 yaml 包
import os
import yaml
import re

path = "C:\\Users\\ec\\Desktop\\_posts"
cnt = 0

for file in os.listdir(path):
    if file[-3:] == ".md":  # 判断是否为 md 文件
        cnt += 1
        print(cnt, file)

        with open(os.path.join(path, file), "r+", encoding='utf-8') as f:
            all_text = f.read()

        yaml_text = re.findall("---([\s\S]*?)---", all_text)[0]  # 找到 yaml 字符串
        old_dic = yaml.safe_load(yaml_text)  # 用 yaml 库转字典对象

        new_dic = {"title": old_dic["title"],
            "author": "abee",
            "draft": False,
            "categories": old_dic['categories'][0],
            "tags": old_dic['tags'],
            "date": old_dic["date"]
        }

        yaml_res = yaml.safe_dump(new_dic, allow_unicode=True)  # 用 yaml 库将字典解析为 yaml 字符串
        res = all_text.replace(yaml_text, "\n"+yaml_res)

        post_id = old_dic["id"]
        os.mkdir(os.path.join(path, post_id))
        path_md = os.path.join(path, post_id)
        with open(os.path.join(path_md, 'index.md'), "w+", encoding='utf-8') as f:
            f.write(res)

安装 Hugo

Hugo 有两个版本:hugo 和 hugo_extended,怎么选?建议安装 hugo_extended,很多功能,包括一些主题,都需要 hugo_extended 的支持。

Hugo 官方下载地址:https://github.com/gohugoio/hugo/releases

创建目录

例如,在 D 盘创建文件夹 Hugo,在文件夹 Hugo 下创建文件夹 bin 和 sites。

Hugo 下载后,解压,将 hugo.exe 文件放到 D:\Hugo\bin 目录下。

配置环境变量

将 Hugo 添加到 Windows 的环境变量 PATH 中。

[此电脑] -> [属性] -> [高级系统设置] -> [环境变量] -> [系统变量] -> [Path] -> [编辑] -> [新建],把 D:\Hugo\bin 加入环境变量。

打开 cmd,输入 hugo version,查看 hugo 是否添加成功。

搭建博客

cd Hugo\sites
hugo new site myblog

创建第一篇文章

cd myblog
hugo new posts/first_post.md

启动博客

hugo serve -e production -D

-D 表示将草稿文件也进行渲染。
-e production,hugo serve 默认运行环境是 development,而 hugo 默认运行环境是 production。

添加主题

hugo 没有自带主题,所以需要自己导入主题文件。

官网主题库:https://themes.gohugo.io/

导入主题可以用 git clone 的方式,也可以到相应主题的 github 中下载 zip 文件然后解压到自己博客的 themes 文件夹中。

Hugo 全局配置文件支持三种格式:toml,yaml,yml。这个配置文件可以直接从主题文件中的 exampleSite 里 copy 到博客文件夹下,然后进行修改。

构建网站

hugo

默认会在站点根目录的 public/ 目录下生成对应的静态页面,可通过在命令行指定 - d 或者 –destination 参数来改变静态页面的存放路径,也可以通过在配置文件中设置 publishDir 来指定。

public 上传到 github

git init
git add . # 添加当前目录下的所有文件到暂存区
git commit -m "add post" # 生成版本
git branch -M main
git remote add origin git@github.com: 用户名 / 仓库
git push -u origin main

正文完
 0
阿伯手记
版权声明:本站原创文章,由 阿伯手记 于2023-10-07发表,共计2724字。
转载说明:本站原创内容,除特殊说明外,均基于 CC BY-NC-SA 4.0 协议发布,转载须注明出处与链接。
评论(没有评论)
验证码

阿伯手记

阿伯手记
阿伯手记
喜欢编程,头发渐稀;成长路上,宝藏满地
文章数
766
评论数
204
阅读量
398140
今日一言
-「
热门文章
职场救急!AI请假话术生成器:1秒定制高通过率理由

职场救急!AI请假话术生成器:1秒定制高通过率理由

超级借口 不好开口?借口交给我!智能生成工作请假、上学请假、饭局爽约、约会拒绝、邀约推辞、万能借口等各种借口理...
夸克网盘快传助手提高非VIP下载速度

夸克网盘快传助手提高非VIP下载速度

夸克网盘限速这个大家都知道,不开会员差不多限速在几百 K。那有没有办法在合法合规途径加速下载夸克网盘呢?这里推...
国内已部署DeepSeek模型第三方列表 免费满血版联网搜索

国内已部署DeepSeek模型第三方列表 免费满血版联网搜索

本文收集了目前国内已部署 DeepSeek 模型的第三方列表,个个都是免费不限次数的满血版 DeepSeek,...
巴别英语:用美剧和TED演讲轻松提升英语听力与口语

巴别英语:用美剧和TED演讲轻松提升英语听力与口语

还在为枯燥的英语学习而烦恼吗?巴别英语通过创新的美剧学习模式,让英语学习变得生动有趣。平台提供海量美剧和 TE...
TVAPP:开源电视盒子资源库,一键打造家庭影院

TVAPP:开源电视盒子资源库,一键打造家庭影院

导语 TVAPP 是一个专为 Android TV 电视盒子用户打造的开源影音资源库,集成了影视、直播、游戏等...
2025年12月 每日精选

2025年12月 每日精选

关于每日精选栏目 发现一些不错的资源,点击 这里 快速投稿。 12 月 26 日 .ax 顶级域 目前全球唯一...
Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 是一款在线中文姓名生成器,可在几秒内生成符合个人需求的中文名字。...
最新评论
15220202929 15220202929 怎么用
八对 八对 麻烦大佬更新下【堆新】的友链站名:八对星星描述:极目星视穹苍无界•足履行者大地有疆链接:https://8dui.com图标:https://cf.8dui.com/logo.webp横标:https://cf.8dui.com/logo-w.webp订阅:https://8dui.com/rss.xml
三毛笔记 三毛笔记 已添加
DUINEW DUINEW 已添加贵站,期待贵站友链~博客名称:堆新博客地址:https://duinew.com/博客描述:堆新堆新,引力向新!——堆新(DUINEW)博客头像:https://d.duinew.com/logo.webp横版头像:https://d.duinew.com/logo-w.webp博客订阅:https://duinew.com/rss.xml
hedp hedp 没看懂
bingo bingo 直接生成就可以啦,也可以添加一些选项
满心 满心 申请更新下友联信息,原名:满心记,现名:周天记原域名:qq.mba,现域名:zhoutian.com描述:我在人间混日子
开业吉日 开业吉日 没看明白这个怎么用
开业吉日 开业吉日 beddystories 这个网站太赞了,收藏
热评文章
夸克网盘快传助手提高非VIP下载速度

夸克网盘快传助手提高非VIP下载速度

夸克网盘限速这个大家都知道,不开会员差不多限速在几百 K。那有没有办法在合法合规途径加速下载夸克网盘呢?这里推...
国内已部署DeepSeek模型第三方列表 免费满血版联网搜索

国内已部署DeepSeek模型第三方列表 免费满血版联网搜索

本文收集了目前国内已部署 DeepSeek 模型的第三方列表,个个都是免费不限次数的满血版 DeepSeek,...
清华大学官方免费DeepSeek教程

清华大学官方免费DeepSeek教程

AI 领域近期最引人注目的焦点当属 DeepSeek,这款由中国创新企业深度求索研发的人工智能工具,正以开放源...
Short-Link 免费开源短网址程序,基于Fastify、Vercel和Supabase构建

Short-Link 免费开源短网址程序,基于Fastify、Vercel和Supabase构建

Short-Link 是一款基于 Fastify、Vercel 和 Supabase 构建的 URL 缩短服务...
Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 在线中文姓名生成器

Chinese Name Generator 是一款在线中文姓名生成器,可在几秒内生成符合个人需求的中文名字。...
BeddyStories 完全免费儿童睡前故事库,让孩子随时随地入睡更轻松

BeddyStories 完全免费儿童睡前故事库,让孩子随时随地入睡更轻松

BeddyStories 是一个致力于为儿童提供优质睡前故事的在线平台,用户可以在这里找到来自世界各地的经典故...
WebRTC Screen Mirror:基于浏览器免费开源投屏神器,可实现低延迟、跨平台屏幕共享

WebRTC Screen Mirror:基于浏览器免费开源投屏神器,可实现低延迟、跨平台屏幕共享

WebRTC Screen Mirror 是一款基于 WebRTC 技术的在线屏幕共享工具,它利用浏览器内置的...