博客README.md
📸 主题预览
| 浅色主题 | 深色主题 |
|---|---|
![]() |
![]() |
✨ 特性
🎨 界面与体验
- 自适应主题:支持浅色/深色主题无缝切换。
- 沉浸式阅读:向上滚动自动显示导航栏,阅读进度条与目录联动高亮。
- 自动化目录:文章页基于
h2/h3标签自动生成侧边栏目录。 - 多媒体增强:内置图片懒加载及点击放大功能。
📝 写作与内容
- 纯粹的 Markdown:使用带有 YAML Front Matter 的 Markdown 文件作为文章数据源。
- 全自动化生成:自动生成首页、标签页、分类页、归档页及文章详情页。
- 扩展语法支持:内置 Callout 提示块语法(如
[!NOTE],[!TIP]等)。
🚀 构建与部署
- CI/CD 集成:支持通过 GitHub Actions 自动构建并部署至
gh-pages分支。 - SEO 友好:基于
config/site.php自动生成sitemap.xml。 - 构建日志:构建过程会自动输出详细日志至
logs/build.log。
🧩 扩展支持
- 代码高亮:集成 Prism 代码高亮引擎。
- 评论系统:原生支持 Giscus 评论系统接入。
🚀 快速开始
1. 环境准备
确保您的本地环境已安装以下组件:
- PHP ≥ 7.4
- Composer
- Git
安装 PHP、Composer、git:
windows
# windows powershell,管理员权限运行
# 过程中会提示是否修改执行策略,输入 Y 确认。
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
scoop install php composer git
MacOS
# macOS
brew install php composer git
Ubuntu/Debian
# Ubuntu/Debian
sudo apt-get install php composer git
2. 获取项目与安装依赖
git clone https://hk.gh-proxy.org/https://github.com/Apursuit/the0n3-blog-template.git
cd the0n3-blog-template
composer 依赖安装:
composer install
3. 开始写作
运行以下命令快速生成新文章模板:
php main.php new "文章标题"
这会打印出一个包含 Front Matter 的 Markdown 模板,你可以手动在 posts/ 下创建一个新的 Markdown 文件,把生成的模板内容复制进去
注意,--- 分隔符必须顶格、并且必须出现在文件开头
4. 构建博客
书写完成后,执行构建命令生成静态文件:
php main.php build
构建流程: 清空 dist/ ➔ 资源映射 ➔ 解析 Markdown ➔ 校验数据 ➔ 构建数据索引 ➔ 渲染页面。
完成后,使用 PHP 内置服务器进行本地服务预览:
php -S localhost:8000 -t dist/
访问 http://localhost:8000 即可看到博客首页,至此,你已经成功搭建了自己的博客!后续在 posts/ 目录下添加 Markdown 文章,重复构建流程即可更新博客内容。
如果要让其他人可以看到你的博客,可以部署在 github pages,把 dist/ 目录下的所有文件推送到 gh-pages 分支即可。
🌐 部署指南 (GitHub Pages)
本模板已配置好完整的自动化部署流程。当您将本地更新推送到 GitHub 仓库时,GitHub Action 会自动触发构建流程,并将生成的静态文件推送到 gh-pages 分支,实现自动部署。
你的Github 仓库名需要设置为 username.github.io(其中 username 替换为你的 GitHub 用户名),这样 GitHub Pages 才能正确识别并部署你的博客。
权限配置步骤:
在 GitHub 仓库页面,进入 Settings ➔ Actions ➔ General。
向下滚动至 Workflow permissions 部分。
选择 Read and write permissions 并保存。

