插件通过定义的扩展接口扩展 EmDash。它们可以响应内容生命周期事件、存储自己的数据、向管理员公开设置、向管理面板添加页面并提供 API 路由。
插件可以做什么
响应事件
在内容保存、媒体上传、评论审核、计划任务和插件生命周期事件时运行代码。
存储数据
在索引集合中持久化插件特定的记录,以及每个插件的键值存储用于设置和状态。
添加管理页面
向管理面板贡献页面和仪表板小部件,并提供自动生成的设置表单。
提供 API 路由
在 /_emdash/api/plugins/<id>/<route> 下暴露端点,供管理 UI 或外部集成使用。
调用外部 API
使用声明的主机白名单发起 HTTP 请求。
发送邮件
通过配置的提供商发送事务性邮件。
两种插件类型
EmDash 插件有两种格式:
- 沙箱插件在由可配置的沙箱运行器管理的隔离运行时中运行。它们可以从市场一键安装,受能力和资源强制约束,并且只能访问它们声明的 API。这是大多数插件的推荐选择。
- 原生插件在与您的 Astro 站点相同的进程中运行。它们可以完全访问运行时,可以提供 React 管理页面和 Portable Text 渲染组件,并向公共页面注入 HTML。它们通过代码更改加部署安装,并从 npm 而不是市场运行。
如果您要安装别人构建的插件,几乎总是需要沙箱插件。如果您要自己构建插件,请参阅选择插件格式。
对于站点运营者
如果您想在站点上安装或配置插件:
安装插件
从市场安装、启用、配置设置。
对于插件作者
如果您想构建插件: