Travel Wiki 维护规则

新页面添加流程

每次创建新页面时,必须完成以下步骤:

1. 创建页面文件

# 在 /root/.openclaw/workspace/travel/wiki/ 目录下创建
vim 新页面名称.md

2. 更新首页链接

编辑 /root/.openclaw/workspace/travel/wiki/Home.md

添加链接位置:

## 🗺️ 旅行规划

### 省份名称
- [页面标题](文件名)

3. 更新Changelog

在 Home.md 的更新日志部分添加:

## 📝 更新日志

### YYYY-MM-DD
- ✅ 新增XXX旅行规划
- ✅ 具体更新内容

4. Git提交推送

cd /root/.openclaw/workspace/travel/wiki
git add .
git commit -m "添加XXX旅行规划"
git push

页面模板

参考 山西.md河南.md 的结构:

  • 主要景点(按城市分类)
  • 必去/备选区分
  • 美食推荐
  • 交通信息
  • 参考资料
  • 已规划行程(如有)

注意事项

  • ⚠️ 每个新页面必须在首页添加入口
  • ⚠️ 每次更新必须记录changelog
  • ⚠️ 标注商业化景点(⚠️符号)
  • ⚠️ 根据涛哥偏好筛选景点

技术架构

服务器配置

  • 服务器: 47.86.243.164
  • Bare Repo: /opt/travelwiki/repo/wiki.git
  • Data 目录: /opt/travelwiki/data
  • Gollum 服务: systemctl restart gollum

自动更新机制

  1. 本地 git push → 推送到 bare repo
  2. post-receive hook 触发
  3. hook 执行 git fetch + git reset --hard FETCH_HEAD
  4. hook 重启 gollum 服务
  5. 网页自动更新

post-receive hook(关键修复)

#!/bin/bash

echo "📥 同步 Wiki..."

# 清除可能干扰的 git 环境变量
unset GIT_DIR
unset GIT_WORK_TREE

# 路径
DATA_DIR=/opt/travelwiki/data
BARE_REPO=/opt/travelwiki/repo/wiki.git

# 强制同步到 bare repo 的最新状态
cd $DATA_DIR
git fetch $BARE_REPO master
git reset --hard FETCH_HEAD

# 重启 Gollum
systemctl restart gollum > /dev/null 2>&1 &

echo "✅ 同步完成 ($(date '+%Y-%m-%d %H:%M:%S'))"

常见问题

Q: 网页没有更新?

  1. 检查 bare repo 和 data 目录的 HEAD 是否一致:
    cd /opt/travelwiki/repo/wiki.git && git log --oneline -1
    cd /opt/travelwiki/data && git log --oneline -1
  2. 如果不一致,手动同步:
    cd /opt/travelwiki/data
    git fetch /opt/travelwiki/repo/wiki.git master
    git reset --hard FETCH_HEAD
    systemctl restart gollum

Q: 新页面 404?

  • 确保文件被 git 追踪(git add + git commit
  • 确保文件名是 UTF-8 编码

最后更新:2026-02-27