这套博客方案基于 Fossil 原生能力 构建,目标是:
- 首页自动按分类展示文章列表
- 文章内容直接使用 Markdown(
/doc/tip/...渲染) - 风格简洁、中文友好、便于个人长期维护
一、目录结构约定
请按以下结构组织内容:
docs/
_meta/
site.json
_index.tsv
_home.md
about.md
数值方法/
示例文章.md
Python科学计算及编程/
示例文章.md
说明:
docs/<分类>/:你的文章目录,分类名就是文件夹名docs/_index.tsv:自动生成的文章索引(不要手改)docs/_home.md:自动生成的首页内容(不要手改)docs/_meta/site.json:站点元信息(标题、作者等)
二、首次接入(给自己或其他人)
- 克隆或打开 Fossil 仓库
- 确保仓库内包含:
tools/build_index.pytools/build_home.pytools/pre_commit_refresh.shskin/header.tmplskin/footer.tmplskin/style.css
- 启用提交前钩子(仅首次)
chmod +x tools/pre_commit_refresh.sh
fossil hook add --type before-commit --command "./tools/pre_commit_refresh.sh" --sequence 50
- 设置首页入口(仅首次)
fossil sql --repository ../Fossil-Blog.fossil \
"update config set value='/doc/tip/docs/_home.md', mtime=strftime('%s','now') where name='index-page';"
- 导入皮肤配置(仅首次,管理员执行)
fossil configuration push skin
fossil configuration push project
三、日常写作流程(最简)
你只需要:
- 在
docs/<分类>/新增或修改.md文章 - 执行提交:
fossil commit -m "更新文章"
提交前钩子会自动执行:
- 生成
docs/_index.tsv - 生成
docs/_home.md - 自动把生成文件加入本次提交
四、文章写作建议
每篇文章建议以一级标题开头,索引会提取第一个 # 作为文章标题:
# 牛顿迭代法入门
作者:你的名字
更新时间:2026-04-15
若未写一级标题,则回退为文件名作为显示标题。
五、给其他人复用这套皮肤
其他人要复用时,推荐按以下顺序:
- Fork/Clone 仓库
- 修改
docs/_meta/site.json(站点标题、作者) - 修改
skin/header.tmpl(主标题、署名) - 新建自己的分类目录和文章
- 按“首次接入”启用 hook 与配置推送
只要目录结构一致,就能直接复用自动分类与首页生成能力。
六、常见问题
1) 本地更新了,远端没变
- 先执行:
fossil sync - 再确认配置是否已推送:
fossil configuration push skin/project
2) 首页报 Not Found
- 检查
index-page是否为:/doc/tip/docs/_home.md
3) 作者显示两次
- 作者应仅保留在
skin/header.tmpl docs/_home.md不要再写作者行
七、快速自检命令
fossil hook list
fossil info
fossil timeline -n 5 -t ci
如果以上正常,这套皮肤即可长期稳定使用。