Product Roadmap
公开路线图:用户可以为想法投票并提交自己的建议,并附有记录已发布内容的更新日志。
插件
Product Roadmap
公开路线图:用户可以为想法投票并提交自己的建议,并附有记录已发布内容的更新日志。
描述
适用于任何 EmDash 站点的公开路线图。访客可以看到你正在考虑、正在开发和已经发布的内容。他们可以投票,也可以提交一个等待你批准的想法。
你将获得
- 自定义阶段名称的看板。 默认从 Under review、Planned、In progress 和 Done 开始。可以添加、隐藏、重命名或重新排序。
- 投票。 每人对每个条目只能投一票。再次点击即可撤回。
- 需审批的建议。 想法会保存为草稿。你可以批准它上板,或拒绝它。
- 访客或会员。 由你选择谁可以投票和提出建议。访客需要填写姓名。写出的想法始终需要等待审核。
- 更新日志。 第二个集合,带有列表页面和每个版本各一个页面。
- 评论。 条目页面使用 EmDash 自带的评论。无需额外审核。
- 合并。 把重复的条目并入你保留的条目。票数会一并转移,每人一票。
它如何协同工作
插件是引擎:路由、存储和后台界面。EmDash 插件无法为你的站点添加页面,所以公开页面以站点套件的形式提供,只需复制一次。参见“安装”。
每小时的电子邮件需要邮件服务提供商。即使关闭邮件,仪表板卡片仍会显示有多少想法在等待。
安装
安装之前
1. 你的站点需要沙箱运行器。 注册表插件在沙箱中运行。在站点具备沙箱运行器之前,Admin、Plugins 会显示“No plugins configured”,菜单中也没有 Registry。
- Node: 在你的站点中运行
npm install @emdash-cms/sandbox-workerd workerd,然后在astro.config.mjs的emdash()内添加sandboxRunner: "@emdash-cms/sandbox-workerd/sandbox",。 - Cloudflare: 添加
import from "@emdash-cms/cloudflare";和sandboxRunner: sandbox(),。它需要 Workers Paid 套餐、名为LOADER的worker_loaders绑定(在你的 Wrangler 配置中取消注释),以及作为storage: r2(...)的 R2 存储桶,否则安装会因 “Storage error while installing plugin” 而中止。然后运行npm run deploy。
停止开发服务器并重新启动。现在后台菜单中会显示 Registry。
2. 插件是引擎。访客页面来自它的站点套件。 注册表插件无法为你的站点添加页面。在你复制套件之前,它的地址(例如 /roadmap/)会显示你站点的 404 页面。这是正常现象。下面的套件复制只需一条命令。
3. 你需要 Node 22.16 或更高版本,用于 npx emdash seed 这一步。
已在 EmDash 1.3.1 上使用 blog 模板验证,包括 Node 和 Cloudflare Workers(通过注册表安装)。
安装步骤
-
Admin、Registry,搜索 Product Roadmap,Install,然后接受权限。
-
在你站点的根文件夹中运行:
kit="$(mktemp -d)" && git clone --depth 1 \ --branch v0.4.0 \ https://github.com/wbcomdesigns/emdash-roadmap \ "$kit/emdash-roadmap" && "$kit/emdash-roadmap/scripts/add-to-site.sh" . -
无需粘贴任何内容。重启开发服务器。
-
在 Admin、Menus 中添加打印出的链接。
-
打开 Admin、Roadmap、Ideas。
每次更新后,请使用新标签运行第 2 步。完整指南:https://github.com/wbcomdesigns/emdash-roadmap/blob/v0.4.0/docs/website/getting-started/install.md
常见问题
为什么安装后 /roadmap/ 是 404?
插件无法创建页面。请使用你所安装版本的标签,运行“安装”选项卡(或 Admin、Roadmap、Ideas)中的套件命令,然后重启开发服务器。
看板提示无法加载。 请从你所安装版本的标签再次复制套件。套件和插件是同时发布的。
访客可以投票和提出想法吗?
可以,前提是 Settings 设为 Anyone(默认),并且主机向 EmDash 提供了访客的地址:Cloudflare,或站点配置中的 trustedProxyHeaders。否则,访客会看到登录链接,Settings 也会如此说明。每个想法都需要等你批准。
访客在浏览器控制台中看到 401。 这是预期的:页面会先检查已登录会员的投票。页面本身没有问题。
如何把条目移到另一个阶段? 在条目的编辑界面,使用右侧的 Stage 面板。
新想法会立即上线吗? 不会。建议会保存为草稿。在 Ideas 中批准它,才会放到看板上。
如果我重命名某个阶段会怎样? 看板会使用新名称。条目仍留在该列中。你无需逐个编辑条目。
它支持深色模式吗? 支持。套件的颜色会跟随你站点的主题。
它会发送电子邮件吗? 如果站点有邮件服务提供商,当有想法在等待时,每小时发送一条简短通知。通知中没有想法的文字,也没有链接。仪表板卡片始终显示数量。
有付费版本吗? 没有。这里的一切都是免费的。
更新日志
0.4.0
在繁忙的测试站点上,每个页面、投票和后台界面现在都保持在 Cloudflare 每次插件调用 10 个请求的上限之内。在 Cloudflare 上验证之前,仍将其标记为不支持。没有新增权限。
- 新增:每个条目会保留一个持续更新的票数;0.3.0 的票数会在 Ideas 页面加载时和每小时重新构建。
- 改进:合并、Roadmap 票数清除和每小时清理都分步骤运行。
- 修复:在 Cloudflare 上,访客的投票曾被以“不在看板上”为由拒绝。
- 修复:套件脚本不再声称在 Cloudflare 站点上已创建内容类型。
更新后请再次复制套件。在此之前,按分类筛选的看板会显示所有条目,而 Take back all my votes 在 7 次之后会因错误而停止。
kit="$(mktemp -d)" &&
git clone --depth 1 \
--branch v0.4.0 \
https://github.com/wbcomdesigns/emdash-roadmap \
"$kit/emdash-roadmap" &&
"$kit/emdash-roadmap/scripts/add-to-site.sh" .
0.3.0
新权限:Read retained content revision history,使 Stage 面板能在条目有未发布的更改时查看并移动它。更新时你只需批准一次。访客需要有访客地址才能投票。更新后请再次复制套件:
kit="$(mktemp -d)" &&
git clone --depth 1 \
--branch v0.3.0 \
https://github.com/wbcomdesigns/emdash-roadmap \
"$kit/emdash-roadmap" &&
"$kit/emdash-roadmap/scripts/add-to-site.sh" .
- 新增:Set up visitor pages 卡片;scripts/add-to-site.sh 会复制整个套件。
- 改进:Stage 面板是设置阶段的唯一位置。
- 修复:Ideas 计数、嵌套表单、对齐、深色模式。
- 安全:没有访客地址时不允许访客写入;每个 IPv4 或 IPv6 /64 只算一位访客;哈希在 30 天后清除。
0.2.1
- 修复:My votes 文件不再与 WB Polls 的文件同名,因此两个套件可以并存于同一站点。更新后请再次复制套件。
更早的版本:https://github.com/wbcomdesigns/emdash-roadmap/blob/main/CHANGELOG.md