@domandigital/sanity-copy

中文文档
0.4.13发布于 2026/11/02Apache-2.0TypeScriptESM + CJS构建来源已验证近 30 天下载 5074

Doman Digital House拷贝在Sanity Studio的检查:每个文档类型增益工艺的拷贝规则,作为引起它们的领域的验证警告. 也是文件或出口的纯检查器。 没有对健康的依赖.

中文使用文档
文档目录7 节
  1. 在一个工作室
  2. 本地化内容
  3. 屏蔽出版(选入)
  4. 搜索整个数据集
  5. 索赔清单
  6. 在代码中
  7. 许可证

@domandigital/saniity-copy (中文(简体) )

道曼数字屋拷贝查询 三一工作室内部. 每个文档类型 复制规则作为验证 警告,准确的字段 造成它们,包括在可移植文本中。 出版始终是可行的: 复制所有者类型 被建议,从不压倒.

规矩是 COPY.md 内 @domandigital/craft此软件包 只决定文档中哪些字符串是副本, 以及每项发现的位置 属于.

在一个工作室

工作在任何 Sanity工作室,v3 或以后。 只用这个 Rule.custom(), (中文(简体) ), Rule.warning() 和简单的文件操作功能,并且不从 Sanity,所以没有工作室的版本被固定. 它的测试是针对站台的 那些形状,不是现场演播室。 里面没有特定的地方 两个 步骤 :

  1. pnpm add @domandigital/sanity-copy (或npm,或纱) 在工作室的应用.
  2. 环绕类型数组 sanity.config.ts,见下文.
import { defineConfig } from "sanity";
import { withCopyCheck } from "@domandigital/sanity-copy";
import { schemaTypes } from "./schemas";

export default defineConfig({
  // ...
  schema: { types: withCopyCheck(schemaTypes) },
});

一个编辑在现场看到:

房屋规则(Em switch):"地方企业-已建". 用全站,逗号, 或者结肠.

为什么包装器不是插件:插件的 schema.types 函数运行前 工作室自己的类型被添加,所以一个插件永远不会看到它们.

选项, 全部可选 :

选项默认它会做什么
excludeTypestestimonial, (中文(简体) ), review, (中文(简体) ), proofQuote, (中文(简体) ), quote, (中文(简体) ), assist.instruction.context从来没有检查过。 一个人的自言自语可以免除每条房屋规则,AI Assistance指示文件是提示而不是复制.
skipFieldsslug, (中文(简体) ), url, (中文(简体) ), href, (中文(简体) ), link, (中文(简体) ), email, (中文(简体) ), phone, (中文(简体) ), language, (中文(简体) ), locale编号、图表从来没有读过任何深度.
reviewtrue显示评论和密度等级以及房屋规则.
languages每种语言只检查这些,例如. ["en"]. 见下文.
hiddenPaths从计划点路径从不读取. withCopyCheck 从每个静态填入 hidden: true。 。 。 .

读取什么: 字符串、 可移植文本( 块的跨度相接, 所以模板) 横跨图像的文字和标题. 哪些不是: swits, 链接, 引用, enum值, 语言标记, 资产数据, 和田地,计划隐藏 hidden: trueA级 hidden 函数不是 评估:每个文件和每个编辑决定,检查没有办法 要知道巢地的答案, 所以那些田地仍然被读取.

本地化内容

规则为英语. 在本地化的演播室,通过 languages: ["en"] 这么说 其他语言则单独使用("en" 还涵盖 en-GB 财务报告和审定财务报表 en_US) (中文(简体) ). 四个 形状识别:

形状示例语言是如何找到的
理智-插图-国际化-阵列v5[{ _key: "k8f2a", language: "fr", value }]设备 language 字段
同一插件, v4 和较早的插件[{ _key: "fr", value }]设备 _key
外地一级的翻译{ en: "...", fr: "..." }当每个密钥是双字母语言标记时
@sanity/ document-internationalization (英语){ _type: "page", language: "fr" }文档 language 字段

屏蔽出版(选入)

上面的一切都会发出警告 一间工作室想要执行房屋规则 可以包起来 发布动作,然后在文档有 屏蔽级查找,以查找为工具提示。 审查级别从未 块.

import { withCopyCheck, withCopyGuard } from "@domandigital/sanity-copy";

export default defineConfig({
  schema: { types: withCopyCheck(schemaTypes) },
  document: {
    actions: (prev) => prev.map((a) => (a.action === "publish" ? withCopyGuard(a) : a)),
  },
});

原作的动作总是被称作,所以它的行为除了.. disabled 还有工具提示 被排除在外的类型(证词和其余)永远不会 关闭.

搜索整个数据集

npx @domandigital/sanity-copy --project <id>                 # a public dataset
SANITY_API_TOKEN=... npx @domandigital/sanity-copy --project <id> --types homepage,service
npx @domandigital/sanity-copy --file export.json --json

调查结果按文件和实地开列。 退出 0 个 没有家规, 1个 至少一个, 2个 没有被检查。 读自 环境,永远不要一面旗帜。 它汇报和改变什么.

索赔清单

npx @domandigital/sanity-copy --project <id> --claims

没有样式规则可以说出一个数字是否真实. --claims 列表中 在其字段上持有价格、数字、日期或指定来源的句子, 标记 sourced (资料来源在句子或脚注中注明)或 UNSOURCED。检查每个源,然后源,纠正 或切开. 它总是退出0:一个核对表,而不是一个判决. documentClaims(doc) 代码上也一样.

在代码中

import { checkDocumentCopy, pathToString, describeFinding } from "@domandigital/sanity-copy";

for (const f of checkDocumentCopy(doc)) console.log(pathToString(f.path), describeFinding(f));

没有对疗养的依赖 没有任何工作室的进口品能触及节点 所以是一样的 检查在工作室运行,一个脚本和一个测试.

许可证

阿帕奇2.0 (英语).

版本与发布记录

@domandigital/sanity-copy 共发布 17 个版本,首次发布于 2026/09/24;过去 12 个月发布了 17 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.4.13latest2026/11/0211 天前
0.4.122026/10/2321 天前
0.4.112026/10/2024 天前
0.4.102026/10/2024 天前
0.4.92026/10/1430 天前
0.4.82026/10/091 个月前

关于 @domandigital/sanity-copy 的常见问题

@domandigital/sanity-copy 是什么?

Doman Digital House拷贝在Sanity Studio的检查:每个文档类型增益工艺的拷贝规则,作为引起它们的领域的验证警告. 也是文件或出口的纯检查器。 没有对健康的依赖.

如何安装 @domandigital/sanity-copy?

在项目目录运行 npm install @domandigital/sanity-copy,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 sanity-copy,可以用 npx sanity-copy 直接运行。

@domandigital/sanity-copy 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@domandigital/sanity-copy 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@domandigital/sanity-copy 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.12。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@domandigital/sanity-copy 可以商用吗?

@domandigital/sanity-copy 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@domandigital/sanity-copy 的下载量有多少?

根据 npm 官方下载统计,@domandigital/sanity-copy 在 2026/10/13 – 2026/11/11 这 30 天内被下载 5,074 次,日均约 169 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@domandigital/sanity-copy 还在维护吗?

最新版本 0.4.13 发布于 2026/11/02(11 天前);至今共发布 17 个版本,其中过去 12 个月发布了 17 个;首次发布于 2026/09/24。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。