语雀知识库在线分享系统:GitHub Pages 托管静态前端,独立 Node.js 服务端保存 Token、同步目录并控制限时预览。
- 未授权访问知识库名称、目录、文档标题、搜索结果和语雀原文地址。
- 统一服务端预览口令:
wahl为 120 秒,wahl2至wahl5为 2-5 倍时长,管理员口令不限时。 - 正文接口使用 HttpOnly Cookie 会话,过期后服务端拒绝继续读取。
- Markdown 正文阅读;PDF 暂时显示目录和语雀地址,后续再接预览。
- 语雀知识库目录同步,Token 只从服务端
.env读取。 - GitHub Pages Actions 和 Cloudflare Tunnel 部署预留。
npm install
Copy-Item .env.example .env
npm run dev然后打开 http://127.0.0.1:4173/index.html。没有配置 Token 时会使用 server/data/catalog.json 中的演示目录;配置 YUQUE_TOKEN 和 YUQUE_BOOKS_JSON 后,调用同步接口:
Invoke-RestMethod -Method Post -Uri http://127.0.0.1:30113/api/admin/sync -Headers @{ 'x-admin-key' = '你的ADMIN_API_KEY' }GitHub Pages 只能部署静态文件,不能安全存放语雀 Token,也不能控制预览倒计时。生产环境请将 server/ 部署在服务器上,再使用 Cloudflare Tunnel 暴露 HTTPS 地址,并把该地址配置为 GitHub Repository Variables 的 API_BASE_URL。
不要把 .env、Token、Cookie 或生产口令提交到 GitHub。