SuperAPI AI 工具集

wordpress-plugin-to-emdash

编程与开发

查看项目

更新于 10-15 18:31

技能介绍

用途

该技能用于把 WordPress 插件移植到 EmDash。目标不是逐行翻译 PHP,而是保留插件对用户可见的行为和数据模型。由于 WordPress 与 EmDash 的职责划分不同,迁移前需要先判断每项功能应归属到站点 schema、Astro 代码、沙箱插件,还是受信任的原生插件。

主要能力

技能覆盖以下迁移工作:

  • 理解源插件:检查插件源码、安装行为、数据库变更、钩子、REST 端点、计划任务、后台界面、短代码或区块、前端输出、权限以及外部服务,并区分用户依赖的行为与 WordPress 特有的实现。
  • 记录关键信息:所需内容与配置数据、会修改或发布数据的操作、授权与信任边界、后台或重试行为、前端与管理员交互、导入迁移与回滚需求,以及复制资产或代码的许可义务。
  • 职责分配:把自定义文章类型、分类法、元数据映射到站点 schema 或种子创建的集合、分类法与字段;把站点级展示设置映射到 Astro 模板读取的站点设置;把插件用户设置映射到 ctx.settings;把插件游标、缓存或内部状态映射到插件作用域的 ctx.kv;把可查询记录映射到声明的 ctx.storage.<collection>;把内容发现、翻译或发布映射到受能力门控的 ctx.content 与 ctx.schema;把运行时分类法或重定向管理映射到 ctx.taxonomies 或 ctx.redirects;把评论管理映射到 ctx.comments;把 WordPress REST 端点映射到声明式插件路由;把计划事件映射到 cron 钩子与 ctx.cron;把后台页面或表单映射到沙箱插件的 Block Kit 或受信任原生插件的 React;把文章编辑器 metabox 或已保存条目操作映射到私有路由上的 admin.editorPanels 或 admin.editorActions;把用户或作者查询映射到带 users:read 的 ctx.users;把出站 HTTP 请求映射到带 network:request 与 allowedHosts 的 ctx.http.fetch();把媒体操作拆分为元数据、字节读取、元数据写入与上传/删除权限;把 WP_Query 或模板标签映射到 Astro 站点代码中的 EmDash 内容 API;把短代码或编辑器区块尽量映射到现有 Portable Text 内容;把原始 head 标记或脚本映射到受信任原生插件的 page:fragments。
  • 插件格式选择:默认使用沙箱插件,它通过安装时信任契约支持可移植钩子、路由、声明式存储、媒体、网络访问、MCP 工具与 Block Kit 后台界面。仅当功能需要宿主进程访问、React 后台代码、Astro 渲染组件、原始页面片段或自定义 Portable Text 区块定义时,才使用受信任原生插件,并在迁移计划中说明额外权限与分发限制。部分 WordPress 插件无需 EmDash 插件,自定义文章类型加前端模板可能只需 schema、种子数据与 Astro 页面。
  • 数据迁移规划:在编写运行时代码前描述现有 WordPress 数据的映射方式,包括文章 ID、slug、语言、作者、状态、修订与发布日期;保留文章、术语、媒体与插件自有记录之间的关系;区分一次性导入与需持续同步的数据;使导入可重启并定义重复检测方式;在需要协调或重定向时保留源标识符;识别无法在不做产品决策的情况下表示的内容。新站点初始 schema 与示例内容使用种子数据,现有站点生产数据使用导入器或迁移路径,种子不是备份或持续同步机制。
  • 行为等价性验证:通过用户与运行时实际使用的边界进行测试,包括内容模型变更的 schema 与导入数据断言、沙箱钩子/路由/存储/权限的生产边界插件测试、后台与前端旅程的浏览器验证,以及源功能依赖的重启、重复投递、授权与失败场景。比较可观察行为而非内部结构,记录有意差异与仍不支持的 WordPress 功能。
  • 交付移植:提供 WordPress 行为与数据的简明清单、职责映射与沙箱/原生决策、数据迁移或种子计划、插件与站点代码中的实现、验证证据与已知缺口,以及复用代码或资产的署名与许可声明。

使用方式

在实现插件代码前,先加载 creating-plugins 技能;当移植会改变集合、种子、查询或前端模板时,加载 building-emdash-site 技能。这些技能定义当前 API,而本技能负责迁移决策。

适用场景

适用于需要把现有 WordPress 插件的功能、数据与后台工作流迁移到 EmDash 的场景,尤其是涉及自定义文章类型、短代码、REST 端点、计划任务、后台页面、媒体操作或外部服务集成的插件。

限制

如果缺少源插件、预期行为或目标 EmDash 环境信息,应报告缺口,而不是凭空发明等价实现。不要通过直接访问 EmDash 系统表来创建集合或分类法,应使用公开 schema、种子、CLI 或管理边界。不要使用内部 REST 路由来模仿不存在的沙箱 API。权限必须保持分离:读取媒体元数据不等于获得字节,审核不等于删除,发布策略不等于发布操作,内容恢复不等于普通内容读取。