Skip to content

Repository files navigation

GMark 图标

GMark

把 Markdown 写作、源码控制与结构化数据浏览放进同一个本地工作台。

Live 负责流畅编辑,Source 保留精确控制;JSON Graph 和 CSV/TSV 表格让数据文件也能直接读、查、改。

下载 · 快速开始 · 功能示例 · 问题反馈

GMark 完整窗口:左侧工作区打开 Markdown 渲染总览,主编辑区以 Live 视图显示标题、行内格式与数学公式

GMark 使用 Rust 与 GPUI 构建。文档始终是磁盘上的普通文件:不需要账号,不会为了编辑而上传内容,也不会把 Markdown 转换成专有格式。当前版本为 v0.1.8

一份文件,四种视图

视图 用途
Live 直接编辑渲染后的标题、列表、任务、表格、Callout、公式等内容块。
Source 使用带行号、语法高亮和结构折叠的源码编辑器精确控制文本。
Split 同时查看源码与渲染结果,适合校对语法和复杂内容。
Preview 隐藏编辑状态,专注阅读、检查与展示。

四种视图共享同一份文档真值。下面的真实界面打开了 gmark-docs/markdown/01-markdown-basics.md,源码中的嵌套列表和任务状态会直接映射到右侧结果。

GMark Split 视图:左侧 Markdown 源码与右侧列表、任务清单渲染结果同步显示

Markdown 当前支持:

  • 标题、段落、粗体、斜体、删除线、下划线、上标、下标、行内代码、链接和图片。
  • 有序/无序/任务列表、引用、GFM Callout、脚注、定义列表、分隔线和注释。
  • 原生表格、代码块与语法高亮、行内/块数学公式、Mermaid、安全 HTML 子集和本地资源卡片。
  • 选区格式工具栏、块操作区、右键菜单、斜杠菜单、命令面板以及复制为 Markdown。
  • 查找替换、跳转到行、拼写检查、标记与括号自动配对、标题/Callout 折叠、专注和打字机模式。

结构化数据,直接看清

JSON Graph

标准 JSON 默认可以显示本地生成的交互式 Graph。可以搜索节点、缩放画布、折叠分支、聚焦子树、查看 JSONPath,并跳转到对应源码;通过校验的编辑会写回同一份 JSON 文本。

GMark JSON Graph 深色界面:完整窗口内显示根对象、features、workspace、checks 节点与缩放控制

CSV 与 TSV

CSV、TSV 与 TAB 文件进入结构化表格,而不是被当成图片或普通 Markdown。表格支持单元格编辑、行列维护、筛选、列导航、源码/结构切换和大数据量虚拟化。下图直接打开了 gmark-docs/data/table/sample.csv

GMark CSV 表格浅色界面:12 行示例数据与 id、title、kind、status、score、notes 列导航

JSONL/NDJSON 提供源码与逐条记录结构。JSON Graph 单次投影最多加载 1,500 个项目,图内单次编辑边界为 256 KiB;达到边界后仍可通过搜索、折叠或聚焦子树继续浏览。

当前能力

领域 已实现能力
Markdown 编辑 Live / Source / Split / Preview、扩展 Markdown、表格、Callout、任务、脚注、安全 HTML、资源卡片。
代码与源码 行号、语言感知高亮、结构折叠、查找替换、行尾切换;严格 JSON/JSONL 内置格式化。
数学与图表 LaTeX 源码输入、二维公式编辑、符号/结构面板;Mermaid Source / Preview / Split。
结构化数据 JSON Graph、JSON/JSONL 结构导航、CSV/TSV 虚拟化表格、筛选、编辑和源码定位。
工作区 文件树、大纲、跨文件搜索、快速打开、命令面板、多标签、多窗口和会话恢复。
大文件 默认超过 16 MiB 自动进入 Paged Source,按可见区域读取并继续搜索、编辑和保存。
资源与预览 PNG/JPEG/GIF/WebP/BMP 图片缩放预览;SVG Source / Preview / Split;拖放和资源插入。
导出 Markdown 导出完整 HTML、PNG 或 PDF,并处理数学、Mermaid 与可用的本地资源。
保存与恢复 可选延时自动保存、外部修改检查、原子写回、异常退出恢复和冲突保护。
个性化 浅色/深色/跟随系统,Xcode/Fleet/Obsidian/Claude 配色,可配置快捷键和无障碍选项。

