Hugo+Github Pages搭建静态网站作为个人博客(2)
上一篇博客中重点于Hugo的使用,这一篇着重于以Stack主题为例进行博客撰写。
Stack is a simple card-style Hugo theme designed for Bloggers. Here are some of the features: Stack 是一个简单的卡片式 Hugo 主题,专为 Blogger 设计。以下是一些功能:
- Responsive images support 响应式图像支持
- Lazy load images 延迟加载图像
- Dark mode 深色模式
- Local search 本地搜索
- PhotoSwipe integration 照片滑动 集成
- Archive page template 存档页面模板
- Full native JavaScript, no jQuery or any other frameworks are used 完全原生 JavaScript,不使用 jQuery 或任何其他框架
- No CSS framework, keep it simple and minimal 没有 CSS 框架,保持简单和最小化
- Properly cropped thumbnails 正确裁剪的缩略图
- Subsection support 分段支持
- Table of contents 目录
Hugo网站文件结构
网站根目录下面的文件夹目录树一般如下所示:
| |
主要修改主题内和网站内的config.yaml,具体含义可见
官方手册
。
此外,上面没有显示的是网站根目录下的private文件夹和public文件夹。
public文件夹会在运行hugo -D部署网站时生成,是暴露给外界的文件夹,网站上页面的HTML文件都会由Hugo生成并放在public文件夹下。public文件夹内不要放置任何包含用户信息的敏感文件!private文件夹可以由用户创建,这里我们用它来存放网站的SSL证书。
关于网站根目录下各文件夹,更详细的说明可参见Hugo 官方文档 。
配置文件夹config
Hugo支持两种配置方式:
- 一种是直接在网站根目录的
.config文件中配置 - 另一种是在网站根目录下创建
config文件夹,配置放在config文件夹内
第二种配置方式支持将不同的配置项分开放在不同的文件中,相比第一种配置方式可以让配置项的条理更加清晰,因此我们这里选择第二种配置方式。参考配置目录结构如下所示:
关于Hugo的配置,更详细的说明可参考 官方文档 。
[附录1]主题内config.yaml各参数简明含义
Module (模块设置)
hugoVersion: 定义Hugo版本要求。
extended: 设置为true表示需要Hugo的扩展版本(支持SCSS和其他高级功能)。min: 需要的最低Hugo版本为0.87.0。
Params (参数设置)
mainSections: 定义主要的内容部分,这里是post,也就是文章部分。featuredImageField: 文章中用于展示特色图片的字段名称,默认为image。rssFullContent: RSS中是否提供文章的完整内容,true表示是。
Favicon (网站图标)
favicon: 设置网站的favicon路径,如果有一个favicon.ico,可以设置为/favicon.ico。
Footer (页脚)
since: 页脚中显示的年份(通常是网站开始的年份),这个字段为空,可以填入年份,如“2024”。customText: 页脚自定义文本,当前为空,可以填写你想显示的内容。
Date Format (日期格式)
published: 发布日期的显示格式,这里格式为Jan 02, 2006。lastUpdated: 最后更新日期的显示格式,这里包括日期和时间。
Sidebar (侧边栏)
compact: 是否使用紧凑布局,false表示不使用紧凑布局。emoji: 表情符号,可以为空或者自定义一个表情符号显示在侧边栏上。subtitle: 侧边栏的副标题,当前为空,可以添加文字。avatar: 头像设置。
enabled: 是否显示头像,true表示显示。local:true表示头像从本地文件加载。src: 头像的路径为img/avatar.png。
Article (文章设置)
headingAnchor: 设置是否在标题旁边显示锚点,false表示不显示。math: 是否支持数学公式,false表示不支持。toc: 目录设置,true表示显示文章目录。readingTime: 是否显示阅读时间,true表示显示。license: 文章版权设置。
enabled: 是否启用版权声明,false表示不启用。default: 默认的版权声明,当前设置为“Creative Commons BY-NC-SA 4.0”,但没有启用。
Comments (评论系统)
enabled: 是否启用评论,false表示不启用。provider: 默认评论提供者是disqus。- 配置了多个评论系统,包括
disqusjs,utterances,beaudar,remark42,vssue等。每个评论系统都有自己的设置项,例如Disqus、GitHub Issues(通过utterances)、Beaudar等。这些可以根据需要选择,并填入相关参数,如API密钥、仓库名称等。
Widgets (小工具)
homepage: 主页上的小工具列表,当前为空,也就是说默认没有显示任何小工具。page: 页面上的小工具列表,当前为空。
OpenGraph (社交分享卡片)
twitter: 配置Twitter分享卡片。
site: 填写你的Twitter用户名。card: 卡片类型,这里是summary_large_image,表示大图片的分享卡片。
DefaultImage (默认图片)
opengraph: 配置默认图片的设置。
enabled: 是否启用OpenGraph图片,false表示不启用。local: 图片是否为本地图片,false表示不是本地图片。src: 默认图片的路径。
ColorScheme (颜色主题)
toggle: 是否允许用户切换颜色主题(比如暗黑模式),true表示启用切换功能。default: 默认颜色主题,这里是auto,表示根据用户系统的设置自动切换。
ImageProcessing (图片处理)
cover: 是否启用封面图片处理,true表示启用。content: 是否启用内容图片处理,true表示启用。
[附录2]官方示例提供的根目录内hugo.yaml各参数简明含义
基本信息
baseurl: 网站的基础URL。languageCode: 默认语言代码,例如en-us表示英语(美国)。theme: 使用的主题,在这里是hugo-theme-stack。title: 网站的标题。copyright: 网站的版权声明。
语言支持
DefaultContentLanguage: 设置默认的语言为英语(en)。hasCJKLanguage: 如果网站主要使用中文、日文或韩文等CJK(中日韩)语言,这个值应设为true,用于正确处理文章摘要和字数统计。languages: 你可以为网站配置多语言支持。在这个例子中,网站支持英语(en)、中文简体(zh-cn)和阿拉伯语(ar)。每种语言可以有独立的标题和描述。
服务设置
disqus: 用于网站评论的服务,Disqus是一个流行的评论系统。如果要启用评论,需要更改为你自己的网站短名称。googleAnalytics: 如果你使用Google Analytics(谷歌分析)进行流量统计,可以在这里填入你的追踪ID。
分页和永久链接
pagination: 设置分页大小为3,也就是说每页显示3篇文章。permalinks: 自定义文章和页面的永久链接结构。例如,文章会显示为/p/:slug/。
页面参数
params: 包含各种网站布局、显示和功能的配置。比如文章是否显示数学公式、阅读时间、许可信息等。
评论功能
comments: 你可以选择不同的评论提供者(如Disqus、Utterances、Gitalk等),通过填入相关的配置信息来启用评论。
菜单和小工具
menu: 自定义网站菜单和社交链接。这里包括GitHub和Twitter的社交图标链接。widgets: 配置主页和页面上的小工具,例如搜索栏、文章归档、标签云等。
其他配置
opengraph: 配置网站在社交平台(如Twitter)的分享卡片。colorScheme: 配置网站的颜色模式(自动、浅色或深色)。imageProcessing: 图片处理选项,例如封面图片和内容图片。
相关内容
related: 配置文章之间的相关性推荐,基于标签和分类等条件。
Markdown 渲染
markup: 配置如何处理Markdown内容,例如表格、代码高亮、目录等。
两篇附录仅供参考,可能有错误