什麼是破折號?
Cloudflare 發布了一款 CMS,並認為它是 WordPress 的精神繼承者。
它是一款採用現代架構的全端 CMS,結合了各種 Cloudflare 資源(D1/R2/Workers)和 Astro,真正是一個 Cloudflare 生態系統 CMS!
為了看看會發生什麼,我嘗試將使用 microCMS 實現的部落格遷移到了 EmDash。
遷移後的網站在這裡。 → 尤魯洛格
這只是一個實驗性網站,所以目前我使用的是預設主題。之後我會換用其他設計。
設定過程
1. 專案創建
npm create emdash@latest執行此流程。您將被互動式地問到各種問題,請選擇合適的選項。
2. 建立 Cloudflare 資源
建立這樣的資料庫和儲存方式,可以簡化部署過程。
npx wrangler login
npx wrangler d1 create my-site
npx wrangler r2 bucket create my-site-media
npm run build && npm run deploy
3. 地方發展
npx emdash dev這將啟動您的本地環境。
管理畫面http://localhost:4321/_emdash/admin造訪[網站/連結]並進行設定。
4. 部署和初始設定
npx wrangler deploy然後將其部署到 Workers 伺服器。https://[name].workers.dev它將在[平台名稱]上發布。
由於本機資料庫和遠端資料庫是獨立的,即使使用遠端管理螢幕,也需要進行初始設定(建立管理員帳戶)。
透過與 GitHub 儲存庫連接,您也可以使用推送自動部署(Cloudflare 控制面板 → 工作程序 → 設定 → 建置 → 與 Git 儲存庫連接)。
5. 從microCMS遷移文章
建立遷移腳本,從 microCMS API → EmDash CLI 取得所有文章content create我添加了。
觀點
- 將microCMS富文本編輯器(HTML)轉換為Markdown,然後匯入。
- 這些圖像最初是使用外部 URL 遷移的,後來上傳到 R2,並在 R2 中更新了引用。
npx emdash seed不npx emdash content create使用 (因為種子不會創建修訂版本,所以文章將不會顯示)
我真的試過了
此 CMS 結合了Headless CMS 的易於設定和實施以及全端 CMS 的端到端控制的便利性,提供了兩者的最佳組合。
最棒的是,由於它是基於Astro的,你可以充分利用你現有的知識和技能,這非常棒。它似乎很適合中小型部落格。
然而,由於它仍處於測試階段,
- 草稿預覽功能預設無法使用(請參閱下文)。
- 所見即所得 (WYSIWYG) 中不反映居中和右對齊。
- 編輯選單中的項目時,使用相對路徑會導致錯誤。
- 自訂欄位無法排序。
- 無法邀請用戶
有一些需要關注的問題,例如上面提到的問題(截至 v0.1.0 版本)。
關於草稿預覽
雖然編輯畫面上有一個「預覽草稿」按鈕,但無法預覽草稿形式的文章。
EmDash 具有預覽機制,但預設似乎未啟用,因此需要執行下列步驟。
- 環境因素
PREVIEW_SECRET設定任意密鑰(npx emdash auth secret(可透過以下方式產生) - 在文章頁面上
verifyPreviewToken使用此方法取得草稿。
import { getEmDashEntry, verifyPreviewToken } from "emdash";
const preview = await verifyPreviewToken({
url: Astro.url,
secret: import.meta.env.PREVIEW_SECRET,
});
const { entry, isPreview } = await getEmDashEntry("posts", slug, { preview });
現在您可以透過管理面板中的「預覽草稿」按鈕查看您的文章草稿。
概括
這次,我按照基本原理將其實現為一個全端應用程序,但它似乎也可以通過 fetch 接收文章並構建 SSG 來用作“Headless CMS”,所以我下次想嘗試一下。
這仍然是一個非常新的測試版。我非常期待看到它未來的發展!
他從桌面排版領域轉戰網頁設計,迅速成為一位技藝精湛的“大師”,精通標記語言、前端設計、方向指導和無障礙設計。自 Liberlogic 創立以來,他一直活躍於各個領域,如今已成為公司內部的活字典。最近,他沉迷於探索如何利用提示來提高效率,並思考著「我們能否更依賴人工智慧來實現無障礙設計?」他的技術和思維仍在不斷發展。
Futa
IAAP認證的Web無障礙專家(WAS)/標記工程師/前端工程師/網站總監