管理面板是 EmDash 網站中包含的編輯介面。它由 Astro 應用程式在 /_emdash/admin/ 提供服務,並使用與公開頁面相同的資料庫、媒體儲存、內容模型和外掛。
首次存取新網站的管理路由時會開啟設定精靈。設定完成後,已登入使用者的權限決定了可用的內容和管理工具。
工作區域
導覽會適應網站的集合和已安裝的外掛。編輯者或管理員可能會看到以下主要區域:
| 區域 | 用途 |
|---|---|
| 儀表板 | 包含網站和外掛小工具的起始檢視 |
| 集合名稱,例如文章 | 列出、建立、編輯、發布條目並將其移至資源回收筒 |
| 集合群組 | 可摺疊資料夾,包含共享群組的集合,以及僅指派給該資料夾中集合的分類法 |
| 媒體 | 上傳、搜尋、檢查、取代和刪除檔案 |
| 分類法和署名 | 組織內容並管理署名作者 |
| 選單和小工具區域 | 管理網站呈現的導覽和編輯者控制的區域 |
| 留言 | 當集合啟用留言時審查和管理留言 |
| 內容類型 | 建立集合和欄位並變更其設定 |
| 外掛 | 安裝、設定和開啟外掛提供的頁面 |
| 設定 | 設定網站、身分驗證、備份、網站轉移、電子郵件、搜尋和其他服務 |
此介面管理資料和設定。Astro 頁面和元件仍然定義公開版面配置。在管理面板中新增選單項目或小工具只有在 Astro 元件查詢並呈現該選單或小工具區域時才會變更公開網站。
內容編輯器
內容編輯器根據所選集合建立其表單。短文字欄位變成文字輸入框,portableText 欄位變成富文字編輯器,媒體欄位開啟媒體選擇器,參照欄位讓編輯者可以選擇另一個條目。集合設定會在適用的情況下新增發布、預覽、修訂、留言和搜尋控制。
富文字編輯器支援標題、清單、引用、程式碼、連結、圖片和已註冊的自訂區塊。如果匯入的內容包含編輯器無法顯示的區塊,EmDash 會保留儲存的區塊,而不是在下次儲存時刪除它。
對於包含草稿的集合,儲存和發布是獨立的狀態。儲存將目前工作儲存為草稿。發布或發布變更使該儲存的版本可供公開查詢使用。排程記錄草稿或待處理變更何時應該公開。
當為集合啟用編輯鎖定時,開啟條目會為該編輯者保持鎖定。在鎖定處於活動狀態時,其他作者會被拒絕,而不是默默覆寫條目。如果在編輯者載入條目後條目發生變更,EmDash 也會拒絕過時的儲存,以便編輯者可以重新載入較新版本而不是覆寫它。
角色和權限
EmDash 包含五個角色:訂閱者、貢獻者、作者、編輯者和管理員。隨著角色層級的提高,權限也會增加,但對於內容和媒體操作,所有權仍然很重要。例如,作者可以編輯和發布自己的條目,而編輯者可以對任何條目執行此操作。
管理區域有單獨的權限檢查:
- 編輯者可以管理分類法、選單、署名、小工具、版塊以及其他作者的內容。
- 管理員可以變更內容模型、使用者、外掛、重新導向、備份和設定,可以匯出或匯入整個網站,並可以永久刪除資源回收筒中的內容。
- 伺服器檢查每個操作的權限。隱藏導覽項目不是安全邊界。
閱讀身分驗證和使用者角色了解帳戶設定和完整的角色描述。
媒體
媒體庫可以在網格或清單中顯示檔案,搜尋和篩選它們,顯示中繼資料,並執行多項操作。上傳行為取決於設定的儲存配接器。當配接器支援簽名上傳時,瀏覽器使用短期簽名 URL 將檔案傳送到儲存,然後向 EmDash 確認已完成的上傳。
刪除媒體項目可能會影響參照它的條目。在刪除公開頁面上使用的資源之前,請使用媒體使用資訊和取代工具。有關上傳、取代和刪除工作流程,請參閱媒體庫。
外掛介面
外掛可以新增儀表板小工具、設定部分、編輯器控制項或完整的管理頁面。外掛頁面掛載在該外掛自己的管理路由下;它不能取代核心管理畫面。即使管理連結僅向特定角色顯示,外掛仍需要對任何受保護操作進行伺服器端權限檢查。
閱讀安裝外掛以新增擴充功能。建置介面的網站開發者應使用原生外掛管理 API,而不是修改核心管理應用程式。
設定要求
管理面板是一個 React 應用程式,因此 Astro 專案必須安裝 @astrojs/react、react 和 react-dom,並在 astro.config.mjs 中註冊 react()。網站還需要伺服器輸出、資料庫和媒體儲存。將 EmDash 新增到現有 Astro 專案顯示了完整的本機設定。