概念插画:一侧是 Markdown 源文,另一侧呈现表格、公式和图表;并非 Flo State 实际截图。

Flo State Native:基于 TextKit 2 的 macOS Markdown 编辑器

Flo State Native 将实时 Markdown 渲染、文件工作区和 TextKit 2 原生编辑带到 macOS。当前 v0.1.1 通过 ZIP 安装包分发。

要点摘要
  • Flo State Native 是基于 Swift、AppKit 和 TextKit 2 重写的 macOS Markdown 编辑器,源项目来自定制版 writer.computer。
  • 它保留可编辑的 Markdown 源文,同时可将表格、公式、Mermaid 图表、图片和受支持的 HTML 块渲染在文档中。
  • macOS 14 及以上版本可从 GitHub Releases 直接下载官方 v0.1.1 ZIP;该版本尚未公证,首次启动需要按说明右键选择“打开”。
  • 项目采用 GPL-3.0-or-later,仍处于早期发布阶段,安装前建议查看当前 Release 的变化和限制。

Markdown 编辑器往往要求用户二选一:要么一直看着源文标记,要么切换到独立预览。Flo State Native 尝试第三种方式:文档仍然可以直接编辑,而阅读时,部分语法符号会淡出视线。

它是基于定制版 writer.computer 重写的原生 macOS 应用,使用 Swift、AppKit 和 TextKit 2。官方 v0.1.1 延续了首个公开版 v0.1.0 的方向:把实时编辑体验带到 Mac 应用中,同时不把主要编辑器放进浏览器视图。

让 Markdown 源文读起来更像成稿

当光标离开一行时,Flo State 可以隐藏强调、行内代码、链接、围栏代码等语法标记,并对内容应用更易读的样式。例如链接会呈现为链接,而不是一串方括号文字后面跟着原始 URL。

文档本身仍是 Markdown 源文。选中或编辑某一行时,相关标记会重新出现,用户可以直接修改 Markdown,而不是被锁定在另一种可视化编辑器里。它希望在“静置时易读”和“编辑时可控”之间取得平衡。

表格、公式和图表直接出现在文档里

Flo State 可以把受支持的 Markdown 块变成行内组件:表格按表格显示,数学公式由 KaTeX 渲染,Mermaid 代码块变成图表;Markdown 图片和受支持的 HTML 块也有专门的渲染路径。相比另开一个预览面板,这种方式让文档结构直接留在编辑上下文里。

源文并没有丢失:选中许多渲染块时,可以重新看到对应 Markdown。Mermaid 是一个例外——画布保持为图表视图,同时提供编辑代码的操作;表格和公式则使用打包在应用中的渲染资源。这不代表所有 Markdown 扩展都与完整浏览器完全一致。

围绕本地文件组织工作区

应用外壳包含侧边栏、标签页、命令面板、大纲栏、设置以及查找和替换。用户可以直接以文件夹作为工作区,在编辑窗口内切换文件和标题,而不必一次只打开一篇笔记。

工作区索引面向本地项目目录,并遵循 .gitignore 等忽略规则;隐藏条目和 node_modules 会被跳过。因此它也适合放有笔记或技术文档的代码仓库。README 描述的是基于文件的工作流,而不是依赖账号的云笔记服务。

从官方 Release 安装 Flo State 0.1.1

当前官方安装包是 FloState-0.1.1.zip,v0.1.1 Release 说明也将它列为 Mac 下载。应用要求 macOS 14 或更高版本。下载并解压后,将 Flo State.app 移到“应用程序”文件夹。

open https://github.com/Altimor/flo-state/releases/download/v0.1.1/FloState-0.1.1.zip

这个 Release 目前尚未经过公证。首次启动时,请按项目说明右键应用并选择“打开”,不要假设双击即可启动。项目计划在后续版本中支持应用内更新;安装 v0.1.1 则使用上面的官方 Release 下载链接。

