Easy Mark is a lightweight Tauri desktop workspace for browsing and editing Markdown, limited MDX, HTML, and text documents. The current implementation provides the rebranded application shell plus secure workspace and document command boundaries.
- Markdown:
.md,.markdown - Limited/inert MDX:
.mdx - HTML:
.html,.htm - Plain text:
.txt
EPUB and PDF are not supported.
- Markdown uses
markdown-itwith tables, task lists, strikethrough, autolinks, deterministic heading IDs, and common code-language highlighting. - MDX uses the Markdown fallback; JSX and components remain inert source.
- Markdown output is sanitized and task checkboxes are read-only.
- HTML is sanitized and rendered in a script-disabled sandboxed iframe with a restrictive CSP.
- Relative assets load only through the registered workspace root; external and escaping resource paths are blocked.
Workspace changes are watched recursively and coalesced before updating the explorer, editor, preview, and outline.
- The Source Control panel supports local status, staging, commits, branches, and file comparisons through the installed Git executable.
- Editor gutter markers compare the live buffer, including unsaved edits, with the file at
HEAD. - Full diff editors support
HEAD↔ working buffer,HEAD↔ index, and index ↔ working buffer in side-by-side or unified layouts. - Large line-diff calculations run in a Web Worker. Binary files and text files above the document-size limit are not loaded into diff editors.
- The global theme follows the operating system by default and can be overridden with light or dark mode in Settings.
- Settings also cover editor typography, tab size, wrapping, autosave, preview layout, explorer visibility rules, panel placement, workspace reopening, and experimental MDX.
- Use
Ctrl+Shift+Pfor the command palette,Ctrl+Pfor quick open,Ctrl+Shift+Ffor workspace search, andCtrl+Ffor in-document find/replace. macOS uses Command instead of Control. - Workspace search runs in Rust with cancellation, paging, file-size/result budgets, ignored/heavy-directory filtering, and an opt-in all-text-files mode. It does not build an index during workspace open.
Prerequisites: Node.js, npm, the stable Rust toolchain, and the Tauri 2 platform prerequisites.
npm install
npm run check
cargo test --manifest-path src-tauri/Cargo.toml
npm run tauri devUse npm run build for a static frontend build. See outline.md for the canonical implementation order and current status.