⚙️ 进阶配置
所有站点核心配置均位于 config/site.php。您可以在其中配置站点的 Title、Author、URL(用于生成 sitemap.xml 的站点根地址)等基础信息。
Giscus 评论系统
默认关闭。如需启用,请在 config/site.php 的 giscus 配置中填入你自己的参数(repo / repo_id / category / category_id)。
重要:不要直接使用他人的配置,否则评论会写入对方仓库。
注意:启用 Giscus 评论系统需要在 GitHub 仓库创建 Discussions,具体步骤参考这篇文章 https://www.lixueduan.com/posts/blog/02-add-giscus-comment/
目录结构
.
├── assets/ # 前端资源(CSS / JS / Prism 代码高亮)
├── config/ # 站点配置目录
├── logs/ # 构建日志目录(默认追加写入,超过14天自动清空重写)
├── posts/ # Markdown 文章源文件(支持子目录嵌套)
├── public/ # 静态资源(构建时会原样拷贝至 dist/ 根目录)
├── images/ # 图片资源(构建时会原样拷贝至 dist/images/)
├── src/ # 核心 PHP 业务逻辑代码
├── templates/ # HTML 页面模板
├── dist/ # 构建后的最终静态站点输出目录(执行 build 后生成)
└── main.php # CLI 工具统一入口文件
文章格式
每篇文章为 Markdown 文件,需包含 YAML Front Matter,例如:
---
title: Hello World
date: 2026-03-20
permalink: /posts/hello-world/
tags:
- 示例
categories:
- 示例
pin: 0
draft: false
sidebar: true
---
文章文件放在 posts/ 下即可(可分子目录)。
Front Matter 字段说明
必需字段(缺失会报错):
- title:文章标题
- date:日期(支持 YYYY-MM-DD 或可被解析的字符串)
- permalink:文章永久链接(例如 /posts/hello-world/)
可选字段(未填写会自动补默认值):
- tags:标签数组,默认 []
- categories:分类数组,默认 [](支持单个字符串)
- pin:置顶优先级,0-3,数字越小优先级越高,默认 0
- draft:是否草稿,默认 false(true 时构建会跳过)
- sidebar:是否显示文章目录侧边栏,默认 true
备注
- 主题与排版变量在 assets/css/site.css 中
- 目录由前端脚本根据 h2/h3 生成
- 阅读进度条:assets/js/readingProgress.js + assets/css/reading-progress.css
- 图片增强:assets/js/imageEnhance.js + assets/css/image-enhance.css
- 导航栏自动显示:assets/js/navReveal.js + assets/css/nav-reveal.css
- Callout 支持由后处理完成(src/Markdown.php)
- 构建日志写入 logs/build.log(默认追加写入;超过 14 天会自动清空重写;每次构建会写入分隔线)
- main.php 固定时区为 Asia/Shanghai,保证日志与日期输出为北京时间
- permalink 会做冲突校验:不能与系统页(/tags/、/categories/、/archives/)或 public/images 下已有文件路径冲突
性能测试
在一台 Windows 设备上,构建一个包含 182 篇文章、约 200MB 图片资源的博客,完整构建时间约为 2 秒。
主要耗时集中在静态资源复制(assets/、public/、images/ → dist/),Markdown 解析与页面渲染开销较低。
$ php main.php build
[2026-04-09 13:53:11] [信息] 开始构建...
[2026-04-09 13:53:11] [信息] 清理 dist 目录...
[2026-04-09 13:53:11] [信息] 1. 清空 dist/ 用时 0.376 秒。
[2026-04-09 13:53:11] [信息] 复制静态资源...
[2026-04-09 13:53:12] [信息] 2. 资源映射 用时 1.021 秒。
[2026-04-09 13:53:12] [信息] 加载并处理文章...
[2026-04-09 13:53:12] [信息] 跳过草稿:2 篇。
[2026-04-09 13:53:12] [信息] 3. 解析 Markdown 用时 0.042 秒。
[2026-04-09 13:53:12] [信息] 校验文章数据...
[2026-04-09 13:53:12] [信息] 4. 校验数据 用时 0.004 秒。
[2026-04-09 13:53:12] [信息] 准备数据...
[2026-04-09 13:53:12] [信息] 5. 构建数据索引 用时 0.161 秒。
[2026-04-09 13:53:12] [信息] 生成页面...
[2026-04-09 13:53:13] [信息] 6. 渲染页面 用时 0.153 秒。
[2026-04-09 13:53:13] [信息] 生成搜索索引...
[2026-04-09 13:53:13] [信息] 搜索索引已生成:919.57KB
[2026-04-09 13:53:13] [信息] 7. 生成搜索索引 用时 0.013 秒。
[2026-04-09 13:53:13] [信息] 构建完成,用时 1.77 秒。
[2026-04-09 13:53:13] [信息] - 生成文章数:186
[2026-04-09 13:53:13] [信息] - 标签数:144
[2026-04-09 13:53:13] [信息] - 分类数:23
计划中的功能
- Logo、favicon、社交链接、关于页等站点细节
- 增量构建
📝 贡献
欢迎提交 Issue 和 Pull Request!
📄 许可证
MIT

