为什么选择静态博客

这个博客主要用于长期整理 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。