處理內容

本頁內容

使用 EmDash 管理後台,讓條目從第一份草稿走到已發布頁面。編輯器會將 草稿變更與訪客可見的版本分開保存,因此儲存和發布是兩個獨立的 操作。

開啟集合

在你的站台上開啟 /_emdash/admin 並登入。在側邊欄中選擇一個集合,例如 Posts 或 Pages。

集合頁面會列出它的條目。在這裡你可以:

  • 選擇 Add New 建立條目;
  • 依條目標題、slug 和標記為可搜尋的欄位搜尋;
  • 依發布狀態、作者、署名、日期和地區設定篩選;
  • 在條目的各頁之間切換,並選擇每頁顯示 20、50 還是 100 筆;
  • 選擇條目進行批次發布、退回草稿或移入垃圾桶;以及
  • 開啟 Trash 還原或永久刪除條目。

編輯器中可用的欄位和發布功能取決於集合的內容模型。 例如,集合可能支援修訂、預覽、分類法或搜尋。

建立並發布條目

  1. 在集合頁面上選擇 Add New。

  2. 填寫必填欄位。如果集合有標題欄位,EmDash 會用它來建議 slug。你可以在發布前編輯 slug。

  3. 新增本文和輔助欄位,例如摘要、特色圖片、署名、分類 或標籤。

  4. 選擇 Save。第一次儲存會將條目建立為草稿,並開啟其固定的編輯器 URL。

  5. 檢查草稿。如果集合支援預覽,請選擇 Preview,在發布前查看算繪後的 頁面。

  6. 選擇 Publish now,然後確認。已儲存的草稿會成為公開 內容查詢回傳的線上版本。

條目有穩定的內容 ID 和獨立的 slug。即使 slug 發生變化,ID 仍會識別同一個條目。範本通常使用 getEmDashCollection() 回傳的面向 URL 的識別碼;查詢內容指南 解釋了這兩個值。

撰寫富文字

Portable Text 欄位提供區塊編輯器,可用於標題、段落、引用、清單、連結、 圖片、影片、圖庫、程式碼區塊、表格、HTML 區塊和可重複使用的區段。已安裝的外掛可能會 新增更多區塊。

使用工具列設定所選文字的格式。要插入區塊,請選擇段落旁邊的新增區塊控制項, 或輸入 / 並依名稱搜尋區塊。圖片區塊和圖庫區塊會開啟與圖片欄位相同的 媒體選擇器。

你也可以將圖片和影片檔案拖入編輯器,或貼上複製的圖片或螢幕截圖。每個檔案 都會上傳到媒體庫,並在上傳完成後出現在前後的區塊之間。如果 上傳失敗,原因會顯示在該檔案本應出現的位置。

選擇圖片區塊時,其上方會出現工具列。你可以用它替換圖片、編輯其替代 文字、設定對齊、新增連結或刪除該區塊。圖片有描述後,Alt text 按鈕會醒目顯示, 懸停時會顯示該描述。僅為媒體庫圖片檔名的替代文字 不算作描述。在圖片下方的欄位中輸入說明文字,然後按 Enter 即可在其下方 繼續書寫。選取圖片後,按 Tab 會移到說明文字,再移到工具列。

工具列中的 Image settings 會開啟該圖片這次使用的所有設定,包括其 顯示尺寸和可選的工具提示。其中的 Edit asset 會開啟底層的媒體庫項目, 變更或替換該資源可能會影響其他使用它的條目。關於這一區別,請參閱 媒體庫。

新增影片

輸入 /video,然後從媒體庫中選擇影片,或在開啟的選取器中上傳一個。 選擇影片後,影片區塊才會被新增。你也可以把影片檔案拖放到文字中的 任意位置。

影片會在編輯器中依其在站台上的樣子播放,寬度與文字一致。在其下方的欄位中輸入說明文字, 然後按 Enter 即可繼續在其下方書寫。

將滑鼠停留在影片上或選取它,其角落會顯示 Replace video 和 Delete video。 在選取的影片上按 Tab 會移到播放器,按空白鍵即可播放,然後依序移到說明文字和 這兩個按鈕。按 Escape 返回該區塊。

上傳遵循媒體庫的大小限制 maxUploadSize,除非你調高,否則為 50 MiB。

新增 HTML、CSS 和 JavaScript

HTML 區塊用於存放其他區塊無法表達的程式碼,例如嵌入內容、註冊表單或小型小工具。它的分頁有 HTML、CSS、JS 和 Preview。每個程式碼分頁都是一個程式碼編輯器,按 Tab 鍵會縮排;按 Escape 鍵可返回周圍的文字。CSS 和 JS 分頁是選用的:你也可以把包含 <style> 和 <script> 元素的完整程式碼片段直接貼到 HTML 分頁中。

Preview 會依你的站台算繪的方式顯示該區塊。開啟條目時,執行 JavaScript 的區塊會等到你選擇 Run preview 後才執行, 因此有問題的指令碼不會讓編輯器當機。

