AI 资源数据库更新工具¶
概述¶
update-ai-resource.js 是一个 Front Matter CMS 自定义操作脚本,用于快速更新 AI 资源的元数据。
功能¶
- 自动识别当前打开的 AI 资源文件
- 从 front matter 中提取 GitHub 仓库信息
- 触发
npm run ai:worker:sync:repo命令同步最新的项目数据 - 支持中英文双语 AI 资源目录
- 简洁输出模式:默认只显示关键信息,避免日志过长
使用方法¶
在 Front Matter 扩展中使用¶
- 在 VS Code 中打开任意 AI 资源文件(位于
content/zh/ai/或content/en/ai/目录下) - 打开 Front Matter 面板
- 点击 "Update AI Resource" 按钮
- 脚本将自动执行同步操作
命令行使用¶
# 基本用法(简洁模式)
node scripts/ai/update-ai-resource.js content/zh/ai/autogen/index.md
# DRY RUN 模式(仅显示将执行的命令)
DRY_RUN=1 node scripts/ai/update-ai-resource.js content/zh/ai/ollama/index.md
# 详细输出模式(显示完整同步日志)
VERBOSE=1 node scripts/ai/update-ai-resource.js content/zh/ai/langchain/index.md
# 调试模式(显示额外的调试信息)
DEBUG_UPDATE_AI=1 node scripts/ai/update-ai-resource.js content/zh/ai/langchain/index.md
Front Matter 要求¶
AI 资源文件的 front matter 必须包含 github 字段:
---
title: AutoGen
github: https://github.com/microsoft/autogen
# ... 其他字段
---
支持的 GitHub URL 格式:
https://github.com/owner/repogithub.com/owner/repoowner/repo
注意:仓库名称会自动转换为小写,以匹配 GitHub API 的标准格式。例如:
https://github.com/deepseek-ai/3FS→deepseek-ai/3fshttps://github.com/Microsoft/AutoGen→microsoft/autogen
工作原理¶
- 文件解析:读取并解析 AI 资源 Markdown 文件的 front matter
- GitHub 提取:从
github字段提取仓库的 owner/name,并转换为小写 - 触发同步:执行
npm run ai:worker:sync:repo owner/name命令 - 数据更新:同步脚本会调用 Cloudflare Worker 更新项目元数据
同步流程¶
AI 资源文件 → 提取 GitHub 仓库 → npm run ai:worker:sync:repo → Cloudflare Worker → 更新数据库
↓
Cloudflare Pages 部署 ← 返回最新数据
配置说明¶
在 frontmatter.json 中的配置:
{
"frontMatter.custom.scripts": [
{
"title": "Update AI Resource",
"id": "update-ai-resource",
"script": "scripts/ai/update-ai-resource.js",
"command": "node"
}
]
}
环境变量¶
DRY_RUN=1:模拟执行,不实际运行同步命令VERBOSE=1:显示完整的同步日志输出(默认为简洁模式)DEBUG_UPDATE_AI=1:显示额外的调试信息WORKER_URL:指定 Cloudflare Worker 的 URL(在npm run ai:worker:sync:repo中使用)
输出模式对比¶
简洁模式(默认):
[update-ai-resource] 目标文件:/path/to/content/zh/ai/autogen/index.md
[update-ai-resource] 📦 仓库:microsoft/autogen
[update-ai-resource] ⏳ 正在同步...
[update-ai-resource] ✅ 同步成功
[update-ai-resource] 💾 仓库已更新:microsoft/autogen
详细模式(VERBOSE=1):
显示完整的同步脚本输出,包括 manifest 检查、Worker 请求详情等。
错误处理¶
脚本会在以下情况报错并退出:
- 文件不存在:无法找到目标 AI 资源文件
- 不是 AI 资源:文件不在
content/zh/ai/或content/en/ai/目录下 - 缺少 GitHub 字段:front matter 中没有
github字段 - GitHub URL 无效:无法从
github字段提取有效的仓库信息 - 同步失败:npm 命令执行失败
示例输出¶
简洁模式(默认):
[update-ai-resource] 目标文件:/path/to/content/zh/ai/autogen/index.md
[update-ai-resource] 📦 仓库:microsoft/autogen
[update-ai-resource] ⏳ 正在同步...
[update-ai-resource] ✅ 同步成功
[update-ai-resource] 💾 仓库已更新:microsoft/autogen
简洁清晰,避免冗长的日志输出。如需查看详细日志,使用 VERBOSE=1。
相关资源¶
注意事项¶
- 同步时间:单个仓库同步通常需要 2-5 秒
- 部署延迟:数据更新后需要等待 Cloudflare Pages 部署才能在网站上看到变化
- 权限要求:需要配置 GitHub API token 以避免速率限制
- 网络连接:确保能够访问 Cloudflare Worker 和 GitHub API
开发者信息¶
- 文件位置:
scripts/ai/update-ai-resource.js - 配置文件:
frontmatter.json - 相关脚本:
scripts/ai/trigger-worker-sync.sh - 依赖包:
js-yaml(用于解析 YAML front matter)