mcpField
V
vanilla-lynx

vanilla-lynx

github.com/lynx-community开发28181 次安装1 天前更新
代码仓库

关于 vanilla-lynx

vanilla-lynx 是用于直接使用 Element PAPI 和 Lynx Runtime API 编写 Vanilla Lynx 的技能,面向 Lynx 开发者。它支持无需构建的 .lynxml 与 Rspeedy 项目,并提供线程、生命周期和验证方面的约束。

主要功能

  1. 01使用 Element PAPI 编写界面
  2. 02选择 .lynxml 或 Rspeedy 输出
  3. 03遵循主线程与后台线程职责
  4. 04处理生命周期事件和监听器
  5. 05按目标格式运行与验证产物

适用场景

  1. 01创建无需构建步骤的 .lynxml 页面
  2. 02搭建带构建配置的 Rspeedy 项目
  3. 03实现 Element PAPI 界面更新
  4. 04为 Lynx 运行时接入后台逻辑

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/lynx-community/skills --skill vanilla-lynx

安装后在 Claude Code 中输入/vanilla-lynx确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

CHANGELOG.md
assets/examples/
counter.lynxml
external-bundle.lynxml
ping-pong.lynxml
evals/
evals.json
trigger_eval.json
references/
background.md
event.md
external-build.md
external-runtime.md
lynxml.md
main-thread.md
rspeedy-project.md
style.md

详细介绍

使用 Element PAPI 编写 Vanilla Lynx

使用此技能,通过 Element PAPI 和 Lynx Runtime API 直接编写 Vanilla Lynx,无需 ReactLynx 或 JSX。将免构建的 .lynxml 和 Rspeedy 视为同等的输出格式。

选择输出格式

  • 如果用户要求单个文件、免构建或可直接加载的输出,或者明确表示不要添加构建步骤,请选择 .lynxml。
  • 如果用户要求 Rspeedy、项目脚手架或构建配置,或者要求生成通过构建产生的应用包,请选择 Rspeedy。
  • “应用”“页面”“卡片”或“项目”等泛称本身不能决定格式。如果完整的编写请求没有明确的交付或构建要求,或者格式要求相互冲突,请在生成交付内容前提出一个简短的澄清问题。除非用户要求两种格式,否则不要同时生成两种完整格式。
  • 对于范围明确的源码问题或代码片段请求,直接回答所请求的内容,无需强行确定输出格式。

核心规则

  • 不要使用 ReactLynx、JSX、虚拟 DOM 或浏览器 DOM API。
  • 对于完整的编写请求,请按选定格式交付完整产物。绝不要只返回示例资源或参考路径。
  • Element PAPI 树的创建、变更、生命周期渲染和 UI 更新必须放在主线程源码中:.lynxml 使用 <script thread="main">,Rspeedy 使用 main-thread.ts。绝不要在后台线程源码中调用 Element PAPI API 或 __FlushElementTree();后台线程只能发送可序列化的补丁,供主线程应用并刷新。
  • 初次渲染依赖 SDK 刷新;后续 UI 变更后调用 __FlushElementTree()。
  • 仅在处理较重的业务逻辑、异步任务、计时器、原生调用或数据处理时添加后台线程源码。跨线程负载必须可序列化。
  • lynx.getEngine() 仅用于引擎定义的生命周期事件,例如 __RenderPage、__UpdatePage 和 __DestroyLifetime;绝不要用它处理应用定义的线程本地或跨线程事件。如果实现不需要生命周期处理器的事件负载,可忽略该负载。对于长期存在的监听器和跨线程监听器,请保留稳定的处理器引用;销毁时,使用相同的上下文和事件名称移除监听器,不要注册内联回调。
  • 外部包的构建和加载必须分开,并且仅在后台处理。外部模块必须使用纯 TypeScript 或 JavaScript;绝不要在其中使用 ReactLynx、JSX 或 ReactLynx 转换。rslib 的入口键必须与第一个 loadScript 参数一致。

参考资料路由

只阅读当前任务所需的参考文件。遵循其中明确的约束,不要用通用指南替代。

任务阅读
编写、组装或审查完整的 .lynxml 文档references/lynxml.md
编写或审查完整的 Rspeedy 项目或构建工作流references/rspeedy-project.md
构建主线程 Element PAPI 树或更新 UIreferences/main-thread.md
选择运行时事件 API 或连接生命周期事件references/event.md
在后台脚本中实现较重的逻辑references/background.md
使用 Lynx 样式和布局规则编写或审查 CSSreferences/style.md
使用 rslib 将后台线程代码构建为外部包references/external-build.md
在运行时加载或调用后台线程外部包references/external-runtime.md

运行时验证

对于生成的 .lynxml,请在包含未更改产物的目录中运行 npx http-server .,并使用该服务器输出的目标设备可访问的地址。对于 Rspeedy 项目,请使用其配置的构建和开发服务器工作流,而不是通用静态服务器。然后使用 lynx-devtool 技能进行客户端发现、打开可访问的 URL、运行时检查、查看控制台日志、截图和交互。请勿在此处重复设备调试工作流,也不要将 agent-lynx 描述为产物构建器或服务器。

评论

支持 Markdown