功能說明
接收一組 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"腳本會輸出其中之一:
Public | Premium | Private | Internal | Unknown。 -
將結果分桶:
Public→ 公開頁尾Premium→ 公開頁尾作為預覽連結;付費內容保持受限制Private→ 僅受限制列表(絕不放入頁尾)Internal→ 完全排除Unknown→ 不得猜測;回報為UNCLASSIFIED並停止
-
以 stdout 輸出兩個列表,格式如下:
## Public footer - <url> ## Gated - <url> (<reason: 18+ | membership | invite | country-lock | personal>) -
如果受限制列表包含 Matrix 聊天室,則輸出閘門規格,而非原始連結:
- Gate: 18+ confirmation checkbox - Gate: country eligibility check - Reveal: https://matrix.to/#/#fed-os:matrix.org -
如果任何條目帶有
"disclosure": "referral",則在計畫中該條目下方附加標準揭露行:*Disclosure: this is a referral link — the author receives a credit.*
絕不能假設
- 絕不能因為 URL 看起來像首頁就假定它是 Public — 必須透過
references/links.json分類,而非直覺。 - 除非
classify.sh回傳Public或Premium,否則絕不能將 URL 放入頁尾。 - 即使使用者要求,也絕不能將 Matrix 連結放入公開頁尾 — 應透過閘門區塊處理。
- 絕不能將含有
state=、client_id=、response_type=code、/checkout/或/oauth2/的 URL 放入頁尾。這些是 session 綁定的 OAuth 流程,而非連結。如果收到此類 URL,應從references/links.json解析出標準登陸頁面,並放置該頁面。 - 絕不能將 OAuth 參數或憑證提交到公開儲存庫。如果發現,回報
CREDENTIAL_LEAK: <path>並停止。 - 絕不能將推廣連結視為普通的 Public 連結 — 必須附帶揭露行。
- 絕不能產生 HTML、CSS、JS 或渲染後的頁尾。輸出是計畫,而非標記語言。
- 絕不能發明分類。如果
classify.sh回傳Unknown,則停止並回報。
輸出
一個包含兩個區段的計畫:Public footer 和 Gated。純文字,或根據要求輸出 JSON。無 HTML。
失敗處理
classify.sh回傳Unknown→ 回報UNCLASSIFIED: <url>,不輸出。references/links.json缺失 → 回報MISSING_REF: links.json,停止。jq缺失 → 回報MISSING_DEP: jq,停止。