功能说明
获取一组资金平台,生成一份计划:显示哪些展示面、
以何种顺序、使用何种标签和门控。每个平台通过
规范句柄引用(例如 patreon:fedpromptly),绝不存储或输出
实时结账 URL、客户端 ID、可发布密钥、购买按钮 ID 或商户 ID。
前提条件
- 环境变量
PATH中包含bash和jq references/funding-links.json文件存在references/embeds.md文件存在(说明为何此处绝不存储嵌入 HTML)
验证环境
在执行任何其他操作之前运行:
command -v jq && command -v bash
如果缺少其中任何一个,则停止并报告:MISSING_DEP: jq。
分步操作
-
确认参考数据存在:
test -f references/funding-links.json -
对每个平台句柄,查找其计划条目:
bash scripts/classify.sh "patreon:fedpromptly" -
按以下顺序组装计划(订阅制优先,一次性支付最后):
- GitHub Sponsors
- Patreon
- Ko-fi
- Buy Me a Coffee
- PayPal 订阅
- Stripe
- 加密货币(NOWPayments)
-
为每个条目输出:
label、handle、class、gate和disclosure(如有)。绝不输出 URL、密钥或 ID。 -
如果用户提供实时结账 URL,不要将其列入计划。将其解析为 规范句柄,规划该句柄,并报告
RESOLVED: <url> -> <handle>。
禁止假设
- 切勿将客户端 ID、可发布密钥、购买按钮 ID 或商户 ID 输出到 计划中。计划仅通过规范句柄引用平台。
- 切勿在计划中放置实时结账 URL。仅使用规范落地页。
- 切勿因为 Patreon 在某个页面上缺失就认为它已退役。
在输出前需对照
references/funding-links.json进行核对。 - 切勿在支付按钮后设置年龄验证门控。支付不属于年龄限制 内容;如果存在成人内容,应在服务端对内容进行门控,而非对按钮。
- 切勿渲染 HTML。计划是纯数据。
- 切勿存储部件 ID、购买按钮 ID 或图片按钮令牌。参见
references/embeds.md了解为何每个平台的嵌入内容都不得留在仓库中。
输出
一份资金计划:有序列表 {label, handle, class, gate, disclosure}。
不含 URL、密钥、ID 或 HTML。
失败处理
classify.sh返回Unknown→ 报告UNCLASSIFIED: <handle>,停止。- 在任何跟踪文件中检测到实时凭证 → 报告
CREDENTIAL_LEAK: <path>,停止。 references/funding-links.json缺失 → 报告MISSING_REF,停止。