MarkdownRS is a focused Markdown editor. It prioritises performance and a clean, minimal UI while still being fully featured for technical and general users.
The only Markdown editor you need? Many people are saying so.
- Markdown Flavors: GFM (GitHub Flavored Markdown) and CommonMark.
- Smart Formatting: Auto-Markdown formatting for standards=compliant, consistent output.
- Text Operations: Sort lines, trim whitespace, change case, etc.
- Rendered Mode: Edit in rendered or raw Markdown mode.
- Find & Replace: Across all open documents.
- Fast, Low Resource Use: Built with a Rust backend for instant startup and smooth editing.
- Auto-Save: Session persistence with hot-exit support — never lose your work.
- Live Preview: Split view with smooth, bi-directional synchronized scrolling.
- Math (KaTeX): Render math in the preview with KaTeX.
- Diagrams (Mermaid): Render flowcharts, sequence diagrams, and more with Mermaid.js.
Math renders in the preview with KaTeX. Delimiters:
| Style | Syntax |
|---|---|
| Inline | $...$, \(...\) |
| Display | $$...$$, \[...\], ```math fence |
Math is rendered to HTML via KaTeX renderToString and cached by expression hash, so unchanged expressions are never re-rendered. KaTeX CSS and fonts are bundled for offline use.
Flowcharts, sequence diagrams, and other diagrams render in the preview from ```mermaid fenced blocks. Mermaid is lazy-loaded only when a diagram is present and rendered diagrams are cached by content hash, so unchanged diagrams are never re-rendered.
- Multi-Tab: Work on multiple documents simultaneously, pin them, bookmark them.
- File Tree: Sidebar file tree for browsing and opening files.
- Bookmark System: Bookmark and tag local documents with instant filter search.
- New File Template: Create new files from a configurable template.
- Command Palette: Efficient navigation with command palette (Ctrl+Shift+P).
- Keyboard Shortcuts: Customise any command's shortcut as you want.
- Themes: Multiple built-in light and dark themes, plus custom themes.
- Export your documents to PDF, PNG, WEBP, or HTML.
Developed using the latest versions of:
# Install dependencies
bun install
# Run in development mode
bun run dev
# Build distributable bundles (.deb, .rpm, .AppImage, NSIS)
bunx tauri buildArch / CachyOS package (requires bunx tauri build first, so the compiled binary exists):
mkdir -p .pkg && cp PKGBUILD .pkg/ && cd .pkg && makepkg -sibun run clean- Remove build artifacts, target, and node_modulesbun run check- Full check: Svelte types, Biome lint, and cargo check + clippybun run format- Format code with Biome + 'cargo fmt'bun run update- Update packages + cratesbun run dev- Start dev server / HMRbun run preview- Preview the production build
MarkdownRS uses rumdl, a linter and formatter, to ensure standard, consistent Markdown.
You can change which style rules that rumdl applies by creating a config file:
- Put one in your project — the app looks for a config file near your document (e.g.
.rumdl.tomlorrumdl.toml). It checks the document's folder, then works its way up to your chosen workspace root. - Put one in your home folder — if no project config is found, it uses a config from your user config folder or your home directory.
- Use the defaults — if neither exists, the built-in default rules are used.
The most important config wins: a project config always overrides a home-folder config, and both override the defaults. Files that haven't been saved yet (no location on disk) only use the home-folder config or the defaults.
Pull Requests and bug reports / feature requests are welcomed.