區塊的選單用於設定你的站台如何算繪它:

  • Isolated frame 會在一個隨內容自動增高的沙箱框架中執行該區塊的 HTML、CSS 和 JavaScript。該框架無法讀取你站台的 Cookie、儲存空間或頁面,你站台的樣式也不會影響它。相對連結從你站台的根目錄解析。訪客在框架內點擊之後,框架可以在訪客 目前的分頁或新分頁中開啟其他頁面。新的 HTML 區塊使用此模式,但從其他網站或瀏覽器分頁貼進來的區塊不使用。 不要像 height: 100vh 那樣依框架的視口來設定內容尺寸:框架會增高以容納內容,而這會讓內容再次變高,一直持續到框架 達到 20,000 像素為止。
  • Inline 會把 HTML 放入頁面中,並使用你站台的樣式。你的站台會保留文字格式、連結、清單、表格、圖片和 iframe, 並移除其他標記,例如指令碼、<style> 元素、style 屬性、媒體和表單控制項。來自 YouTube 和 Vimeo 以外網站的 iframe 會被清空。內嵌區塊沒有 CSS 或 JS 分頁。

搜尋引擎可能不會把隔離框架內的文字視為頁面的一部分。請把對搜尋重要的文字放在段落或內嵌區塊中。

嵌入其他網站的頁面

iframe 區塊用於顯示其他網站的頁面,例如影片、地圖或表單。輸入 /iframe,然後將該網站的嵌入程式碼或連結貼到 Code 分頁中。 YouTube 和 Vimeo 的連結會變成它們各自的播放器,其他任何 https 連結則照原樣嵌入。Preview 會顯示被嵌入的頁面。 開啟條目時,已儲存的區塊會等到你選擇 Load preview 才載入,因此在你提出要求之前,管理後台不會載入其他網站的頁面。 從其他網站或瀏覽器分頁貼進來的 iframe 區塊是空的。

只有 https 頁面可以被嵌入,並且該區塊只保留嵌入程式碼中它所需要的部分:位址、標題、尺寸、全螢幕支援,以及播放器使用的權限。 有些網站拒絕出現在其他網站的頁面內;它們的預覽會保持空白,或顯示來自該網站的錯誤。

執行指令碼而不是 iframe 的嵌入程式碼(例如某些社群媒體貼文)應放入 HTML 區塊。

儲存草稿變更

第一次儲存之後,編輯器會在你停止輸入兩秒後自動儲存變更。Save 按鈕會依序變為 Saving… 和 Saved,讓你確認伺服器已接受 草稿。自動儲存會取代目前的自動儲存修訂,而不是在每次停頓時都用一個 檢查點填滿修訂歷程。

如果希望編輯過程中的某個時間點保留在修訂歷程中,請選擇 Save。如果 儲存失敗,編輯器會保留未儲存的欄位並顯示錯誤。在按鈕恢復為 Saved, 或你已將未儲存的內容複製到別處之前,請不要離開頁面。

對於已發布的條目,儲存變更只會更新其草稿。訪客仍會收到 之前的線上修訂。使用 Preview draft 檢查待發布版本,使用 Live View 檢查 公開版本,當草稿準備好取代它時,使用 Publish changes。

變更已發布條目的 slug 遵循相同的草稿流程。公開 URL 會在你 發布草稿時變更,而不是在自動儲存執行時變更。

與其他編輯者協作

開啟條目會為該條目和地區設定取得編輯鎖。如果其他人已經 開啟了它,EmDash 會標明鎖的持有者,並提供兩個選擇:

  • Open read-only 以不接受編輯的方式顯示條目,這樣你就不會輸入 會被捨棄的內容。
  • Take over 將鎖交給你。對方會保留已輸入的內容,但在兩分鐘內 對方的編輯器會提示你持有該條目。對方的下一次儲存會被拒絕。

條目開啟期間,鎖會持續續期,當你離開編輯器或關閉分頁時釋放。 如果瀏覽器或電腦在未釋放鎖的情況下關閉,鎖會在最後一次 續期的七分鐘後過期。

鎖對每個地區設定是獨立的,因此兩個人可以編輯同一條目的不同翻譯。 當另一位編輯者持有鎖時,指令碼、API 用戶端或 MCP 用戶端同樣會被拒絕, 除非使用文件中說明的覆寫方式。完整的 API 行為請參閱條目編輯鎖, MCP 工具請參閱 內容生命週期與署名。

管理員可以在 Content Types 下依序開啟集合、Edit locking, 為集合關閉鎖定。

發布或排程變更

發布和排程使用不同的控制項:

  • Publish now 在確認後將新草稿上線。
  • Publish changes 在確認後將已發布條目的待發布變更上線。
  • Schedule 設定新條目或待發布變更上線的時間。
  • Change schedule 更新既有的排程。
  • Remove schedule 取消既有的排程。
  • Unpublish 將線上修訂從公開查詢中移除,取消所有排程,並保留 一份可編輯的草稿。

要為條目排程,請先儲存,選擇發布摘要下方的 Schedule,然後選擇一個 未來的日期和時間。編輯器會顯示排程所用的時區。在該時間之前, 目前的線上修訂保持公開;對於新條目,則尚無任何公開內容。

