SuperAPI AI 工具集

sanity-plugin-authoring

编程与开发

查看项目

更新于 10-16 03:03

技能介绍

用途:说明并创建 Sanity Studio 插件,适用于制作面向用户的插件、通过插件添加工具等场景。

主要能力:插件是可通过 plugins 数组加入 Studio 的命名配置包,可接受大多数工作区配置属性,但不能设置 dataset、projectId、auth、theme 等由工作区拥有的设置。插件需使用稳定唯一的名称,推荐用 definePlugin() 以获得类型与自动补全。可配置插件使用 definePlugin((options) => ({...})),选项命名空间应保持可扩展,倾向 {feature: {enabled: true}} 这类对象结构。

插件可提供:document(文档操作、徽章、production URL 解析器、新文档默认值)、form(表单定制、资源来源、自定义输入渲染)、plugins(嵌套插件)、tools(Studio 工具)、schema(schema 类型与初始值模板)、studio(Studio 组件覆盖与中间件)、i18n(插件 UI 的本地化资源包)、title、onUncaughtError。应使用能解决问题的最小接口面。

工具:工具是带路由和可预测 URL 的顶层 Studio 视图,常代表全屏工作流。通过插件的 tools 属性添加,需给出稳定 name、title、component,必要时提供 router。工具视觉顺序受添加顺序影响;需要自定义菜单顺序时用 studio.components.toolMenu;改变默认打开工具需用顶层 tools reducer 模式。

Studio 组件:studio.components 可定制 Studio UI 部分,接收 renderDefault 的组件属于中间件,除非有意替换默认 UI,否则应调用 props.renderDefault(props)。注意不要意外改变滚动容器或布局归属。

本地化资源:若插件渲染 UI 文本,应添加 i18n bundle 而非硬编码字符串。通常文件结构为 feature/i18n/index.ts、feature/i18n/resources.ts 与 feature/plugin/index.ts。在 i18n/index.ts 中定义命名空间与默认美式英语 bundle,在 resources.ts 中导出默认字符串与键类型,然后在插件中通过 i18n.bundles 注册。

编码前:判断功能属于插件、工具、schema 扩展、表单扩展还是文档扩展;查看仓库中现有插件示例;选择稳定插件名;决定是否需要选项;为配置行为添加聚焦测试。Sanity monorepo 默认插件接线可参考 sanity-core-plugin。

限制:资料未提供具体收费、价格、平台支持范围或效果数据。