Skip to content
jgrimardPublic

Repository files navigation

MarkView logo

MarkView

A fast, good-looking Markdown viewer and editor for Windows that actually shows your images.

Platform: Windows 10 | 11 Built with Rust Tauri 2 Size: ~7 MB License: MIT

Get it from Microsoft

Download the exe · Features · Screenshots · Keyboard shortcuts · Building from source


MarkView showing a Markdown document with a banner image, table of contents and GitHub-style formatting

Why MarkView?

Many Markdown viewers show broken images for anything stored next to the document, such as ![diagram](images/diagram.png), <img src="docs/screenshot.jpg"> or ../assets/logo.svg. They render the HTML from a string, so the page has no folder to resolve those paths against.

MarkView serves every document from its own folder, the same way a web server or GitHub does, so relative paths just work. It also handles the cases GitHub doesn't:

Image reference Example MarkView
Relative path ![](images/a.png) ✅
Parent folder ![](../assets/b.svg) ✅
Raw HTML <img src="shot.jpg" width="300"> ✅
Absolute Windows path, even with spaces ![](C:\My Pictures\c.png) ✅
UNC / network share ![](\\server\share\d.png) ✅
file:/// URL ![](file:///C:/pics/e.png) ✅
Remote image ![](https://example.com/f.png) ✅

The whole app is a single ~7 MB executable. There's no installer and no runtime to download.

Features

Reading

  • GitHub-flavored rendering: tables, task lists, footnotes, alerts (> [!NOTE]), emoji shortcodes, heading anchors
  • Syntax highlighting for 50 languages, with a copy button on every code block
  • Mermaid diagrams and KaTeX math ($inline$ and $$display$$)
  • Collapsible table of contents that tracks your scroll position
  • Click any image to view it full size
  • Light, dark, or system theme, with Windows 11 Mica and your accent color

Editing

  • Built-in CodeMirror 6 editor with Read, Split, and Edit modes
  • Live preview as you type, with the preview scrolling in sync with the editor
  • Double-click anything in the preview to jump to its source line
  • Paste a screenshot to save it to images/ and insert a link
  • Drag files from Explorer onto the editor to insert relative links
  • Tick task-list checkboxes in the preview to update the source
  • Keeps each file's line endings (CRLF or LF) and UTF-8 byte-order mark as they were
  • Markdown examples (start screen or ⋯ menu): an editable tour of everything MarkView renders, from colors and font sizes to images, tables, math and diagrams

Working with files

  • Live reload: the preview updates when the file, or any image it shows, changes on disk
  • Links to other .md files open in place, with Back/Forward. Ctrl+click opens them in a new window.
  • Each document opens in its own window by default. Tabs are one click away (⋯ > Open files in tabs).
  • Print, or export to PDF with images, diagrams, and math intact
  • Recent files, drag-and-drop to open, single-instance file handling
  • Offers to become your default .md app on first run. This is per-user and needs no admin rights.

Languages

  • English, Deutsch, Español, Français, Italiano, Nederlands, Polski, Português (Brasil), Türkçe, Русский, 日本語, 한국어 and 中文(简体)
  • Follows your Windows display language. Pick another one under ⋯ > Language; it switches every open window instantly.

Screenshots

Split editor with live preview (dark theme)

Dark theme with the Markdown source on the left and the live preview on the right



Tabs, table of contents, Mermaid diagrams, math, and code

Light theme with two tabs open, the table of contents, a Mermaid flowchart, a KaTeX formula and highlighted Python code

Installation

Microsoft Store (recommended)

Get MarkView from the Microsoft Store. The Store keeps it up to date and adds it to the Open with list for .md files, with no folder to manage.

Portable exe

  1. Download MarkView.exe from the latest release (MarkView-arm64.exe on ARM PCs such as Snapdragon laptops).
  2. Put it in a permanent folder, for example %LOCALAPPDATA%\Programs\MarkView\.
  3. Run it. MarkView asks whether it should open .md files. If you say yes, Windows Settings opens so you can confirm it as the default app.

Important

The file association points at the exact location of MarkView.exe. If you move it later, open it once from the new location and MarkView will offer to set things up again. You can also use ⋯ > Re-register .md files here.

You can also open files from the command line:

MarkView.exe README.md docs\guide.md

Requirements

Keyboard shortcuts

Shortcut Action
Ctrl+O / Ctrl+N Open file / new document
Ctrl+S / Ctrl+Shift+S Save / save as
Ctrl+1 / 2 / 3 Read / split / edit mode
Ctrl+E Cycle view mode
Ctrl+T Toggle table of contents
Ctrl+F Find in the editor
Ctrl+= / - / 0 Zoom in / out / reset (or Ctrl+mouse wheel)
Alt+← / → Back / forward between linked documents
F5 Reload from disk
Ctrl+P Print
Ctrl+W Close document
Ctrl+Tab Next tab (when tabs are on)

How it works

flowchart LR
    subgraph Window["MarkView window (WebView2)"]
        Shell["App shell<br/>toolbar, tabs, CodeMirror editor"]
        Preview["Preview iframe<br/>http://mdfile.localhost/C:/notes/readme.md"]
    end
    Rust["Rust core<br/>comrak renderer · file watcher<br/>window manager · PDF export"]
    Disk[("Files on disk")]

    Shell <-->|"commands & events"| Rust
    Shell <-->|postMessage| Preview
    Preview -->|"images/a.png, ../b.svg"| Rust
    Rust -->|read| Disk
Loading
  • The preview for C:\notes\readme.md loads from http://mdfile.localhost/C:/notes/readme.md, served by a custom protocol handler in Rust. Because the page's URL is the document's own folder, the browser resolves relative images exactly as it would on a web server.
  • Markdown is rendered by comrak (GitHub-flavored Markdown) with source positions, which drive editor/preview scroll sync and task-list toggling.
  • Preview pages run under a strict Content Security Policy. Only MarkView's own scripts can run, so raw HTML in a document can't execute code. MarkView sends no telemetry. The only network requests come from remote images or links in your documents.

Reporting a problem

Open an issue. If MarkView closed unexpectedly, include its crash.log. MarkView writes the error and where it happened to this file before it closes, and never sends it anywhere. It's in the same folder as the settings (⋯ > About MarkView shows it):

  • Microsoft Store version: %LOCALAPPDATA%\Packages\jgrimard.388874D7F8808_wgz7aqx4kv1ge\LocalState\crash.log
  • Portable exe: %LOCALAPPDATA%\MarkView\crash.log

If a particular document triggers the problem, attaching it (or the smallest part that still does) helps most.

Building from source

Prerequisites: Rust (stable, 1.82 or newer) and the MSVC build tools. You only need Node.js 18+ if you change the editor bundle.

git clone https://github.com/jgrimard/MarkView.git
cd MarkView\src-tauri

cargo test
cargo build --release
# -> src-tauri\target\release\markview.exe (all assets are embedded)

To rebuild the CodeMirror editor bundle (ui/editor.bundle.js) after editing editor-src/editor.mjs:

cd editor-src
npm install
npm run build

To build the Microsoft Store package (needs the Windows SDK for makeappx and makepri):

.\packaging\build-msix.ps1              # -> dist\MarkView_<version>_x64.msixupload, ready for Partner Center
.\packaging\build-msix.ps1 -Arch arm64  # -> dist\MarkView_<version>_arm64.msixupload
.\packaging\build-msix.ps1 -Install     # also registers it for this user to try it (needs Developer Mode)
.\packaging\publish-store.ps1           # uploads both packages as a draft submission (-Commit to submit)

The arm64 build needs rustup target add aarch64-pc-windows-msvc and the Visual Studio component MSVC C++ ARM64/ARM64EC build tools.

The Store build gets its .md association from packaging/AppxManifest.xml instead of the registry, and keeps its settings in its package folder.

Project layout

Path Contents
src-tauri/ Rust app: protocol handler, Markdown rendering, windows, file watching, PDF export, file association
ui/ Front end embedded in the exe: app shell, preview page, vendored libraries
editor-src/ Source for the CodeMirror 6 editor bundle
packaging/ Microsoft Store (MSIX) manifest and build script
samples/ Test documents covering every image-path case, plus the showcase used for the screenshots
docs/images/ Logo and screenshots for this README

Settings are stored in %LOCALAPPDATA%\MarkView\markview.json.

Acknowledgements

MarkView is built on Tauri, comrak, CodeMirror, Mermaid, KaTeX, highlight.js and github-markdown-css. See THIRD_PARTY_NOTICES.md for their licenses.

License

MIT © jgrimard

Releases

Packages

Contributors

Languages