78、【Ubuntu】【Hugo】搭建私人博客:文章分类

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

背景

上篇 blog
【Ubuntu】【Hugo】搭建私人博客:Detached HEAD

分析了 Git 的 Detached HEAD 状态,下面继续

搭建私人博客

上篇 blog 已经分析了,由于当前 git checkout v7.0 是只读操作,所以此时直接在终端输入

bash 复制代码
git checkout master

切回主分支即可

OK,然后接着在终端输入

bash 复制代码
hugo server -D

启动博客站点服务,可以看到启动成功

OK,现在使用上最新版本的 Hugo 和 PaperMod 了,下面看下效果

这里有个特点,就是所有文章都集中在了首页,不利于翻阅查找,下面分析 Hugo 的文章分类功能和配置

首先,PaperMod 默认会把 mainSections 中的内容在首页展示,可以通过清空或重新设置 mainSections 来控制首页内容,如果不想让任何文章出现在首页,可以设置

bash 复制代码
[params]
   mainSections = []

这样首页就不会显示任何 section 的文章,或者如果仍希望首页显示某些特定类型,比如公告,或经过筛选的精华文章,可以只保留那个目录

bash 复制代码
[params]
   mainSections = ["announcements"]

此时只会显示 content/announcements/ 下的文章,注意,这里的 mainSections 对应的是 content/ 下的目录名

Hugo 默认启用 tagscategories 两种 taxonomy(分类法的意思)

在 Hugo 以及大多数博客系统中,tags 标签和 categories 分类虽然看起来相似,但它们在语义,用途和组织方式上有明显区别

特性 Categories 分类 Tags 标签
层级 通常单层或少量层级 扁平,无层级,可以自由组合
数量 每篇文章 1~3个,不宜太多 每篇文章多个(5~10个都常见)
目的 表示这篇文章属于哪个领域 回答这篇文章提到了那些关键词
稳定性 相对固定,长期不变 可灵活增减,关键词随内容变换
用户导航 适合做主菜单 适合做辅助检索

OK,可以看到,Categories 属于大类,用于宽泛的主体划分,而 Tags 是细节,用于描述文章的具体特征或关键词,如果不想维护太多维度,只用 Categories,完全不用 Tags,也是可以的,本篇主要讲 Categories 分类

hugo.toml 配置文件中,增加如下内容

bash 复制代码
[[menu.main]]
  name = "全部分类"
  url = "/categories/"
  weight = 90

这段配置可以在 Hugo 中定义博客顶部导航的菜单栏,有几个关键点:

  • [[menu.main]]:表示给一个叫做 main 的菜单栏(一般就是顶部主菜单)添加一个新的菜单项,这里 [[...]] 是 TOML 语法中的数组表,每写一次就添加一个菜单按钮,PaperMod 默认使用 menu.main 作为顶部导航栏的数据源
  • name = "全部分类":菜单上显式的文字,用户在网页顶部看到的就是全部分类
  • url = "/categories/":点击这个菜单项之后,要跳转到的目标地址,/categories/ 是 Hugo 自动生成的分类总览页面路径
  • weight = 90:控制菜单项的显式顺序,数值越小,越靠左,数值越大,越靠右

OK,做完上面的配置后,首页效果如下

首页变干净了,右上角多了一个全部分类的菜单项

OK,接着在 index.md 文章的头部加上 categories = ["Ubuntu"] 关键字

最后效果如下,点击进入全部分类,可以看到 Ubuntu 的大类

点击进去,可以看到这个 Categories 分类下的所有文章


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

相关推荐
xuhe27 分钟前
[全流程详细教程]Docker部署ClawBot, 使用GLM4.7, 接入TG Bot实现私人助理. 解决Docker Openclaw Permission Denied问题
linux·docker·ai·github·tldr
Lsir10110_23 分钟前
【Linux】进程信号(下半)
linux·运维·服务器
liuniu081824 分钟前
VMware虚拟机安装ubuntu2022
ubuntu·ros
skywalk816340 分钟前
unbound dns解析出现问题,寻求解决之道
运维·服务器·dns·unbound
酉鬼女又兒41 分钟前
零基础入门Linux指南:每天一个Linux命令_pwd
linux·运维·服务器
云飞云共享云桌面43 分钟前
高性能图形工作站的资源如何共享给10个SolidWorks研发设计用
linux·运维·服务器·前端·网络·数据库·人工智能
skywalk81631 小时前
走近科学:unbound dns域名服务器自己本地解析出现问题,寻求解决之道
运维·服务器·dns·unbound
zl_dfq1 小时前
Linux 之 【多线程】(pthread_xxx、轻量级进程、原生线程库、线程ID、__thread、线程栈、线程与信号、线程与程序替换)
linux
choke2331 小时前
Python 基础语法精讲:数据类型、运算符与输入输出
java·linux·服务器
袁煦丞 cpolar内网穿透实验室1 小时前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar