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

相关推荐
偶尔上线经常挺尸5 小时前
《100个“反常识”经验15:Nginx 502排查:从应用到内核》
运维·nginx·性能调优·反向代理·502错误·http排错
yc_12246 小时前
用 Visual Studio 远程调试 Linux:从零到流畅的完整指南
linux·ide·visual studio
思茂信息6 小时前
CST软件如何进行参数化扫描?
运维·开发语言·javascript·windows·ecmascript·软件工程·软件需求
计算机安禾6 小时前
【Linux从入门到精通】第31篇:防火墙漫谈——iptables与firewalld防护指南
linux·运维·php
下一页盛夏花开7 小时前
ubuntu 20中安装QT以后出现红色空心断点
linux·运维·ubuntu
sanshanjianke7 小时前
Thunderobot 911ME 笔记本 Linux 风扇控制研究
linux
sxgzzn9 小时前
光伏数智化综合平台:让光伏电站运维更智能、更高效
运维
fengyehongWorld10 小时前
TeraTerm ttl脚本登录wsl
linux·teraterm
乌托邦的逃亡者11 小时前
Linux中如何检测IP冲突
linux·运维·tcp/ip