86、【Ubuntu】【Hugo】搭建私人博客:TOC 配置&侧边导航栏

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

背景

上篇 blog
【Ubuntu】【Hugo】搭建私人博客:文章目录(三)

分析了【初始化嵌套 <ul> 结构】中的 <ul><li><ol>bareul 标签,下面继续

搭建私人博客

OK,分析完这些,可以知道,Hugo PaperMod 模板本身已经提供了一套 TOC 机制,下面只要应用即可,打开 hugo.toml 配置文件,加入配置项 ShowToc = true

接着终端输入

bash 复制代码
hugo server

启动 Hugo 博客,可以看到 TOC 效果如下

往下滑之后,右下角有个链接可以快速回到目录上面

OK,这样 PaperMod 主题的 TOC 功能配置完成

接下来,再添加下一个功能【导航栏】

首先,可以看到博客左部的空间是很空旷的

这是因为 PaperMod 主题是基于原版 Paper 主题改进而来的,继承了其干净,简洁,专注内容的设计理念,属于极简主义风格,其页面布局以中间的单栏为主,减少视觉干扰,可以让读者更专注于文章内容本身,尤其适合博客,技术笔记,写作类的网站

当然,文章数量少的时候,这样是没问题的,但当文章数量多到一定程度时,侧边导航栏的作用就会体现出来,可以让用户瞬间能够跳转到下一篇喜欢的文章

首先,PaperMod 主题是没有侧边导航栏的模板的,因为其设计风格就是单栏,为了实现侧边导航栏的目标,开发者可以自定义添加,主要通过

  • 修改 layouts/ (博客目录下,非主题目录)中的模板文件(比如 single.html
  • 使用 Hugo 的 partial 机制引入自定义侧边栏组件
  • 覆盖 CSS 样式,创建侧边导航栏布局

下面将详细介绍下侧边导航栏的设计添加

在介绍侧边导航栏之前,先回顾之前之前在 custom.css 文件中自定义的行内代码颜色更改内容

css 复制代码
/* 强制覆盖所有行内代码样式 */
.post-content code,
main code,
article code {
  color: #d32f2f !important;        /* 红色文字 */
  background-color: #ffebee !important; /* 淡红背景 */
  padding: 0.2em 0.4em !important;
  border-radius: 4px !important;
  font-size: 0.95em !important;
  font-family: "Fira Code", "JetBrains Mono", Consolas, "Courier New", monospace !important;
}

下面先解释完这里的东西再继续,首先是其核心目标,这段 CSS 代码可以强制统一网页中所有的 inline code(行内代码)的显示样式,无论这些代码原本被什么 HTML 元素包裹,是否被其他样式覆盖,这里有几个关键点:

  • 选择器部分.post-content codemain codearticle code 都是选择器,表示选中 class 为 .post-content 容器内的 <code> 标签,以及在 <main><article> 标签内的 <code> 标签,这些一般是博客或文章内容中行内代码容易出现的位置,这里提到的 <code> 标签在 HTML 中用于表示一段计算机代码,当 <code> 不被 <pre> 包裹时,一般就是行内代码
  • color: #d32f2f !important :样式规则,表示文字颜色为深红色 #d32f2f,并用 !important 强制覆盖其他可能得 color 设置
  • background-color: #ffebee !important :背景色设置成非常浅的粉红色 #ffebee,形成高亮效果,同样强制生效
  • padding: 0.2em 0.4em !important:内边距设置成上下 0.2 倍字体高度,左右 0.4 倍,让文字不紧贴边框,更美观
  • border-radius: 4px !important:圆角边框,让背景块看起来更柔和
  • font-size: 0.95em !important:字体略小于正文(95%),避免行内代码显得突兀
  • font-family: "...", monospace !important:使用等款字体(monospace),有限使用现代编程字体,比如 Fira Code,JetBrains,Mono 等,提升代码可读性,如果电脑没有安装这些字体,会依次回退到 Consolas,Courier New,最后用系统默认等宽字体

OK,本篇先到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog
【Ubuntu】【Hugo】搭建私人博客:侧边导航栏(一)

相关推荐
qq_452396232 小时前
第十五篇:《UI自动化中的稳定性优化:解决flaky tests的七种武器》
运维·ui·自动化
j_xxx404_3 小时前
Linux:静态链接与动态链接深度解析
linux·运维·服务器·c++·人工智能
_只道当时是寻常3 小时前
【Codex】Ubuntu 安装 Codex CLI 并解决 Clash 代理与账号认证问题
linux·ubuntu·chatgpt
Elastic 中国社区官方博客4 小时前
Elastic-caveman : 在不损失 Elastic 最佳效果的情况下,将 AI 响应 tokens 减少64%
大数据·运维·数据库·人工智能·elasticsearch·搜索引擎·全文检索
brucelee1864 小时前
Claude Code 安装教程(Windows / Linux / macOS)
linux·windows·macos
jsons15 小时前
给每台虚拟机设置独立控制台密码
linux·运维·服务器
嵌入式×边缘AI:打怪升级日志5 小时前
全志T113 Tina-SDK 配套工具链开发应用(从Makefile到CMake再到Autotools)
linux
嵌入式×边缘AI:打怪升级日志5 小时前
全志T113嵌入式Linux开发环境搭建(VMware + Ubuntu 18.04)详细步骤
linux·ubuntu
云栖梦泽6 小时前
Linux内核与驱动:14.SPI子系统
linux·运维·服务器·c++
福大大架构师每日一题6 小时前
openclaw v2026.4.24 发布:Google Meet 深度集成、DeepSeek V4 上线、浏览器自动化与插件架构全面升级
运维·架构·自动化·openclaw