用途:为 marimo notebook 生成 anywidget 组件,产出可在 notebook 中显示和交互的自定义控件。\n\n主要能力与约定:在 _esm 中使用 vanilla JavaScript,定义接收 { model, el } 的 render 函数;用 model.get() 读取 trait 值,用 model.set() 与 model.save_changes() 更新,用 model.on("change:traitname", callback) 监听变化,并在末尾 export default { render };。同时提供 _css,样式需在浅色与深色模式下都显得得体,深色模式用 @media (prefers-color-scheme: dark);除非明确要求,CSS 保持精简。\n\n使用方式:显示时须包装为 widget = mo.ui.anywidget(OriginalAnywidget());在其他单元格中通过 widget.value 取值,它是字典,例如 print(widget.value["number"])。当 JavaScript 或 CSS 较多时,可用 pathlib 把 _esm 和 _css 指向外部文件,路径相对项目目录,考虑使用 Path(file),不要读取项目外文件(如 ~/.ssh、~/.env、/etc/)或将其内容嵌入控件输出。\n\n其它建议:组件继承 anywidget.AnyWidget,widget.observe(handler) 仍是响应状态变化的标准方式;Python 构造函数通常会校验边界、长度或选择数量,可让抛出的 ValueError/TraitError 引导处理。分享示例时保持最小化,只展示核心用法,除非明确要求不要与其他 marimo UI 元素组合。\n\n限制:资料未提供该技能的安装方式、平台支持范围、收费与授权信息。
anywidget-generator
数据与分析
更新于 10-15 20:33