
源码系统概览
文章正文
flo-state 是一套开源的 macOS 原生 Markdown 编辑器源码系统,把 writer.computer 定制版 Flo State 从 Tauri 网页应用完整重写为 Swift 原生应用。
项目用 AppKit 与 TextKit 2 实现编辑路径,全程不依赖 webview,目标是和网页版保持行为一致。
当前版本 v0.1.8,遵循 GPL-3.0 开源协议,GitHub 仓库由 Altimor 维护,Star 数约 48。
源码简介
flo-state 的源码分为 FloCore、FloKit 与 FloStateNative 三层。
FloCore 是平台无关核心,用 Swift 移植了 @lezer/markdown 解析器并补充 GFM 扩展,负责编辑器状态、事务、历史记录、渲染规划与应用模型。
FloKit 基于 TextKit 2 实现文本视图与布局,处理表格、KaTeX 数学公式、Mermaid 图、HTML 块等 widget。
FloStateNative 是应用层,提供窗口、侧栏、标签页、命令面板与无头 CLI 模式。
项目附带 oracle parity 测试框架,对照真实网页前端逐节点校验语法树与逐字符校验渲染样式。
第三方组件包括 KaTeX、CodeMirror 6、Lezer 与 DOMPurify,均按各自协议开源。
适用场景
适合需要快速记笔记、写技术文档、维护 Markdown 文章的 macOS 用户。
实时预览渲染把表格、数学公式、Mermaid 图与 HTML 块折叠为 widget,适合在长文档中集中编辑。
命令面板、大纲栏与查找替换覆盖日常写作流程,headless CLI 模式适合脚本化处理文档。
衍生自 writer-computer 的定制版,Flo State 老用户迁移成本低。
技术栈与运行环境
压缩包大小: 2.6M
解压后大小: 13.3M
前端语言: Swift(AppKit + TextKit 2,编译)
运行环境要求 macOS,无 webview 依赖,构建使用 Swift Package Manager。
版本号来自 VERSION 文件,构建号取 git 提交计数。
功能亮点
- 实时预览渲染:语法标记逐行隐藏,表格、数学、Mermaid、图片与 HTML 块折叠为 widget
- 完整编辑命令与键映射:与网页版 Flo State 保持一致
- 应用外壳齐全:侧栏、标签页、命令面板、大纲栏、设置与查找替换
- 无头 CLI 模式:支持 –snapshot、–batch-geometry、–replay-keys、–perf 等调试参数
- oracle parity 测试:逐节点对比语法树、逐字符对比渲染样式,无需网络与浏览器
- Sparkle 2 自动更新:每日检查更新,EdDSA 密钥验签
对比,区别 vs Typora 和传统 Markdown 编辑器的不同
| 维度 | flo-state | Typora |
|---|---|---|
| 实现方式 | Swift 原生应用 | Electron 跨平台 |
| 编辑器内核 | TextKit 2 | CodeMirror 与 webview |
| 开源协议 | GPL-3.0 开源 | 商业闭源 |
技术架构与部署指南
安装与部署提示
克隆仓库后执行 swift build 即可编译,运行 swift test 跑单元与 parity 测试。
oracle 对照测试需要另建 writer-computer 仓库并安装 Python 依赖。
应用 ad-hoc 签名,设置 DEVELOPER_ID 后可公证分发。
最后更新 2026 年,更新日志见 release-notes 目录,v0.1.6 到 v0.1.8 于 09-27 连续发布。
截图与演示说明
项目 README 提供 GitHub 仓库封面图,展示项目标题与说明。
仓库 Layout 表说明 FloCore、FloKit、FloStateNative 三层目录结构。
测试章节描述 parity 测试与 oracle harness 用法,release-notes 目录保存各版本更新说明。
项目没有提供在线演示页面,主要界面效果可以参考 GitHub 仓库首页的封面图与文档说明。
常见问题
问. flo-state 是什么软件
它是 writer.computer 定制版 Flo State 的原生 macOS 重写,用 Swift 与 TextKit 2 实现。
问. 和网页版有什么区别
编辑路径不含 webview,性能与系统集成更好,行为与网页版保持一致。
问. 如何安装运行
克隆仓库后 swift build 编译,应用提供 headless CLI 模式,更新走 Sparkle 2。
问. 开源协议是什么
GPL-3.0-or-later,衍生自 writer-computer 的 GPL-3.0 项目。
安全风险提示
安全审查扫描未发现后门、webshell、加密混淆或硬编码凭据。
SSL 验证未被禁用,项目无 SQL 文件与安装包。
应用内置 Sparkle 2 自动更新,appcast 指向作者域名 flocrivello.com,属常规更新机制,使用时留意域名安全。
第三方组件均为知名开源库,许可证信息在 README 中完整列出。
下载说明
源码托管在 GitHub,遵循 GPL-3.0 许可。
GitHub项目开源地址 https://github.com/Altimor/flo-state
安装包内附带编译脚本与测试用例,方便开发者本地构建与二次开发。
下载压缩包后解压即可查看完整目录结构,包含 Sources、Tests、oracle、docs 与 release-notes 等目录。