主要观点:在 Common Lisp 中构建跨平台 GUI 曾是难题,近年来得益于新的绑定,有多种方式可实现,如 Electron、Ceramic、WebUI、CLOG Frame 等。
关键信息:
- Electron 跨平台性强但较笨重,有诸多工具,可从开发机为三大 OS 构建发布版本等。Ceramic 是围绕 Electron 的工具集,可帮助构建应用,默认下载较旧版本 Electron 但可自行更改版本,新的 Neomacs 项目就是其应用实例。
- 从 scratch 构建 Electron 应用的步骤包括遵循安装说明、构建 Lisp 网络应用二进制文件、将其打包到 Electron 构建中等,main.js 是重要文件。
- Tauri 打包应用的步骤与 Electron 类似,工具可能较少。
- WebUI 是新的项目,用纯 C 编写,轻量易构建且有 Lisp 绑定,但存在问题,如示例第二次运行无反应。
- CLOG Frame 是 CLOG 框架的一部分,不是仅与 Common Lisp 绑定,是一个短的 C++程序,可通过命令行参数打开 webview.h 窗口,编译快速,将其与 Common Lisp 网络应用结合可实现跨平台展示。
重要细节:
- Ceramic 的启动代码片段展示了如何启动底层 Electron 进程、创建浏览器窗口并显示。
- Electron 从 scratch 构建示例中的 main.js 文件详细说明了启动 Electron、运行本地应用、显示窗口等操作。
- CLOG Frame 的代码展示了其基本结构和功能,包括设置窗口标题、大小、绑定事件等。
- 提到了一些相关项目的链接和资源,如 Ceramic 的文档、WebUI 的仓库等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。