如何从 sanity desk 结构中删除特定文档?

问题描述 投票:0回答:2

我将媒体库插件添加到我的 sanity structure builder 中,但想删除插件创建的“媒体标签”文档

但是,您可以通过使用 Sanity 的结构构建器定义您自己的自定义办公桌来覆盖此行为,并在您的定义中简单地省略 media.tag 文档类型

我不清楚如何用我目前的结构做到这一点

  plugins: [
    deskTool({
      structure: pageStructure([home, settings]),

      defaultDocumentNode: previewDocumentNode({ apiVersion, previewSecretId }),
    }),

    singletonPlugin([home.name, settings.name]),

    productionUrl({
      apiVersion,
      previewSecretId,
      types: PREVIEWABLE_DOCUMENT_TYPES,
    }),
    media(),
    vercelDeployTool(),
    visionTool({ defaultApiVersion: apiVersion }),
  ],
javascript sanity
2个回答
0
投票

项目设置在

JSON
。 您调用的函数可能也返回
JSON
。所以应该有一个简单的解决方法。

其中一个函数添加了一个属性

media.tag
及其值。 (我不知道具体是哪个函数,但你可以通过打印
plugins
数组中的每个对象轻松找到)。

一旦你发现了这一点,你就可以在 JavaScript 中使用

delete
运算符。

这里有一个简单的例子,你可以很容易地推导出来:

const plugins = {
    // other properties here
    media: {
        tag: "plugin-tag",
        // other properties here
    },
}

delete plugins.media.tag // returns true if property deleted.

/*
Plugins object after deletion of `media.tag`:

const plugins = {
    // other properties here
    media: {
        // other properties here
    },
}
*/

⚠️注意:我把

tag
当作
media
对象上的属性,如果
media.tag
是单个属性的名称,请使用括号符号(
["media.tag"]
)代替。

完成此操作后,您“在定义中省略了 media.tag 文档类型”,您应该可以开始了。


-1
投票

在 Sanity 中,桌面结构是内容模式和其中包含的数据的可视化表示。桌面结构提供了一种在 Sanity 中组织和管理内容的方法,可以通过 Sanity Desk 界面访问它。

要从 Sanity Desk 结构中删除特定文档,您可以按照以下步骤操作:

  1. 登录到您的 Sanity Desk 帐户。
  2. 导航到包含要删除的文档的数据集。
  3. 单击文档将其选中。
  4. 单击文档编辑器顶部的“删除”按钮 窗口。
  5. 再次点击“删除”确认您要删除文档
    在确认弹出窗口中。

或者,您也可以通过运行以下命令使用 Sanity CLI 删除文档:

sanity documents delete <documentID>

替换为您要删除的文档的ID。您可以在 URL 中找到文档 ID,也可以使用 Sanity API 查询文档。

© www.soinside.com 2019 - 2024. All rights reserved.