
开源 WYSIWYG Markdown 编辑器 Sarala 发布 1.3 版,新增 AI 助手与离线语音输入
来源标题:A new web bsed Markdown editor WASM
开源所见即所得 Markdown 编辑器 Sarala 发布 1.3 版,新增 AI 助手和完全离线的语音输入功能。AI 助手可调用本机已安装的 Claude Code、OpenAI Codex 或 GitHub Copilot CLI,改动以词级 diff 呈现供用户逐项接受或拒绝,且只作用于临时副本。该软件支持 macOS、Windows 和 Linux,采用 GPL-3.0 许可,免费且无付费层级。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
像成品文档一样的 Markdown。
一款免费、开源的所见即所得 Markdown 编辑器,支持 macOS、Windows 和 Linux。
没有预览窗格,没有分屏视图:你写的页面就是你读到的页面。
网站 · 下载 · 发行说明 · 从源码构建
一页,而非两页。输入格式的瞬间即可看到效果。点击任意区块即可编辑其 Markdown,点击别处即就地渲染。
纯文件,归你所有。文档是你所选文件夹中的 .md 文件。你可以用任何工具打开它们,存入 Git,以任意方式同步。
默认私密。无需账户,无遥测。语音输入在你的电脑上运行,AI 助手只改动你批准的内容。
免费,没有付费档位。GPL-3.0,公开开发。
1.3 版新功能
AI 助手
让 Claude Code、OpenAI Codex 或 GitHub Copilot CLI 来审阅、总结或改写。每处更改都以词级 diff 的形式呈现,由你决定接受或拒绝;agent 在临时副本上工作,绝不会碰你的文件。Sarala 使用你电脑上已安装的 agent,因此无需管理 API key。
语音输入,完全离线
按住快捷键说话。电脑上的开源语音模型会将其转为文字:不上传任何内容,也不需要账户。可以按住说话或点击切换,说“new paragraph”或“scratch that”,并通过实时麦克风检测在一分钟内完成全部设置。
功能一览
图表。Mermaid 和 D2,直接在页面内渲染。
数学。用 KaTeX 边写边排版 LaTeX。
代码。按你的主题为 100 多种语言提供高亮。
表格、任务与提示框。逐个单元格编辑表格,点击即可勾选任务。
命令面板。每个操作都只需 Cmd/Ctrl+K。
主题。内置十三款,也可基于任意 base16 配色方案自定义。
安装
在浏览器中
Sarala 也能作为 Web 应用运行,无需安装,无需账户。你的文档保存在浏览器中,在 Chrome 和 Edge 中也可保存在设备上的文件夹里。它支持离线使用,并可安装为应用。有关包含的功能以及它与桌面应用的差异,请参阅 web/README.md。
使用 Homebrew(无安全提示,且 brew upgrade --cask sarala 可保持其为最新版):
brew tap solancer/sarala https://github.com/solancer/sarala
brew trust --cask solancer/sarala/sarala
brew install --cask --yes sarala
brew trust 是一次性步骤:在你信任第三方 tap 之前,Homebrew 6 会拒绝其中的 cask。较旧的 Homebrew 没有 trust 命令,也不需要它。该 cask 需要 Homebrew 5.1.14 或更新版本;brew update 即可升级到该版本。
如果 brew install 失败并提示 Calling depends_on macos: :catalina is disabled,说明你的 tap 中存有该 cask 的旧副本:运行 brew update(或先 brew untap solancer/sarala 再重新 tap),然后安装。
或者从最新发行版下载通用 .dmg(支持 Apple Silicon 和 Intel,macOS 10.15+),打开后将 Sarala 拖入 Applications。它已由 Apple 签名并公证,因此会像其他应用一样打开。Sarala 注册了 .md、.markdown 和 .mdown 文件类型,因此在 Finder 中“打开方式 › Sarala”可用,包括在它已在运行时。
从最新发行版下载安装程序(.exe)或 .msi。支持 Windows 10 和 11,64 位。该安装程序尚未进行代码签名,因此如果 SmartScreen 提示“Windows protected your PC”,请点击“更多信息 › 仍要运行”。
格式
安装
Snap Store
sudo snap install sarala
.deb(Ubuntu、Debian、Mint)
sudo apt install ./Sarala_<version>amd64.deb
.rpm(Fedora、RHEL、openSUSE)
sudo dnf install ./Sarala-<version>-1.x86_64.rpm
.AppImage(任意发行版)
chmod +x Sarala<version>amd64.AppImage && ./Sarala<version>_amd64.AppImage
全部来自最新发行版。Sarala 会打开传入的 .md 文件,因此文件管理器中的“打开方式”可用。应用内更新覆盖 AppImage、.deb 和 .rpm;Snap 和发行版软件包则通过各自的包管理器更新。
Arch Linux、Omarchy、Manjaro、EndeavourOS:安装 sarala-bin 软件包。它会重新打包发行版 .deb,因此无需编译,也不需要 Node 或 Rust:
git clone --depth 1 https://github.com/solancer/sarala
cd sarala/aur/sarala-bin && makepkg -si
AppImage 在这些系统上也能用。如果提示“Cannot mount AppImage”,请用 sudo pacman -S fuse3 安装 FUSE。
菜单会内联显示所有快捷键。值得学习的有:
Node 22+、pnpm、Rust stable、Tauri 的平台前置依赖(在 Linux 上是 webkit2gtk-4.1 及相关组件),以及用于语音输入语音引擎的 CMake 和 C++ 编译器(在 Linux 上还需 libasound2-dev 和 libopenblas-dev)。若要构建不含语音输入的版本,请向 Cargo 传入 --no-default-features。
pnpm install
pnpm tauri dev # 桌面应用
pnpm tauri build # 安装包位于 src-tauri/target/release/bundle
pnpm dev 会在浏览器中独立运行前端,适合做 UI 开发,但文件对话框和文件树仅桌面版可用。
若要改为运行 Web 版本,并在 1421 端口上启用热重载(需要 rustup target add wasm32-unknown-unknown):
pnpm dev:web
工作原理
三个决策塑造了其余一切:
采用区块模型,而非字符模型。文档是一个 Markdown 区块数组(围栏代码块和 YAML front matter 保持完整)。活动区块是一个 contenteditable,其 innerHTML 在每次按键时重新设置样式,而关键的约束条件是:带样式 HTML 的 textContent 必须与 Markdown 源码逐字节一致。正是这种精确性,使得光标可以通过纯文本偏移量保存和恢复,并且有往返测试覆盖。
单一渲染管线。同一个 renderMarkdown() 负责绘制编辑器区块和 HTML 导出,因此你所见与所交付的内容不会出现偏差。
Rust 负责文件系统,而非逻辑。后端负责目录遍历、原子保存、Pandoc 桥接和语音引擎;原生菜单将菜单项 id 作为事件转发。所有编辑决策都集中在一个前端命令总线中,由菜单、快捷键和命令面板共用。
pnpm release X.Y.Z 会提升各清单文件中的版本号并打标签;推送标签后,CI 会为三个平台构建并签名、发布发行版,并更新现有安装所检查的清单。详情见 RELEASING.md。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。