为什么选择静态博客
这个博客主要用于长期整理 Linux 内核、PCIe 驱动、嵌入式 Linux、计算机网络、硬件设计及个人工程项目。内容以文字、代码与问题分析为主,不需要在每次阅读时动态生成页面。
因此,HTZone 选择静态博客:文章保存在普通文件中,页面在发布前生成。这样既方便用 Git 比较和追踪修改,也能减少运行时需要维护的组件。
这不意味着静态网站没有维护工作。内容备份、软件更新、访问日志、域名、证书和服务器配置依然需要认真处理;只是本项目不需要为了展示文章而运行数据库和动态文章后台。
Hugo 与 PaperMod 各自负责什么
本站使用 Hugo Extended + PaperMod,文章以 Markdown 编写。
- Markdown 保存正文,使用标题、列表、链接和代码块描述内容结构。
- Hugo 读取正文、Front Matter 和站点配置,生成页面及相关资源。
- PaperMod 提供页面模板、排版、导航、主题切换等基础展示能力。
- 站点配置与扩展文件 负责本站文案、菜单、字体、首页介绍和少量展示调整。
PaperMod 以 Git Submodule 引入,固定 Commit 为 969bebdc5600a1639158b5ef4eff9cf6cbb511ac。主题源码保持原样;定制放在项目自己的 hugo.toml、layouts/、assets/ 和 i18n/ 中。
Markdown 如何变成 HTML
每篇文章先通过 Front Matter 定义标题、日期和分类,再用 Markdown 编写正文。例如:
title = "一篇技术笔记"
draft = true
categories = ["开发记录"]
这只是 Front Matter 字段示意,实际 Markdown 文件还需要 TOML 的 +++ 分隔符。
Hugo 在构建时将 Markdown 转换为 HTML 内容,再交给主题模板组合成完整页面,同时整理 CSS、JavaScript、RSS 与搜索 JSON。本站的静态构建命令是:
cd /srv/htzone-blog
hugo --minify
生成的文件位于 public/。浏览器将来读取的是构建产物,文章的原始 Markdown、Git 历史和主题模板用于维护与构建,不需要作为站点文件提供给访客。
Git、Hugo、Nginx 的不同职责
| 组件 | 在本站中的职责 |
|---|---|
| Git | 记录源码与配置修改,固定主题版本,方便比较和回溯 |
| Hugo | 在构建阶段将文章与模板转换成静态产物 |
| Nginx | 计划在后续部署阶段接收 HTTP 请求,将静态文件发送给浏览器 |
| 浏览器 | 解析 HTML、应用 CSS,并执行页面需要的 JavaScript |
Git 提交不会自动让网站上线,Hugo 构建也不等同于 Nginx 已经提供服务。这几个环节需要分别配置和验证。
当前实际完成的工作
任务 01 已完成目标阿里云服务器的环境检查,并验证专用 SSH 密钥登录。系统为 Ubuntu 24.04.5 LTS,架构为 x86_64,具备 2 vCPU;检查时系统可见内存约 1.58 GiB、根分区可用空间约 35 GiB。这些数字是当时的检查快照,不是性能测试结果。
任务 02 已完成:
- 从 Hugo 官方 Release 安装 Hugo Extended 0.168.0,安装包通过官方 SHA-256 校验。
- 在
/srv/htzone-blog初始化 Hugo 与 Git,默认分支为main。 - 引入并固定 PaperMod Submodule。
- 建立首页、技术文章、工程项目、关于、分类与搜索内容结构。
- 构建并校验首页、文章、内部链接、RSS 和搜索索引。
本次内容完善进一步调整了首页介绍和技术方向入口,补充了静态网站原理文章,并为未来的工程项目准备默认不发布的草稿模板。
仍待完成的部署环节
截至本次内容整理,Nginx 和 Certbot 尚未安装,HTTPS 证书尚未申请,网站尚未配置为公网服务。后续需要核验域名解析、备案状态及公网访问规则,再逐步处理 Nginx、HTTPS 和发布流程。
这些步骤是后续计划,不能将本次静态构建成功理解为已经完成正式上线。
阅读与参考
如果想了解构建产物如何被浏览器读取,可以继续阅读从 Markdown 到浏览器:静态网站是如何工作的。也可以按分类浏览,或使用搜索与 RSS。