关于 umbraco-kinds
umbraco-kinds 是用于构建 Umbraco 后台扩展的技能,聚焦 Kind 预设。它引导开发者查阅最新文档,并生成 Kind 清单及继承共享默认值的扩展。
主要功能
- 01Umbraco Kind 预设指导
- 02查阅最新扩展文档
- 03创建 Kind 清单及使用它的扩展
- 04在扩展间共享默认属性
适用场景
- 01统一相关扩展的属性结构
- 02生成 Kind 及使用它的扩展
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ umbraco/ umbraco-cms-backoffice-skills --skill umbraco-kinds安装后在 Claude Code 中输入/umbraco-kinds确认已加载。
详细介绍
Umbraco Kinds
什么是 Kind?
Kind 是一种预设配置,扩展会继承它以保持一致性。它通过定义可供多个扩展共用的默认属性,减少重复。Kind 可确保扩展采用标准化结构,并通过提供扩展自动继承的预定义属性,简化定义。
文档
实现前务必获取最新文档:
- 主要文档:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/kind
- 基础:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation
- 扩展注册表:https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry
工作流
- 获取文档 - 对上述 URL 使用 WebFetch
- 询问问题 - 扩展类型是什么?要共享哪些默认属性?
- 生成文件 - 根据最新文档创建 Kind 清单和使用它的扩展
- 说明 - 展示创建的内容及测试方法
最小示例
注册 Kind
import type { UmbExtensionManifestKind } from '@umbraco-cms/backoffice/extension-api';
export const customButtonKind: UmbExtensionManifestKind = {
type: 'kind',
alias: 'My.Kind.HeaderAppButton',
matchType: 'headerApp',
matchKind: 'button',
manifest: {
elementName: 'umb-header-app-button',
},
};
在扩展中使用 Kind
const manifest = {
type: 'headerApp',
kind: 'button', // Uses the 'button' kind
name: 'My Header App',
alias: 'My.HeaderApp',
meta: {
label: 'My App',
icon: 'icon-heart',
href: '/my-app',
},
};
带有默认 Meta 属性的 Kind
export const cardKind: UmbExtensionManifestKind = {
type: 'kind',
alias: 'My.Kind.DashboardCard',
matchType: 'dashboard',
matchKind: 'card',
manifest: {
elementName: 'my-dashboard-card',
meta: {
// Default meta properties
size: 'medium',
color: 'default',
},
},
};
// Extension inherits defaults, can override
const dashboard = {
type: 'dashboard',
kind: 'card',
alias: 'My.Dashboard',
name: 'My Dashboard',
meta: {
label: 'Stats',
pathname: 'stats',
// size and color inherited from kind
},
};
就是这样!务必获取最新文档,保持示例简洁,并生成完整可运行的代码。
评论
支持 Markdown