73、【Ubuntu】【Hugo】搭建私人博客:Hugo&PaperMod 兼容问题

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Ubuntu】【Hugo】搭建私人博客:Git 下载方式对比

分析了用 git submodule 在这种多仓管理中的好处,然后配置了 hugo.toml 文件,并启动 hugo server -D 进行预览,下面继续分析

搭建私人博客

上篇 blog 提到,在终端输入

bash 复制代码
hugo server -D

可以预览博客网站

这里有个 -D 选项说下 ,-D 或 --buildDrafts 选项会让 Hugo 在本地预览时,也构建显示那些被标记为 draft 草稿的文章,在 Hugo 中,每篇文章的前置元数据里可以设置该文章是否为 draft 草稿,比如

如果 draft: true,在默认情况下,Hugo 构建网站时,会主动忽略这篇文章,除非加了 -D 选项,这篇草稿才会被包含进来

OK,输入预览命令之后,发现如下报错

提示 PapermMod 主题应匹配 Hugo v0.146 版本,终端输入

bash 复制代码
hugo version

可以看到 Hugo 版本为 v0.123

这是因为 Hugo 是通过 Ubuntu/Debian 官方仓库安装的,官方仓库更新比较慢,而 PaperMod 主题则是直接克隆了 Github 上的最新版本,所以有兼容性问题,解决有两种方式:

  • Hugo 升级(用 Github 最新版本)
  • PaperMod 降级

这里懒得去升级 Hugo 了,先把 PaperMod 降级用起来,后面再去升级 Hugo

在终端输入

bash 复制代码
cd themes/PaperMod/
git tag

可以看到最新的 tag 是 v8.0,也是当前正在用的

终端输入

bash 复制代码
git checkout v7.0

将 PaperMod 版本降级为 v7.0

回到主仓库,再次输入 hugo server -D,可以看到运行成功

在主仓库输入

bash 复制代码
git status

可以看到主仓库对应的 PaperMod 提交更新了

接着输入

bash 复制代码
git add .
git commit -m "PaperMod switch to v7.0"

将主仓库中 PaperMod 对应的版本切换为 v7.0

输入 git submodule,可以看到主仓库关联的 PaperMod 已经变成了 v7.0

接着在浏览器中输入 localhost:1313,可以看到博客站点已搭建成功

这里 localhost:1313 就是之前在 hugo.toml 配置文件中设置的 baseURL

OK,博客站点搭建成功,下面在里面添加第一篇博客

在 Hugo 项目根目录下,终端输入

bash 复制代码
hugo new posts/first-blog.md

可以创建新文章,对应 URL 路径是 /posts/...,当然也可以用 blog/,articles/ 等目录

可以看到 Hugo 自动创建 content/ 文件夹,并在里面创建 posts/ 路径,其实不管是 content/posts/,还是 content/blog,Hugo 都能正确生成页面,Hugo 不关心目录叫什么,它只按 content/ 下的结构生成网站

PaperMod 主题默认只显示第一次使用 hugo new xxx/blog.md,将 xxx/ 路径下的文章显示在首页,这是 PaperMod 主题的行为,不是 Hugo 的限制,Hugo 本身支持任意内容目录,其设计理念是约定优于配置,不限定死目录名

如果后面想用别的目录名,比如 hugo new yyy/blog.md,此时 PaperMod 主题不会显示 yyy/ 路径下的文章,除非在 hugo.toml 配置文件中显示配置,比如添加参数 mainSections = ["xxx", "yyy"]


OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog

相关推荐
遇见小修修2 小时前
3步解决打印机0x00000709报错 ,广州深圳程序员可自行排查
运维·打印机·维修·打印机报错·打印机运维·打印机故障自查
顺顺 尼2 小时前
linux 进程信号(上)
linux·c++·算法
niuTaylor2 小时前
飞腾 FT-2000/4 Ubuntu 内存卡 / NVMe SSD 系统制作完整指南
linux·服务器·人工智能·驱动开发·单片机
傲世仙尊4 小时前
信号量环形队列与线程池起步-把临界资源拆成很多份
linux
Huangjin007_4 小时前
【Linux 系统篇(二十五)】文件(二) 系统文件I/O详解
linux·运维·服务器
微小冷4 小时前
Mermaid画甘特图
运维·markdown·甘特图·mermaid·时间图
ShineWinsu4 小时前
对于ProtoBuffer:ProtoBuffer的介绍以及安装
linux·网络·google·协议·序列化·反序列化·protobuffer
FlightYe5 小时前
视界原理之2D视频(二):视频文件里有什么
android·linux·网络·c++·ffmpeg·音视频·aac
LBL12205 小时前
内网容器部署FTP日志监控服务
运维·服务器·容器
志栋智能5 小时前
超自动化巡检:驱动持续改进的运维飞轮
运维·自动化