编辑层是原生的,部分渲染仍使用 Web 技术

主要文本编辑路径使用 AppKit 和 TextKit 2,FloCore 则包含 Markdown 解析器与编辑状态的 Swift 实现。这与把网页编辑器包进桌面窗口不同:输入、选区、布局以及大部分应用外壳都由原生 Mac 代码处理。

不过渲染架构中仍有 WebKit。README 和源码指出,KaTeX、Mermaid、HTML 块会使用打包的 Web 资源,部分组件通过 WebKit 渲染。因此,“原生”描述的是编辑器和应用框架,不代表应用完全不含 Web 技术。

更新机制与早期版本的边界

v0.1.0 是首个公开版本,v0.1.1 随后发布,修复了切换标签后光标回到编辑器、列表项目符号垂直位置等小问题。当前更新日志还不长,因此更适合把它看作早期版本,而不是成熟完整的 Markdown 套件。

项目集成了 Sparkle 2,说明支持每日检查更新,也可以在应用菜单中手动检查。更新使用的 appcast 同样由仓库说明。准备安装新版本时,仍应查看官方 Releases 页面,确认实际变化。

只有要改代码时才需要构建和测试

安装已发布的 ZIP 不需要 Xcode。README 为贡献者列出 macOS 14+、Swift 6 和 Xcode 16 或兼容工具链。代码分为跨平台的 FloCore 模型、FloKit 编辑器和原生应用目标,从 Markdown 解析到最终界面都有清晰边界。

swift build --product FloStateNative
swift test

本地文件工作流,不等于保证完全离线

项目文档从打开本地工作区文件夹开始,源码中也包含本地文件索引、文件监视和会话保存。仓库没有描述依赖账号的笔记同步服务,因此更准确的理解是:它用来编辑已经保存在 Mac 上的文件。

但这并不能证明应用完全不联网。Flo State 为更新配置了外部 Sparkle appcast,Markdown 文档也可能引用外部资源。仓库没有给出全面的隐私保证,因此不能仅凭本地文件工作流推断零网络通信。

GPL-3.0-or-later 与上游关系

应用的许可证是 GPL-3.0-or-later。Flo State 说明自己是同样采用 GPL-3.0 的writer.computer的衍生作品,并承接了部分行为、设置结构、主题和源码。

仓库还列出了多个第三方组件许可,包括 MIT、EPL-2.0、BSD-2-Clause 以及 MPL-2.0/Apache-2.0。若要分发修改后的版本,应阅读项目的许可说明和各组件许可,不要假设整个软件包都采用一种宽松许可证。

Flo State 适合谁?

如果你已经用 Markdown 管理笔记,并希望在 Mac 原生工作区里边编辑边查看整洁的渲染效果,而不是使用单独的预览窗口,Flo State 值得一试。表格、公式、Mermaid 图表、标签页和文件夹导航,让它不只是一个纯文本输入框。

它的代价是仍处于早期:v0.1.1 发布不久,当前 ZIP 未公证,不同小组件的渲染实现也不完全相同。如果能接受这些限制,可以从官方v0.1.1 下载开始。如果你需要成熟、签名并公证的写作套件,建议先重新核实最新发布状态,再决定是否作为日常工具。

项目概况

许可证
GPL-3.0-or-later
平台
macOS 14 及以上
开发语言
Swift、AppKit、TextKit 2
查看版本
v0.1.1(截至 2026-09-27 核验的最新官方 GitHub Release)

安装

open https://github.com/Altimor/flo-state/releases/download/v0.1.1/FloState-0.1.1.zip

许可说明

Flo State Native 使用 GPL-3.0-or-later 版权传染型许可,并说明自己是基于 GPL-3.0 项目 writer.computer 的衍生作品。分发修改版本时需要遵守适用的 GPL 条款。打包的第三方组件各自采用不同许可,不应把整个软件包视为同一种许可条件。