MDViewer+ for Windows Torsten Mahr
winget install --id=Trsdn.MDViewerPlus -e MDViewer+ is an offline Markdown viewer and editor with live preview. The Full edition is the recommended installer.
winget install --id=Trsdn.MDViewerPlus -e MDViewer+ is an offline Markdown viewer and editor with live preview. The Full edition is the recommended installer.
An offline Markdown viewer and editor for Windows 10/11, built with Tauri 2, CodeMirror 6, and one shared Lite/Full source tree.
Full is the recommended download. Lite is for users who want the smallest installer and only the explicitly selected preview languages.
| Capability | Lite | Full |
|---|---|---|
| Editing, live preview, themes, printing | Yes | Yes |
| Focus-aware Find, current-folder Quick Open, outline | Yes | Yes |
| Optional read-only Folder Navigator | Yes | Yes |
| Secure internal Markdown links and native folder refresh | Yes | Yes |
| Footnotes, GitHub alerts, task lists | Yes | Yes |
| Image inspection and code-block controls | Yes | Yes |
| Preview highlighting | Custom Prism: Bash, CSS, HTML, JavaScript/TypeScript, JSON, Python, Rust, Swift | Lazy highlight.js broad language set |
| YAML frontmatter cards | No | Lazy, restricted js-yaml |
| Mermaid with pan/zoom | No | Lazy, complete offline Mermaid ESM |
Both editions use the same product identity, executable, installation directory, and Markdown file associations. Installing or repairing one edition replaces the other. Help > About MDViewer+ identifies the installed edition and version.
Choose File > Open Folder… to authorize a folder, then use
View > Folder Navigator, its toolbar button, or Ctrl+Shift+B. The navigator
is hidden initially, remembers its 180–420 pixel width (240 by default), and
shows only Markdown files (md, markdown, mdown, and mkd). Use Up, Down,
Left, Right, Home, End, Enter, and Space in the tree. Expansion is lazy and
limited to 12 levels, 500 direct children, and 5,000 loaded nodes. The feature
is read-only and fully offline; opening a tree file retains the existing
unsaved-change confirmation.
foreignObject, navigation, external resources, unsafe CSS URLs,
animation, and embedded content are removed.eval, or inline script is used.See docs/security.md for the detailed trust boundaries.
| Action | Shortcut |
|---|---|
| New | Ctrl+N |
| Open | Ctrl+O |
| Quick Open current folder | Ctrl+K |
| Save / Save As | Ctrl+S / Ctrl+Shift+S |
| Reload | Ctrl+R |
| Previous / next Markdown file | Ctrl+Alt+Left / Ctrl+Alt+Right |
| Find / next / previous | Ctrl+F / F3 / Shift+F3 |
| Document outline | Ctrl+Shift+O |
| Toggle Folder Navigator | Ctrl+Shift+B |
| Bold / italic / format link | Ctrl+B / Ctrl+I / Ctrl+Shift+K |
| Toggle view mode | Ctrl+E |
Ctrl+P | |
| Zoom in / out / reset | Ctrl++ / Ctrl+- / Ctrl+0 |
| System / light / dark appearance | Ctrl+Shift+0 / Ctrl+Shift+1 / Ctrl+Shift+2 |
| Help | F1 |
Open Help > MDViewer+ Help for shortcuts and support, or Help > About MDViewer+ for the installed edition, version, and copyright.
Copyright © 2026 Torsten Mahr.
Release assets are named:
MDViewerPlus-Full-Windows-x64-Setup.exeMDViewerPlus-Full-Windows-x64.msiMDViewerPlus-Lite-Windows-x64-Setup.exeMDViewerPlus-Lite-Windows-x64.msi.sha256 file per installerThe installers are currently unsigned. Windows may show a SmartScreen warning. Download only from this repository's Releases page and verify the attached SHA-256 file. The project does not claim Authenticode signing.
Requirements: Node.js 22.22.2+, stable Rust, and on Windows Visual Studio Build Tools 2022 with the C++ workload.
npm ci
npm test
cargo test --manifest-path src-tauri/Cargo.toml --locked
npm test clean-builds, audits, and tests both editions. Individual frontend
commands are:
npm run build:frontend:lite
npm run build:frontend:full
npm run audit:artifacts
npm run measure:builds
Windows installer builds:
npm run build:installer:lite
npm run build:installer:full
The installer outputs use isolated
src-tauri/target/{lite,full}/release/bundle/ directories.
| Dependency | Common | Lite | Full |
|---|---|---|---|
| CodeMirror, marked, marked-footnote, DOMPurify | Yes | Yes | Yes |
| Prism core plus project grammars | No | Yes | No |
| highlight.js | No | No | Lazy |
| js-yaml | No | No | Lazy |
| Mermaid official modular ESM | No | No | Lazy |
| svg-pan-zoom | No | No | After successful Mermaid render |
Exact versions, package sources, integrity checksums, licenses, and included
license texts are generated in
docs/third-party-notices-lite.md and
docs/third-party-notices-full.md.
docs/build-metrics.json records deterministic
minified web-asset measurements. The custom Lite Prism chunk is constrained to
10 KiB; DOMPurify is retained despite the lightweight feature budget because it
is a mandatory security boundary. Windows-only installer, WebView2 performance,
idle watcher, and cross-edition replacement checks are listed in
docs/release-validation.md and automated by the
release workflow where feasible.
The following measurements are the v2.0.1 pre-navigator baseline:
| Minified output | Lite | Full |
|---|---|---|
| Initial JavaScript entry | 627.0 KiB | 627.2 KiB |
| All lazy-capable JavaScript | 668.1 KiB | 4,228.3 KiB |
| All web assets and notices | 743.8 KiB | 4,385.2 KiB |
| Lite Prism chunk | 9.9 KiB | Not included |
The 0.2 KiB initial-entry difference demonstrates that ordinary Full documents do not eagerly include Full-only renderer packages.
Proposed Trsdn.MDViewerPlus manifests are prepared under
packaging/winget/. Only the Full x64 current-user NSIS installer is eligible.
The checked-in SHA-256 is an explicit pre-release placeholder; the manually
approved workflow downloads the immutable release asset, writes its real hash,
and runs winget validate. It uploads manifests as an artifact only. It does
not submit to microsoft/winget-pkgs.
MIT.