支持的文件

文件类型 默认体验
Markdown Live / Source / Split / Preview,完整写作、渲染与导出
JSON 交互式 Graph、结构编辑、Source 与 Split
JSONL / NDJSON Source、逐条记录结构、搜索与导航
CSV / TSV / TAB 可编辑表格、筛选、列导航、Source 与结构视图
SVG 可编辑源码、实时预览与 Split
PNG / JPEG / GIF / WebP / BMP 图片预览、缩放与适应宽度
纯文本与代码 Source、行号、语法高亮、折叠与查找替换
超过 Resident 阈值的文本 Paged Source,按可见区域读取

Source 内置语言识别覆盖 Rust、JavaScript/TypeScript、JSON/JSONL、Markdown、Bash、C/C++、C#、CSS、Go、HTML、Java、PHP、Python、Ruby、YAML、TOML、SQL、Lua、Swift、PowerShell、Dockerfile/Containerfile、Mermaid 等常见文本格式。

功能示例

gmark-docs/ 是随仓库维护的固定 Demo,截图也直接来自这里:

快速开始

前往 GitHub Releases 下载对应平台的安装包。

平台 安装包
Windows x64 Setup EXE
Linux x64 AppImage、Deb
macOS Apple Silicon DMG
macOS Intel DMG
  1. 启动 GMark,直接新建文档,或从“文件”菜单打开文件/文件夹。
  2. 打开文件夹后,使用左侧文件树浏览工作区,使用右侧导航查看当前文档结构。
  3. 从窗口右下角切换 Live、Source、Split 或 Preview。
  4. 保存后仍然得到普通文件;需要分享时可以导出 HTML、PNG 或 PDF。

常用快捷键:

操作 Windows / Linux macOS
保存 Ctrl+S Cmd+S
打开文件 Ctrl+O Cmd+O
打开文件夹 Ctrl+Shift+O Cmd+Shift+O
快速打开 Ctrl+P Cmd+P
命令面板 Ctrl+Shift+P Cmd+Shift+P
查找 Ctrl+F Cmd+F
切换视图 Ctrl+Tab Cmd+Tab

快捷键可以在偏好设置中修改;冲突会在录制时直接提示。

macOS Gatekeeper 提示

当前安装包尚未使用 Apple Developer ID 签名和公证。如果确认安装包来自本仓库的 GitHub Releases,但拖入“应用程序”后仍被 Gatekeeper 阻止,可以运行:

sudo xattr -rd com.apple.quarantine /Applications/gmark.app

该命令只移除 GMark 的隔离标记,不会全局关闭 Gatekeeper。

数据与隐私

  • 文档、设置、工作区状态与恢复数据默认保存在本机。
  • 使用 GMark 不需要账号,也不需要把文档上传到云端。
  • 文档中引用的 HTTP(S) 图片会在渲染时联网获取;请求不会携带 Cookie、Authorization 或 Referer,并受超时、重定向、并发和 20 MiB 响应上限保护。
  • 其他网络链接由用户主动打开;危险 URL 协议只保留源码并显示为不支持。应用也可按偏好设置检查更新。
  • 恢复功能用于处理意外退出,不替代版本控制和长期备份。

从源码构建

准备 Rust 1.95.0 和当前平台的 GPUI 构建依赖,然后运行:

cargo build --release --locked

生成的可执行文件位于 target/release。命令行支持直接打开一个或多个文件,以及 --help--version--detach。完整质量检查、平台依赖和打包流程以仓库中的 CI 与 docs/ 文档为准。

反馈与许可

问题与建议请提交到 GitHub Issues,并附上操作系统、GMark 版本、复现步骤和可公开的示例文档。请勿上传包含隐私或机密信息的原始文件。

GMark 以 GNU General Public License v3.0 or later(GPL-3.0-or-later)授权。

本项目参考了 Velotype 的部分实现。

About

Rust + GPUI 打造的本地优先桌面编辑器:支持 Markdown、纯文本、JSON/JSONL、CSV/TSV,提供 Live/Source/Split/Preview、大文件按需读取、结构化视图、工作区搜索及 HTML/PNG/PDF 导出。

Topics

Resources

Stars

19 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages