用途:构建 EmDash CMS 项目的站点侧部分。EmDash 是基于 Astro 的 CMS,schema 存于数据库而非代码,通过实时内容集合提供内容,管理界面位于 /_emdash/admin。站点是带 emdash 集成的标准 Astro 项目。
主要能力与要点:图片字段是对象而非字符串,需用 emdash/ui 的 Image 组件渲染;entry.id 是带语言前缀的 slug,entry.data.id 是数据库 ULID,混用会静默返回空结果;分类法名称必须与种子完全一致;启用 Astro 缓存时需把查询返回的 cacheHint 传给 Astro.cache.set,并使用带 WithCacheHint 的查询函数。CMS 内容为动态内容,页面必须服务端渲染(astro.config.mjs 中 output: "server"),不使用 getStaticPaths。
工作流:配置项目,设计 schema,构建页面,接入站点功能,创建 seed/seed.json,运行验证。使用 pnpm dev 启动 Astro 开发服务器;首次请求执行待处理迁移,setup 完成前应用一次种子的 schema 与结构,示例内容需显式步骤。启动时生成 emdash-env.d.ts。API 覆盖内容查询(getEmDashCollection、getEmDashEntry)、站点功能(设置、菜单、分类法、搜索结果、SEO 等)、署名、UI 组件(PortableText、Image、WidgetArea 等)与评论、实时搜索。插件可通过 astro.config.mjs 注册,用于钩子、存储、设置、管理界面、API 路由和自定义 Portable Text 块类型。
限制:资料未提供具体收费、价格与平台范围信息。