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 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道2 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达4 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
且从容.5 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落7 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨7 小时前
WSL2的安装与使用
linux·wsl
微小的鱼7 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng7 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
Android系统攻城狮8 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
上火的金鱼妹8 小时前
k8s生产实际问题排查(网关,数据库读写等)
运维·服务器