本教程从 Starter 模板创建 Node.js 站点。结果使用 SQLite 与本地 媒体存储,因此你可以在没有云账户的情况下完成本教程。
若你已有 Astro 站点,请改为遵循将 EmDash 添加到现有 Astro 项目。
前置条件
安装 Node.js 22.16 或更高版本以及 npm。继续前检查已安装的 Node.js 版本:
node --version
该命令必须报告 v22.16.0 或更高版本。
搭建站点
-
启动交互式脚手架:
npm
npm create emdash@latestpnpm
pnpm create emdash@latestyarn
yarn create emdashbun
bun create emdash@latest -
出现提示时选择以下选项:
- Project name:
my-emdash-site - Where will you deploy? Node.js
- Which template? Starter
- Which package manager? 保留步骤 1 中命令检测到的包管理器。
- Install dependencies? Yes
这些选择会创建带有 Posts 与 Pages 的通用 Node.js 站点。脚手架还会 将生成的
EMDASH_ENCRYPTION_KEY写入被 gitignore 的.env文件。若依赖安装失败,项目文件仍会保留。继续前请运行脚手架 打印的重试命令。
- Project name:
-
进入项目目录并启动开发服务器:
npm
cd my-emdash-site npm run devpnpm
cd my-emdash-site pnpm devyarn
cd my-emdash-site yarn devbun
cd my-emdash-site bun dev保持此终端打开。Astro 会打印本地站点 URL,通常为
http://localhost:4321/。
完成设置
打开 http://localhost:4321/_emdash/admin/。新站点会重定向到设置向导。
-
输入 Site Title 与可选的 Tagline。保持选中 Include sample content,以便教程 从模板的 Welcome 文章与 About 页面开始,然后选择 Continue。
-
输入 Your Email 与可选的 Your Name,然后选择 Continue。
-
当浏览器打开凭据提示时注册通行密钥。注册后选择 Open the dashboard。
仪表板打开,导航中有 Posts 与 Pages。设置向导已将 Starter 模板的内容模型与示例内容应用到本地 SQLite 数据库。
发布一次编辑
-
打开 Posts,然后打开 Welcome。
-
将标题改为
Hello from EmDash,然后选择 Save。 -
选择 Publish changes,使已保存的草稿成为向访客显示的版本。
-
在另一个标签页打开
http://localhost:4321/。首页会列出 Hello from EmDash。
当 Astro 渲染首页时,Starter 模板会调用 getEmDashCollection("posts")。重新加载
页面会在运行时从 EmDash 读取已发布版本。
生成的站点如何工作
脚手架会生成一个普通的 Astro 项目,EmDash 在三处连接。
astro.config.mjs 启用服务器渲染与 Node.js 适配器。它还为管理面板注册 React,
并为 EmDash 提供 SQLite 数据库与上传媒体的目录。
src/live.config.ts 文件将该基于数据库的内容连接到 Astro 的 Live Content Collections。
首页随后查询 posts 集合。其查询等价于生成页面的以下部分:
---
import { getEmDashCollection } from "emdash";
const { entries: posts, cacheHint } = await getEmDashCollection("posts", {
orderBy: { published_at: "desc" },
});
if (Astro.cache?.enabled) Astro.cache.set(cacheHint);
---
<ul>
{posts.map((post) => <li>{post.data.title}</li>)}
</ul>
seed/seed.json 定义 Posts 与 Pages 集合、它们的字段,以及设置向导应用的示例内容。
在本地开发期间,EmDash 读取该模型并刷新 emdash-env.d.ts,以便你的编辑器可以检查查询代码中的集合名称与字段。
生成的 .env 在运行时提供加密密钥。它与存储模型与内容的 SQLite 文件是分开的。
下一步
阅读架构了解这些部分如何协同工作。要将 EmDash 添加到已有站点,请遵循 将 EmDash 添加到现有 Astro 项目。 查询内容指南涵盖筛选、分页、草稿与错误处理。 当站点准备好离开你的机器时,将其部署到 Cloudflare Workers 或 Node.js。 媒体库指南说明上传、媒体字段、替换与删除。