功能
接收一组URL,并将每个标记为公开、高级、私有或内部,
然后生成两个输出:一个公开页脚计划和一个受限列表。不生成
HTML。输出是一个计划,而不是标记语言。
前置条件
bash和jq在PATH中references/links.json文件存在
验证环境
在执行任何其他操作之前运行:
command -v jq && command -v bash
如果任何一个缺失,停止并报告:MISSING_DEP: jq。
逐步操作
-
确认参考数据存在:
test -f references/links.json test -f references/footer-layout.md -
对于每个输入的URL,查找其分类:
bash scripts/classify.sh "https://www.fedpromptly.org"脚本会打印以下之一:
公开 | 高级 | 私有 | 内部 | 未知。 -
将结果分桶:
公开→ 公开页脚高级→ 作为预告链接放入公开页脚;付费内容保持受限私有→ 仅限受限列表(绝不放入页脚)内部→ 完全排除未知→ 不要猜测;报告为UNCLASSIFIED并停止
-
将两个列表输出到标准输出,格式如下:
## 公开页脚 - <url> ## 受限 - <url> (<原因: 18+ | 会员 | 邀请 | 国家锁定 | 个人>) -
如果受限列表包含Matrix房间,则输出门控规范,而不是原始链接:
- 门控: 18+ 确认复选框 - 门控: 国家资格检查 - 揭示: https://matrix.to/#/#fed-os:matrix.org -
如果任何条目包含
"disclosure": "referral",则在计划中该条目下方附加标准披露行:*披露:这是一个推荐链接——作者将获得积分。*
永远不要假设
- 永远不要因为URL看起来像主页就认为它是公开的——通过
references/links.json进行分类,而不是凭直觉。 - 永远不要将URL放入页脚,除非
classify.sh返回公开或高级。 - 永远不要将Matrix链接输出到公开页脚,即使有用户要求——而是通过门控块路由它。
- 永远不要将包含
state=、client_id=、response_type=code、/checkout/或/oauth2/的URL放入页脚。这些是会话绑定的OAuth流程,而不是链接。如果收到此类URL,从references/links.json解析其规范登录页面,并放入该页面。 - 永远不要将OAuth参数或凭据提交到公共仓库。如果发现,报告
CREDENTIAL_LEAK: <path>并停止。 - 永远不要将推荐链接视为普通的公开链接——它必须附带披露行。
- 永远不要生成HTML、CSS、JS或渲染后的页脚。输出是一个计划,而不是标记语言。
- 永远不要编造分类。如果
classify.sh返回未知,停止并报告。
输出
一个包含两个部分的计划:公开页脚 和 受限。纯文本,或者根据要求输出JSON。无HTML。
失败处理
classify.sh返回未知→ 报告UNCLASSIFIED: <url>,不要输出。references/links.json缺失 → 报告MISSING_REF: links.json,停止。jq缺失 → 报告MISSING_DEP: jq,停止。