EmDash 主题是作为 create-astro 模板分发的完整 Astro 项目。它包含公开路由与组件、EmDash 运行时配置,以及用于站点初始内容模型的可选种子文件。
没有运行时主题包或模板层次结构。脚手架之后,主题文件属于站点,可以直接编辑。
主题内容
当前 EmDash 模板使用这些路径:
astro.config.mjs
package.json
seed/
└── seed.json
src/
├── components/
├── layouts/
├── live.config.ts
├── pages/
└── styles/
astro.config.mjs配置服务器输出、部署适配器、EmDash、数据库和存储。src/live.config.ts注册_emdashlive collection。src/pages/定义公开路由。seed/seed.json可以声明初始集合、字段、设置、分类法、署名、菜单、重定向、小部件区域、版块和示例内容。package.json#emdash.seed指向种子文件。
空白模板故意没有用户种子,并回退到 EmDash 的内置默认种子。其他当前模板指向 seed/seed.json。
安装模板
以下命令搭建 Node 博客模板:
npm create astro@latest -- --template @emdash-cms/template-blog
对于 Cloudflare Workers 项目,使用对应的 -cloudflare 包:
npm create astro@latest -- --template @emdash-cms/template-blog-cloudflare
当前模板包包括:
| 用途 | Node | Cloudflare |
|---|---|---|
| 空项目外壳 | @emdash-cms/template-blank | 目前无对应包 |
| 基础页面站点 | @emdash-cms/template-starter | @emdash-cms/template-starter-cloudflare |
| 文章、页面、分类、标签与小部件 | @emdash-cms/template-blog | @emdash-cms/template-blog-cloudflare |
| 项目作品集 | @emdash-cms/template-portfolio | @emdash-cms/template-portfolio-cloudflare |
| 由版本化区块组成的营销页面 | @emdash-cms/template-marketing | @emdash-cms/template-marketing-cloudflare |
脚手架之后,安装依赖并启动生成的站点:
cd my-site
npm install
npm run dev
打开 http://localhost:4321/_emdash/admin。首次访问会重定向到设置,在此输入站点身份与管理员详细信息。当所选模板有示例条目时,向导还可让你包含或省略它们。评估设计时包含它们很有用,因为路由有可渲染的真实内容。
首次设置
EmDash 在构建时读取种子。按此顺序查找:
.emdash/seed.json。package.json#emdash.seed中的路径。seed/seed.json。- 未找到用户种子时的内置默认种子。
首次访问管理后台时,设置向导会显示种子元数据,并让管理员选择是否包含示例内容。它将种子应用到空数据库并记录设置完成。之后的启动不会对现有站点重新应用种子。
自定义已安装的站点
直接编辑生成的项目:
- 更改
src/pages/中的路由文件。 - 更改
src/layouts/与src/components/中的共享标记。 - 在首次设置前更改
seed/seed.json中的初始模型。 - 在管理后台的 Content Types 下管理现有站点的模型。