用途
Makepad Router 是一个面向 Makepad/Robius 开发的问题路由技能,版本 2.0.0。它的核心作用不是直接回答问题,而是充当入口:当用户提出与 Makepad 或 Robius 相关的问题时,该技能会根据问题中的关键词,判断并加载相应的子技能,使后续回答能够基于正确的知识上下文展开。
主要能力
该技能提供一张路由表,将关键词映射到需要加载的子技能。覆盖的主题包括:
- 应用结构与入门:live_design!、app_main!、getting started、app structure,对应 makepad-basics。
- DSL 与继承:DSL、inheritance、<Widget>、Foo = { },对应 makepad-dsl。
- 布局:layout、Flow、Walk、padding、width、height、center、align,对应 makepad-layout。
- 控件:View、Button、Label、Image、TextInput、widget、Markdown、Html,对应 makepad-widgets。
- 事件与动作:event、action、Hit、FingerDown、handle_event、click,对应 makepad-event-action。
- 动画:animator、state、transition、hover、pressed,对应 makepad-animation。
- 着色器:shader、draw_bg、Sdf2d、gradient、glow、shadow,对应 makepad-shaders。
- 字体:font、text_style、font_size、glyph,对应 makepad-font。
- 平台:platform、macOS、Android、iOS、WASM,对应 makepad-platform。
- 异步架构:tokio、async、spawn、submit_async,对应 robius-app-architecture。
- Robius 控件模式:apply_over、modal、collapsible、pageflip,对应 robius-widget-patterns。
- Robius 事件动作:custom action、MatchEvent、post_action,对应 robius-event-action。
- 状态管理:AppState、persistence、theme switch,对应 robius-state-management。
- 部署:deploy、package、APK、IPA,对应 makepad-deployment。
- 排错:troubleshoot、error、debug,对应 makepad-reference。
使用方式
当技能被触发时,需要根据问题内容加载对应的子技能。对于复杂任务,技能定义了上下文组合加载规则,例如:
- 创建控件/组件:加载 makepad-widgets、makepad-dsl、makepad-layout、makepad-animation、makepad-shaders、makepad-event-action。
- 构建完整应用:加载 makepad-basics、makepad-dsl、makepad-layout、makepad-widgets、makepad-event-action、robius-app-architecture。
- UI 设计:加载 makepad-dsl、makepad-layout、makepad-widgets、makepad-animation、makepad-shaders。
- 生产模式:加载 robius-app-architecture、robius-widget-patterns、robius-state-management。
此外还定义了技能依赖关系,加载某技能时需同时加载其依赖,例如 makepad-widgets 需同时加载 makepad-layout 与 makepad-dsl;makepad-animation 需同时加载 makepad-shaders;makepad-shaders 需同时加载 makepad-widgets;robius-widget-patterns 需同时加载 makepad-widgets 与 makepad-layout。
技能中给出了一个示例工作流:用户询问“如何创建一个带悬停动画的自定义按钮”,分析关键词为 custom、button、hover、animation,上下文为控件创建,因此加载 makepad-widgets、makepad-animation、makepad-shaders、makepad-event-action,并综合这些技能中的模式来回答。
默认项目设置
创建 Makepad 项目时,技能给出的默认配置为:
[package]
edition = "2024"
[dependencies]
makepad-widgets = { git = "https://github.com/makepad/makepad", branch = "dev" }
[features]
default = []
nightly = ["makepad-widgets/nightly"]
关键模式速查
控件定义示例:
#[derive(Live, LiveHook, Widget)]
pub struct MyWidget {
#[deref] view: View,
#[live] property: f64,
#[rust] state: State,
#[animator] animator: Animator,
}
异步模式(Robius):
// UI -> Async
submit_async_request(MyRequest { ... });
// Async -> UI
Cx::post_action(MyAction { ... });
SignalToUI::set_ui_signal();
适用场景
适用于所有 Makepad/Robius 相关问题,包括控件、布局、事件、着色器等。尤其适合需要跨多个子技能综合回答的复杂任务,如创建自定义控件、构建完整应用、进行 UI 设计或采用生产级模式。
限制
该技能本身是路由层,不直接提供具体实现细节,实际内容依赖所加载的子技能。资料中未提供各子技能的详细内容、收费信息、价格或平台支持范围等,暂未提供。