SpacePen 技术文档
本文档旨在帮助用户详细了解并使用 SpacePen 库,内容包括安装指南、项目使用说明以及项目 API 使用文档。
1. 安装指南
SpacePen 是一个不再维护的库。版本 5.x 设计为直接包含在 1.0 兼容的 Atom 包中。如果您需要 SpacePen 3.x,它在 Atom Core 中使用,请查看 3.x 分支。
2. 项目的使用说明
SpacePen 是一个强大但最小化的客户端视图框架,适用于 CoffeeScript。它将“视图”和“控制器”合并为一个单一的 jQuery 对象,其标记是用类似于 Ruby 中的 Markaby 的嵌入式 DSL 表示的。
基础使用
视图对象从 View 类扩展,并在 @content 类方法中有 HTML 内容的嵌入式标记 DSL:
class Spacecraft extends View
@content: ->
@div =>
@h1 "Spacecraft"
@ol =>
@li "Apollo"
@li "Soyuz"
@li "Space Shuttle"
视图继承自 jQuery 的原型,因此构建视图时可以像使用 $(...) 创建的 DOM 片段一样调用 jQuery 方法。
view = new Spacecraft
view.find('ol').append('<li>Star Destroyer</li>')
view.on 'click', 'li', ->
alert "They clicked on #{$(this).text()}"
SpacePen 视图比普通的 jQuery 片段更强大,因为它们允许定义自定义方法:
class Spacecraft extends View
@content: -> ...
addSpacecraft: (name) ->
@find('ol').append "<li>#{name}</li>"
还可以在构造时传递参数,这些参数会传递给 @content 方法和视图构造器。
class Spacecraft extends View
@content: (params) ->
@div =>
@h1 params.title
@ol =>
@li name for name in params.spacecraft
view = new Spacecraft(title: "Space Weapons", spacecraft: ["TIE Fighter", "Death Star", "Warbird"])
可以使用 super 优雅地覆盖 jQuery 原型的方法:
class Spacecraft extends View
@content: -> ...
hide: ->
console.log "Hiding Spacecraft List"
super()
如果覆盖视图类的构造器,确保调用 super。或者,可以定义一个 initialize 方法,构造器会自动调用它,并传递构造器的参数。
class Spacecraft extends View
@content: -> ...
initialize: (params) ->
@title = params.title
出口和事件
SpacePen 会自动为具有 outlet 属性的任何元素创建命名引用。例如,如果 ol 元素具有 outlet=list 属性,视图对象将有一个指向 ol 元素 jQuery 包装器的 list 条目。
class Spacecraft extends View
@content: ->
@div =>
@h1 "Spacecraft"
@ol outlet: "list", =>
@li "Apollo"
@li "Soyuz"
@li "Space Shuttle"
addSpacecraft: (name) ->
@list.append("<li>#{name}</li>")
元素还可以具有事件名称属性,其值引用自定义方法。例如,如果一个 button 元素有一个 click=launchSpacecraft 属性,那么当点击按钮时,SpacePen 将在按钮的父视图上调用 launchSpacecraft 方法:
class Spacecraft extends View
@content: ->
@div =>
@h1 "Spacecraft"
@ol =>
@li click: 'launchSpacecraft', "Saturn V"
launchSpacecraft: (event, element) ->
console.log "Preparing #{element.name} for launch!"
3. 项目 API 使用文档
标记 DSL 细节
标记方法 (@div, @h1, 等.)
如前所示,标记 DSL 非常简单。从 @content 类方法或它调用的任何方法中,只需调用名为所需 HTML 标签的实例方法。可以传递三种类型的参数给标记方法:
-
字符串:字符串将进行 HTML 转义并用作生成标签的文本内容。
-
哈希:键值对将用作生成标签的属性。
-
函数(使用
=>绑定):函数将在打开和关闭标签之间调用,以生成 HTML 元素的内
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin07
compass-metrics-modelMetrics model project for the OSS CompassPython00