Markion v0.3.5
Markion v0.3.5
Markion can now synchronize a notes workspace through an ordinary Git repository with one click, and typewriter mode keeps the caret centered reliably across every editing surface.
Highlights
Git workspace synchronization
- Sync Now (File menu and status bar) saves eligible named notes, creates a local snapshot commit when content changed, fetches the upstream branch, fast-forwards or merges ordinary divergent history, and pushes to the configured branch — covering buffer, worktree, local history, and remote in one action.
- File → Set Up Git Sync reviews the canonical worktree, branch, current changes, and file policy before connecting a repository. Hidden paths, symlinks, nested repositories, and unsupported binaries stop one-click sync for review; linked worktrees, submodules, LFS, bare, sparse, partial, shallow, and detached-HEAD workspaces are detected and stay read-only.
- Secondary actions — Commit Locally, Check Remote, Pull Updates, and Push Commits — are kept separate so a network failure is never reported as a local-save failure.
- Merge conflicts are resolved per path in the app (This Computer / Remote Version / deletion), verified against the real Git index and worktree bytes before staging. A versioned operation journal outside the repository restores an interrupted operation after a restart, and lost push responses are verified against the remote so retrying never creates duplicate snapshot commits.
- Local Markdown images participate in the same commit as their note; Organize Images copies eligible local images into the note's asset folder. Markion never rebases, stashes, force-pushes, resets, cleans, or deletes branches automatically.
- Optional background remote checks (off by default) poll the active workspace at most once per interval without saving, committing, merging, or pushing.
- Requires Git 2.39+ on
PATHand your platform's secure credential helper (Git Credential Manager, macOS Keychain, libsecret) or SSH agent; Markion never enables plaintext credential storage or disables host-key verification. Seedocs/git-sync.md.
Typewriter mode centering
- Typewriter mode now centers the caret using measured layout geometry: wrapped visual rows in Edit and Split Preview source panes, and the rendered caret row in Visual Edit — instead of counting hard newlines.
- Centering survives tab and view switches, window or pane resizes, and font changes: stale geometry from a previous version, tab, or width no longer displaces the scroll position, and the caret recenters once current geometry is measured.
- Presentation-only leading and trailing scroll room makes the first and final document rows centerable without touching document text, dirty state, undo history, or the derived Markdown cache.
- Manual scrolling is no longer fought by the mode; the next typing or caret movement recenters. In Split Preview with Sync scroll, the preview follows the recentered source pane.
Compatibility
- No migration required: Markdown files, preferences, and workspace data from previous versions load unchanged. The new optional
[git]section inconfig.tomlis additive with defaults. - Windows and macOS installers are unsigned: expect SmartScreen / Gatekeeper prompts on first launch.
- Git sync requires Git 2.39 or newer available on
PATH(or configured via[git] executable).
Downloads
- Windows x64:
markion_0.3.5_x64-setup.exe(NSIS, with signed one-click updater metadata inupdate.json). - macOS Apple Silicon:
Markion_0.3.5_aarch64.dmg. - Linux x86_64:
markion_0.3.5_amd64.debandmarkion_0.3.5_x86_64.AppImage.
Verification
- Local
cargo test --workspace: all suites green. - Native CI builds succeeded on Windows, macOS, and Ubuntu 22.04, including packaged MarkNice workspace manifest verification for every installer.
Full comparison: v0.3.4...v0.3.5
Markion v0.3.5(中文说明)
Markion 现在可以通过普通 Git 仓库一键同步笔记工作区,打字机模式也能在全部编辑界面上稳定地将光标居中。
主要更新
Git 工作区同步
- 立即同步(文件菜单与状态栏)会保存符合条件的已命名笔记,在内容变化时创建本地快照提交,拉取上游分支,快进或合并普通的分叉历史,并推送到已配置分支——一次动作覆盖编辑器缓冲区、工作区文件、本地历史与远端四种状态。
- 文件 → 设置 Git 同步会在接入仓库前让你确认主工作区、分支、当前改动与文件策略。隐藏路径、符号链接、嵌套仓库与不支持的二进制文件会暂停一键同步以供人工检查;链接工作区、子模块、LFS、裸仓库、稀疏/部分/浅克隆以及游离 HEAD 的工作区会被识别并保持只读。
- 本地提交、检查远端、拉取更新、推送提交等次级操作彼此独立,网络故障绝不会被误报为本地保存失败。
- 合并冲突可在应用内按路径逐个解决(本机版本 / 远端版本 / 删除),写入前会对照真实的 Git 索引与工作区字节进行校验。仓库外部的版本化操作日志可在重启后恢复中断的操作;推送响应丢失时会向远端核实,重试不会产生重复的快照提交。
- 笔记引用的本地图片随笔记进入同一提交;整理图片可将符合条件的本地图片复制进笔记的资源目录。Markion 绝不自动执行变基、贮藏、强制推送、重置、清理或删除分支。
- 可选的后台远端检查(默认关闭)按固定间隔仅检查当前工作区,不会保存、提交、合并或推送。
- 需要
PATH上可用的 Git 2.39 及以上版本,以及平台安全的凭据助手(Git Credential Manager、macOS 钥匙串、libsecret)或 SSH agent;Markion 不会启用明文凭据存储,也不会关闭主机密钥校验。详见docs/git-sync.md。
打字机模式居中
- 打字机模式现在基于实测排版几何居中:编辑模式和分屏预览源码面板按软换行后的可视行计算,可视化编辑模式按渲染后的光标行计算——不再按硬换行计数。
- 切换标签页或视图、调整窗口或面板大小、更换字体后居中依然可靠:来自旧版本、旧标签或旧宽度的过期几何数据不会再移动滚动位置,光标会在获得当前几何数据后重新居中。
- 纯展示用途的首尾留白让文档首行和末行都能居中,且不改动文档文本、脏标记、撤销历史或派生 Markdown 缓存。
- 手动滚动不再被模式抢占;下一次输入或移动光标时才重新居中。分屏预览开启滚动同步时,预览会跟随重新居中的源码面板。
兼容性
- 无需迁移:旧版本的 Markdown 文件、偏好设置与工作区数据可直接加载。
config.toml中新增的可选[git]节为增量字段,带默认值。 - Windows 与 macOS 安装包未签名:首次启动时需手动绕过 SmartScreen 或 Gatekeeper 提示。
- Git 同步需要 Git 2.39 及以上版本(可通过
[git] executable指定路径)。
下载
- Windows x64:
markion_0.3.5_x64-setup.exe(NSIS,附带已签名的一键更新元数据update.json)。 - macOS Apple Silicon:
Markion_0.3.5_aarch64.dmg。 - Linux x86_64:
markion_0.3.5_amd64.deb与markion_0.3.5_x86_64.AppImage。
验证
- 本地
cargo test --workspace:全部测试套件通过。 - Windows、macOS、Ubuntu 22.04 原生 CI 构建全部成功,每个安装包均通过 MarkNice 工作区清单校验。
完整变更对比: v0.3.4...v0.3.5