Node.js 部署會自動執行排程發布掃描。Cloudflare Workers 需要 Cron Trigger。Cloudflare 入門範本已包含它;現有部署可以依照 排程發布驗證觸發器。

查看發布日曆

日曆會顯示各集合中已發布和已排程的內容。Contributor 及更高角色可以從側邊欄或指令面板開啟 Calendar。當有內容 已排程時,儀表板的 Scheduled 計數也會連結到日曆。

日曆有兩種檢視:

  • Month 顯示日期格線。已發布的條目顯示為一般行,已排程的條目顯示為 卡片。懸停或聚焦某個條目可查看其完整標題、狀態、時間和集合。當某一天 的條目多到放不下時,選擇 +N more 即可全部列出。
  • Agenda 依天列出該月,並顯示每個條目的時間。在目前月份中,今天之前的日期 預設摺疊,除非其中某天有逾期條目,紅線標記目前時刻。

在手機或其他窄螢幕上,日曆會以 Agenda 開啟,Month 則顯示一個 日期選擇器,有條目的日期上帶有圓點。選擇某一天即可列出其條目。

選擇某個條目可在側邊面板中開啟其詳細資料,按住 Ctrl 點擊(macOS 上為 Cmd 點擊)則會 在新分頁的編輯器中開啟。面板顯示條目的狀態、時間、集合、地區設定和 翻譯、署名以及最後編輯時間。在面板中,你可以在編輯器中開啟條目、預覽已排程的變更, 或在站台上查看已發布的條目。如果你有權發布該條目 (Author 可發布自己的條目,Editor 及更高角色可發布任何條目), 還可以重新排程、移除排程,或立即發布逾期的條目。在手機上,面板會以 螢幕底部的面板形式開啟。

使用 Filter 可依集合和狀態縮小兩種檢視的範圍,在多語言站台上還可依地區設定縮小範圍。篩選器、檢視、月份和已開啟的條目 都保存在頁面 URL 中,因此你可以將其加入書籤或分享。

條目依站台所在時區放置在相應日期上,日曆會在月份旁邊標明該時區。如果你的 瀏覽器使用不同的時區,日曆會給出提示,條目時間也會以你自己的 時區顯示。

日曆會顯示:

  • 已發布的條目,顯示在其發布日期;
  • 已排程的條目,顯示在其排程日期;以及
  • 已發布條目的已排程變更,顯示在其排程日期,並標記為 Update。變更 上線後,該條目只會顯示在其原始發布日期。

排程時間已超過兩分鐘的排程會標記為 Overdue。這通常意味著 排程發布掃描沒有執行;請參閱發布或排程變更。

日曆不包含沒有排程的草稿、垃圾桶中的條目,以及在側邊欄中隱藏的 集合。儀表板的 Scheduled 計數涵蓋所有月份並包含隱藏的集合,因此 可能高於日曆為某一個月顯示的數量。

日曆每月最多載入 1,000 個條目,包括格線中顯示的 相鄰月份的日期。條目更多時,它會說明已載入的條目截止到哪一天,並將 之後的日期標記為未載入。

還原修訂

支援修訂的集合會在設定面板中顯示 Revisions。展開它可查看已儲存的 版本以及各版本之間變更的欄位。選擇一個修訂以查看其內容,如果想再次使用 該版本,請選擇 Restore。

還原會建立一個包含所選內容的新修訂。它不會刪除之前的 修訂,因此之後你仍然可以查看完整的歷程序列。

翻譯條目

當啟用國際化後,Translations 面板 會顯示目前條目已設定的地區設定。

  1. 開啟來源條目,在設定面板中找到 Translations。

  2. 為尚無條目的地區設定選擇 Translate。

  3. 編輯複製過來的標題、slug、本文和其他可翻譯欄位。

  4. 選擇 Save,然後在準備好時發布或排程該翻譯。

每個翻譯都有自己的 slug、發布狀態、排程和修訂歷程。使用集合頁面上的地區設定 選擇器可一次查看一種語言。

將內容移入垃圾桶

開啟條目的動作選單,或在集合頁面上選擇一列或多列,然後選擇 Move to Trash。移入垃圾桶的條目不再出現在一般內容查詢中,但仍可在集合的 Trash 分頁中找到。

在 Trash 中,選擇 Restore 可將條目放回集合。還原的條目會以 無排程的草稿形式返回。發布後即可公開。

自動化內容工作

REST API 和 EmDash CLI 支援相同的草稿和發布工作流程。集合欄位屬於 請求的 data 物件內部。更新會儲存一份草稿修訂;發布是單獨的操作。 更新或發布時請傳入最新的 _rev 值,這樣伺服器會拒絕過期的寫入,而不是 覆寫較新的工作成果。

狀態轉換、權限、衝突和鉤子請參閱內容生命週期參考。 REST API 參考定義了請求和回應本文, CLI 參考涵蓋了等效的終端機指令。

繼續閱讀查詢內容,了解如何在 Astro 站台中算繪已發布的條目, 或閱讀媒體庫,了解如何新增和管理可重複使用的檔案。