--- description: 全站頂欄導覽 portal-nav.js(buildPortalNavInnerHTML、COMING_SOON_PAGES、INDEX_NAV_OPEN_HASHES、籌備中、新頁檢查清單);與 user-scope-and-nav 搭配。 alwaysApply: true --- # 全站導覽列規則(`assets/js/portal-nav.js`) 之後**每新增一個要上線、可點的 HTML 頁面**,請一併完成導覽更新;規則都集中在 **`assets/js/portal-nav.js`**。 --- ## 0. 兩個世界(最高優先,實作前必讀) | 誰在看 | 哪一頁/哪塊 | 行為 | |--------|----------------|------| | **站主自己** | 僅 **`extra/site-guide.html`** | 頂欄必須 **`data-portal-nav data-portal-nav-all-open`**。腳本**不**對該頁頂欄套用籌備中;**不**對 `
` 內任何 `` 改寫。表上連結**全部要點得進**(由站主在 HTML 維護)。 | | **訪客/大家** | **除上列以外**的每一頁 | 頂欄+**頁內所有 ``**(分頁列、內文等)依 `COMING_SOON_PAGES`、`INDEX_NAV_OPEN_HASHES` 鎖定;未公開者**一律標示「籌備中」**、不可點進。**禁止**在其他頁加 `data-portal-nav-all-open`。 | **硬規則(違反=做錯)** 1. **未經站主逐句同意**:不得從 `COMING_SOON_PAGES` **刪**檔名、不得擴充 `INDEX_NAV_OPEN_HASHES`、不得在 `buildPortalNavInnerHTML` **新增**可點項、不得把籌備中改成真 `href`、不得刪站主已同意列入頂欄的項。 2. **「檔案在 repo」≠「可開放導覽」**;不得自行推論。 3. **`fallen/totoga2.html`(整合頁)**、**`variety/variety.html`**:站主**沒有明講對外開放**時,檔名**必須**留在 `COMING_SOON_PAGES`(訪客頂欄不可點進)。要開放時**只**能等站主說了再從 Set 移除。 4. **「刪除/拿掉/不要了」**:若未寫明是**單一檔案**、**頂欄某一列**、**整段子選單**還是**整個資料夾**,**一律先問站主**,禁止自行擴大刪除範圍。 5. **不確定**是否開放、連哪、是否例外:**先問站主再改**,不要猜。 6. 站主說要刪的是 **`某頁#錨點`**(頁內區塊)時:先改該頁 DOM,再修死錨連結;**不要**只動導覽、也不要把「刪區塊」擴成刪頂欄整段。細節見 **`user-scope-and-nav.mdc`**(§ 頁面錨點刪除)。 ## 0.1 站主同意(細項) - **未經站主明確同意**,不得自行:從 `COMING_SOON_PAGES` 移除檔名、擴充 `INDEX_NAV_OPEN_HASHES`、在 `buildPortalNavInnerHTML` **新增**導覽項目、**刪除站主已同意列入頂欄**的項目、或把籌備中連結改成可點(**全站導覽頁頂欄例外見 §0**)。 - **`extra/site-guide.html`**:站主自用;條件同 §0 表格。(僅此頁可加 `data-portal-nav-all-open`。) - 頂欄模板**不含**未同意掛列的頁;該頁仍可由 `site-guide` 主文或網址直開(站主自用)。 --- ## 1. 必做:把頁面掛進導覽 HTML 在 **`buildPortalNavInnerHTML`**(`assets/js/portal-nav.js`)裡維護連結: - 依資訊架構放在對應的 **`
  • `** 底下;需要子選單時用 **`portal-submenu`**。 - `href` 使用**站根相對路徑**(腳本會依當前頁深度加上前綴 `rp`):例如 `` `${rp}variety/variety.html` ``、`` `${rp}index.html#section` ``。 - Logo 列:`` `${rp}index.html` `` 與 `` `${rp}assets/images/logov.svg` ``。 新增或調整完後,所有帶 **`data-portal-nav`** 的 `