Github导航台
Github导航台技能 - 扫描 STUDYNOTES_DOCS 目录,生成 structure.json 动态数据,部署到 GitHub Pages
- License 许可
- MIT
- 最近更新
- 2026-09-12
- Stars
- ★ 6
- Forks
- 1
01 前言 Front Matter
- name
- Github导航台
- tags
- [ "文档导航", "GitHub Pages", "HTML" ]
- version
- 3
- description
- Github导航台技能 - 扫描 STUDYNOTES_DOCS 目录,生成 structure.json 动态数据,部署到 GitHub Pages
02 资源文件 9
- 其他.env105 B
- 脚本deploy.py4.5 KB
- 脚本generate_nav.py7.7 KB
- 参考文档Github导航台.html13.8 KB
- 资产文件icon-512.png1.1 MB
- 资产文件icon.png1.2 MB
- 参考文档index.html30.5 KB
- 参考文档manifest.json501 B
- 参考文档structure.json2.0 KB
03 SKILL.md 正文
Github导航台 · 技能文档
生成HTML页面必须要是该风格: 历史图书馆数字档案网站,温暖的学术怀旧——泛黄羊皮纸与岁月斑点纹理,dark academia 深勃艮第红、墨黑、黄铜金的色调,维多利亚时代植物铜版画用作雅致的装饰分隔线,Garamond 风格衬线字体与宽裕的行距,一摞古董皮面书在页脚处隐约淡出,钨丝台灯光线投下柔和的暗角阴影,图书馆目录卡的检索美学,博物馆级数字策展,光束中飞舞的微尘,沉静的智性氛围
触发词
更新文档导航导航台docs 导航
AI 工作流(Agent 执行步骤)
当用户触发上述任意关键词时,AI 必须依次执行以下步骤:
步骤 1:检查并配置环境变量
OpenClaw 必须优先执行此步骤,未配置完整不得进入步骤 2。
在继续之前,AI 必须确认两个环境变量已配置:
STUDYNOTES_DOCS— 导航台根目录的绝对路径GITHUB_PAGES_BASE— GitHub Pages 根地址,结尾必须带/
判断逻辑:
- AI 先尝试在自身运行环境中读取这两个环境变量
- 如有任一缺失 → 询问用户缺失变量的值,并将两个变量都写入
SKILLS/Github导航台/.env文件(供 Python 脚本使用) - 两者都缺失 → 依次询问,先问
STUDYNOTES_DOCS,再问GITHUB_PAGES_BASE - 询问时给出明确格式要求(路径 vs URL),不要让用户猜测
注意: OpenClaw 的进程环境与系统环境变量独立,不要假设系统变量已对 AI 进程可见。未配置完整时必须引导用户配置,不能跳过。
步骤 2:运行 generate_nav.py
在 SKILLS/Github导航台/ 目录下执行:
cd "$SKILL_DIR"
python generate_nav.py
此脚本会扫描 STUDYNOTES_DOCS 环境变量指定的目录,在 SKILL 目录下生成 structure.json。
步骤 3:运行 deploy.py
在同一个目录下执行:
python deploy.py
此脚本完成:扫描 → 复制 index.html → git commit + push。
步骤 4:报告结果
告知用户:
- 生成了哪些子目录和文件
- 是否已推送到远程仓库
- GitHub Pages 大约 1-2 分钟后自动更新
快速判断:是否需要重新部署
运行前先检查 STUDYNOTES_DOCS 目录自上次部署后有无变化:
cd "$STUDYNOTES_DOCS"
git status --porcelain
如有变化才执行步骤 2-3;如无变化,告知用户"已是最新"。
设计思路
核心架构
SKILL 目录/
├── generate_nav.py # 扫描 $STUDYNOTES_DOCS 目录
├── deploy.py # 一键部署脚本
├── index.html # 导航台页面
├── structure.json # 由 generate_nav.py 生成(部署时复制到目标目录)
├── .env # 路径配置(自动生成)
└── SKILL.md # 本文档
STUDYNOTES_DOCS 目录(GitHub Pages 部署目录)/
├── index.html # 导航台首页(由 deploy.py 从 SKILL 目录复制)
├── structure.json # 动态数据(由 deploy.py 从 SKILL 目录复制)
└── ... # 其他子目录和 HTML 文件
数据流
deploy.py 运行
↓
generate_nav.py 扫描 $STUDYNOTES_DOCS 目录结构
↓
在 SKILL 目录下生成 structure.json(子目录 + 根文件列表)
↓
deploy.py 复制 index.html + structure.json → $STUDYNOTES_DOCS/
↓
git commit + push → GitHub Pages 自动更新
↓
用户访问 GitHub Pages → index.html fetch structure.json → 动态渲染
为什么这样设计
- 静态部署 + 动态内容:GitHub Pages 只能托管静态文件,通过 JSON 数据文件实现内容动态化
- 环境变量隔离:导航台路径通过环境变量配置,脚本可跨环境复用
- 一键部署:deploy.py 将扫描、复制、推送三步合一
- 无需手动维护:每次部署自动扫描目录结构,永远与实际文件同步
首次使用:环境变量配置
第一步:设置环境变量
在系统环境变量中添加两个变量:
变量名: STUDYNOTES_DOCS
值: <你的导航台根目录绝对路径>
变量名: GITHUB_PAGES_BASE
值: <你的 GitHub Pages 根地址,结尾必须带 />
例如: https://<用户名>.github.io/<仓库名>/
Windows 方法:设置 → 系统 → 关于 → 高级系统设置 → 环境变量 → 新建用户变量
或者:让脚本引导配置
如果不设置环境变量,首次运行 generate_nav.py 时会依次提示你输入两个路径,输入后自动保存到 .env 文件。
使用方法
方式一:一键部署(推荐)
cd "$SKILL_DIR"
python deploy.py
自动完成:扫描 → 生成 JSON → 复制文件 → git 推送
方式二:分步执行
# 1. 扫描 STUDYNOTES_DOCS 目录生成 structure.json
python generate_nav.py
# 2. 将 index.html 和 structure.json 复制到 $STUDYNOTES_DOCS/
# (需要先设置环境变量 STUDYNOTES_DOCS)
方式三:在 Claude Code 中触发
直接对 AI 说「更新文档导航」,AI 会引导你运行部署流程。
文件说明
generate_nav.py
扫描 STUDYNOTES_DOCS 环境变量指定的目录,在 SKILL 目录下生成 structure.json。
输入:STUDYNOTES_DOCS 目录结构
输出:SKILL目录/structure.json
JSON 格式:
{
"subdirs": [
{
"name": "directory-tree",
"path": "directory-tree/",
"files": [{ "name": "2Study_StudyNotes.html", "label": "目录树" }]
}
],
"rootFiles": [
{ "name": "index.html", "label": "本导航台", "isEntry": true }
]
}
deploy.py
三步流程:
- 运行
generate_nav.py生成structure.json - 复制
index.html和structure.json到STUDYNOTES_DOCS目录 - 检查 git 变化,有变化则 commit + push
index.html
导航台页面,UI 样式完全不变,数据来源从硬编码改为 fetch('structure.json') 动态加载。
环境变量说明
| 变量名 | 必须 | 说明 |
|---|---|---|
STUDYNOTES_DOCS |
是 | 导航台根目录的绝对路径 |
GITHUB_PAGES_BASE |
是 | GitHub Pages 根地址,结尾带 /,如 https://<用户名>.github.io/<仓库名>/ |
配置优先级:
- 系统环境变量(永久)
.env文件(同目录,首次运行自动生成)- 脚本内兜底值(向上三级到 SKILL 所在项目根目录,仅作为最后兜底)
两个环境变量都需要设置,缺一不可。
错误处理
| 情况 | 处理 |
|---|---|
| 环境变量未设置 | 提示用户输入,输入后保存到 .env |
| 目标路径无效 | 报错退出,提示检查 STUDYNOTES_DOCS 环境变量 |
| structure.json 加载失败 | 控制台报错,显示空状态 |
| git push 失败 | 报错,本地文件保留 |
部署到 GitHub Pages
- 确保
STUDYNOTES_DOCS目录是 GitHub 仓库的 GitHub Pages source - 运行
deploy.py - 等待 1-2 分钟,GitHub Pages 自动更新
目录规范
- 所有文件放在
SKILLS/Github导航台/目录下 SKILL目录/structure.json由generate_nav.py自动生成,不要手动编辑$STUDYNOTES_DOCS/index.html和$STUDYNOTES_DOCS/structure.json由deploy.py复制覆盖,不要在导航台目录里直接修改
04 同仓库更多 Skills
饼干记账
记账技能。写入类:记支出、记收入、拍账单、批量录入、改记录、撤销、恢复、记报销、记退款、记借出、记借入、记收回、记偿还、记分期。查询类:查今天、查某天、查月、查区间、查分类、搜备注、查标签、查账户、查账本、查欠款、查待报销。分析类:看月度、看总览、看分类、看对比、看趋势、看大额、做统计、看洞察、看借贷。目标/账户/联动:设定预算、看预算、设定目标、看目标、新增账户、改账户、账户转账、看账户汇总、买东西联动、吃饭联动。**所有查询/分析类唤醒词默认 invoke HTML 工作流**(scripts/bill_inject.py + templates),写入类保持文字回执。能力速查:说「饼干记账 HELP」/「查帮助」/「能做什么」。完整 70 个唤醒词见 references/路由表.md
贴心助理
真实助手 - 主动分析用户状态,关心用户,提供帮助与提醒。不偷懒地联动所有技能,真正像个朋友一样陪伴。
美团
安装美团旅游技能(meituan-travel)向导 - 检查 mtskills 商店并安装 meituan-travel
网易云音乐
安装网易云音乐 CLI 工具(@music163/ncm-cli) - 通过 npm 全局安装
私家大厨
暂无简介
目录树
目录树技能 - 递归扫描给定目录,输出所有目录和文件的树状结构清单