关于 sanity-best-practices
Sanity Best Practices 是由 Sanity 维护的开发技能,涵盖项目设置、集成、内容建模和运维。主题参考文档涉及框架、GROQ、Schema 与迁移。
主要功能
- 01框架集成指南
- 02GROQ 查询与性能建议
- 03Schema 设计和验证实践
- 04Visual Editing 与实时预览指南
- 05本地化和迁移参考文档
适用场景
- 01设置 Sanity 项目
- 02构建前端集成
- 03设计 Schema 和 GROQ 查询
- 04规划内容本地化或迁移
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sanity-io/ agent-toolkit --skill sanity-best-practices安装后在 Claude Code 中输入/sanity-best-practices确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/angular.mdapp-sdk.mdastro.mdblueprints.mddashboard.mdfunctions.mdget-started.mdgroq.mdhydrogen.mdimage.mdlocalization.mdmigration-html-import.mdmigration.mdnextjs.mdnuxt.mdpage-builder.mdportable-text.mdproject-structure.mdremix.mdschema.mdseo.mdstudio-structure.mdsvelte.mdtypegen.mdvisual-editing.md详细介绍
Sanity 最佳实践
由 Sanity 维护的 Sanity 开发全面最佳实践和集成指南。使用以下快速参考,仅加载与任务相符的一两个主题文件。
适用场景
在以下情况下,请参考这些指南:
- 设置新的 Sanity 项目或进行入门引导
- 将 Sanity 集成到前端框架(Next.js、Nuxt、Astro、Remix、SvelteKit、Hydrogen)
- 编写 GROQ 查询或优化性能
- 设计内容模式
- 实现 Visual Editing 和实时预览
- 处理图像、Portable Text 或页面构建器
- 配置 Sanity Studio 结构
- 设置 TypeGen 以确保类型安全
- 实现本地化
- 从其他系统迁移内容
- 使用 Sanity App SDK 构建自定义应用
- 在 Sanity Dashboard 中开发或部署 Studio 或应用
- 使用 Blueprints 管理基础设施
- 使用 Sanity Functions 或 Webhook 自动化内容工作流
全局规则
- 对普通文档使用 Sanity 生成的
_id值。创建文档时,请勿创建确定性 UUID、根据 slug 生成的 ID 或旧系统中的 ID。 - 使用
reference字段建模关系,然后通过 GROQ 查询、来源键字段或已创建文档返回的_id值解析相关文档。 - 仅在由 Studio Structure 控制的单例文档中使用显式文档 ID,包括本地化的单例文档,例如
homePage-en。
视频
- 在生产环境中,不要将视频存储为 Sanity
file资源或通过其提供视频。文件资源以原始下载文件的形式交付,不会转码或自适应流式传输;视频流量会带来极高的带宽用量和意料之外的高额账单。 - 对于包含视频附加功能的 Enterprise 计划,请使用 Sanity Media Library 处理视频:上传的视频会转码,并通过 Mux 进行自适应流式传输。使用
sanity/media-library中的defineVideoField()对视频字段建模,并使用@mux/mux-player-react和资源的播放 ID 播放视频。 - 对于其他计划,请使用专用视频服务:安装
sanity-plugin-mux-input,从 Studio 上传和管理 Mux 账户中的视频;或者将视频托管在 YouTube 或 Vimeo 等平台,并仅在 Sanity 中存储嵌入 URL。 - 小片段和短预览可以存储在
file字段中,但任何面向用户且规模较大的视频都必须通过 Media Library 或流媒体服务提供。
快速参考
集成指南
get-started- 新 Sanity 项目的交互式入门引导nextjs- Next.js App Router、Live Content API、独立 Studionuxt- 使用 @nuxtjs/sanity 集成 Nuxtangular- 使用 @sanity/client、signals、resource API 集成 Angularastro- 使用 @sanity/astro 集成 Astroremix- React Router / Remix 集成svelte- 使用 @sanity/svelte-loader 集成 SvelteKithydrogen- Shopify Hydrogen 与 Sanityproject-structure- 独立 Studio 和 monorepo 模式app-sdk- 使用 Sanity App SDK 构建自定义应用dashboard- Sanity Dashboard 中的 Studio 和应用:defineApplication、本地开发、部署、Dashboard hooksblueprints- 基础设施即代码:blueprint 文件、堆栈、计划/部署工作流、错误恢复、CI 部署functions- 使用 Sanity Functions 和 Webhook 自动化内容工作流
主题指南
groq- GROQ 查询模式、类型安全、性能优化schema- Schema 设计、字段定义、验证、弃用模式visual-editing- Presentation Tool、Stega、叠加层、实时预览page-builder- Page Builder 数组、区块组件、实时编辑portable-text- 富文本渲染和自定义组件image- Image schema、URL 构建器、热点、LQIP、Next.js Imagestudio-structure- Desk 结构、单例、导航typegen- TypeGen 配置、工作流、类型工具seo- 元数据、站点地图、Open Graph、JSON-LDlocalization- i18n 模式、文档级与字段级、本地化管理migration- 内容导入概览(另请参阅migration-html-import)migration-html-import- 使用 @portabletext/block-tools 将 HTML 转换为 Portable Text
使用方法
先选择与请求最匹配的框架或主题指南,然后仅在任务涉及多个方面时阅读其他参考资料。使用这些参考文件查看详细说明和代码示例:
references/groq.md
references/schema.md
references/nextjs.md
每个参考文件都包含:
- 全面的主题或集成内容
- 错误和正确的代码示例
- 决策矩阵和工作流指南
- 适用时的特定框架模式
评论
支持 Markdown