什么是破折号?
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)/标记工程师/前端工程师/网站总监