定制应用程序配置编辑
探索如何在 Studio 中通过提供 schema 来自定义应用程序配置编辑。确保流畅且结构化的内容管理体验。
进入编辑器的 配置 选项卡后,你可以浏览配置以自定义你的网站。这些配置代表你在 app.config.ts 文件中定义的设置。
app.config.ts
app.config.ts 文件是 Nuxt 3 中引入的配置文件。它是一个 TypeScript 文件,允许你配置应用程序设置的各个方面。开发人员可以使用此文件轻松地将任何网站变成可配置的体验。
自定义编辑
确保你的应用程序中至少有一个空的配置文件。
app.config.ts
export default defineAppConfig({})
要在 Studio 中为你的 app.config.ts 创建自定义的编辑体验,你需要在你的项目中创建一个 nuxt.schema.ts 文件。此 schema 用作你的 app.config.ts 的表示。
助手函数
这些助手函数由 Nuxt Content
Preview API 提供。group方法允许你自定义父对象。field方法允许你自定义输入(即叶子节点)。
nuxt.schema.ts
import { field, group } from '@nuxt/content/preview'
export default defineNuxtSchema({
appConfig: {
parent: group({
title: 'Parent title',
description: 'Parent description.',
icon: 'i-icon-to-display',
fields: {
leaf: field({
type: 'Type of component used to edit your field',
title: 'Field title',
description: 'Field Description',
icon: 'i-icon-to-display',
default: 'default value'
})
}
})
}
})
不必包含所有的应用程序配置键;只需要添加你希望在 Studio 界面上展示的那些。
输入类型
field() 方法的第一个参数中的 type 可以接受各种值:
- string
- number
- boolean
- array
- object
- icon
- media
基于这些值,Studio UI 将会调整以显示适当的输入类型。例如,对于 icon 类型会显示一个图标选择器,而对于 media 类型则会显示媒体库。
如果 field() 方法中提供了 required 键,则文本可以显示为选择框而不是经典的输入框:
nuxt.schema.ts
import { field, group } from '@nuxt/content/preview'
export default defineNuxtSchema({
appConfig: {
parent: group({
title: 'UI',
description: 'UI configuration',
icon: 'i-ph-palette-fill',
fields: {
primary: field({
type: 'string',
title: 'Primary',
description: 'Primary color of your UI.',
icon: 'i-ph-palette',
default: 'sky',
required: ['sky', 'mint', 'rose', 'amber']
})
}
})
}
})
在 Studio 上编辑
一旦你的 schema 部署完毕,任何用户都可以访问 数据 部分并使用生成的表单。
表单中的任何更新都将直接应用于 app.config.ts 文件。你可以在审查页面上查看这些更改。

export default defineNuxtSchema({
ui: group({
title: 'UI',
description: 'UI Customization.',
icon: 'i-mdi-palette-outline',
fields: {
primary: field({
type: 'string',
title: 'Primary',
description: 'Primary color of your UI.',
icon: 'i-mdi-palette-outline',
required: ['sky', 'mint', 'rose', 'amber', 'violet', 'emerald', 'fuchsia', '...']
}),
gray: field({ ... }),
icons: group({
title: 'Icons',
description: 'Manage icons used in UI Pro.',
icon: 'i-mdi-application-settings-outline',
fields: {
search: field({ ...}),
dark: field({ ... }),
light: field({ ... }),
external: field({ ...}),
chevron: field({ ... }),
hash: field({ ... })
}
})
}
})
})