Skip to content

Canary-Builds/markview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

markview

Minimal, modern markdown viewer and editor for Linux and Windows. GTK3 + WebKit on Linux. PyQt6 + QtWebEngine on Windows. No Electron, no tray daemon, no account. Starts in under a second.

version license platform snap ubuntu-ppa flathub

markview logo

Screenshots

Reading view Split view with live preview

Editor with markdown syntax highlighting Dark theme Command palette (Ctrl+P)

Reading view · Split view · Editor · Dark theme · Command palette (Ctrl+P)


What it is

A single Python script that turns any .md file into a clean, themeable reading view — hitting Ctrl+E flips it into a proper editor with a focused formatting toolbar, a command palette, folder-wide search, an outline sidebar, live split-view preview with scroll-sync, auto-save snapshots, and live math / diagrams.

The chrome stays minimal: three buttons in the header, one toolbar that only appears in edit mode, everything else is keyboard-driven.

Features

Viewing

  • GitHub-flavoured light/dark theme, auto-detected from your system theme
  • Pygments syntax highlighting in code blocks
  • Live reload when the file changes on disk
  • Drag-and-drop any .md onto the window

Editing (Ctrl+E)

  • Full toolbar: New · Save · Save As · Undo · Redo · Cut · Copy · Paste
  • Formatting: Bold · Italic · Strikethrough · Heading · Link · Inline code · Quote · Lists · Checklist · Image · HR
  • Split view with semantic scroll-sync (preview follows editor cursor)
  • Smart paste — images → ./assets/, HTML → markdown, CSV → table
  • Smart list continuation (Enter in a list auto-continues; empty bullet exits)
  • Block move (Alt+↑ / Alt+↓)
  • Typewriter mode (Ctrl+Shift+T) — keep the cursor vertically centered
  • Native undo/redo via GtkSourceView; word count + reading time in the toolbar

Preview extras

  • KaTeX math ($x^2$, $$\int$$, \(…\), \[…\])
  • Mermaid diagrams in ```mermaid fences
  • Transclusion![[other-note]] or ![[other-note#Section]]
  • Click-to-toggle task checkboxes in preview — round-trips to source
  • Print stylesheet and a custom CSS drop-in (~/.config/markview/custom.css)
  • Tables, footnotes, admonitions, definition lists, abbreviations

Navigation

  • Command palette (Ctrl+P) — fuzzy jump to actions, headings, or files in the folder
  • Folder full-text search (Ctrl+Shift+F) — recursive .md, context snippets
  • Outline sidebar (Ctrl+Shift+O) — slide-in heading tree
  • Back / forward (Alt+← / Alt+→) — history of opened files + cursor lines

Palette actions (Ctrl+P)

Open / New / Save · Toggle edit / split / preview · Outline · Typewriter · Reload · Theme · Folder search · Open from URL · Insert table · All tasks in folder · Backlinks to this file · Check links · Snapshot history · Export PDF / DOCX / HTML / EPUB via pandoc.

Persistence

  • Every save writes a dated copy to ~/.local/state/markview/snapshots/. Latest 30 per document; browse with the palette.

Install

Get it from Snapcraft Install from Ubuntu PPA Get it on Flathub

Windows

Download the latest Windows installer from GitHub Releases.

The Windows build ships as an .exe installer built with Inno Setup and includes the packaged PyQt6 runtime.

Ubuntu (App Center via PPA)

sudo add-apt-repository ppa:mareekkk/canarybuilds
sudo apt update
sudo apt install markview

Snapcraft

sudo snap install markview

Flathub

flatpak install flathub com.canarybuilds.Markview
flatpak run com.canarybuilds.Markview

Linux source install (Ubuntu 22.04+ / Debian 12+)

sudo apt install python3-gi gir1.2-gtk-3.0 gir1.2-webkit2-4.1 \
                 gir1.2-gtksource-4 python3-markdown python3-pygments

git clone https://github.com/Canary-Builds/markview.git ~/markview
cd ~/markview && ./install.sh

Arch

sudo pacman -S python-gobject gtk3 webkit2gtk-4.1 gtksourceview4 \
               python-markdown python-pygments

Fedora

sudo dnf install python3-gobject gtk3 webkit2gtk4.1 gtksourceview4 \
                 python3-markdown python3-pygments

Optional

Dep Adds
pandoc PDF / DOCX / HTML / EPUB export from the palette
python3-html2text Higher-quality HTML-clipboard → markdown conversion
internet KaTeX + Mermaid (loaded from a CDN on each render)

Windows build from source

py -3.13 -m pip install -r requirements-win.txt pyinstaller
powershell -ExecutionPolicy Bypass -File .\build_win.ps1

This produces:

Path Purpose
dist\markview\markview.exe packaged Windows app
installer_output\markview-<version>-win-setup.exe Windows installer

Run

Linux:

markview                 # welcome screen
markview notes.md        # open a file
markview -V              # version

Windows:

.\dist\markview\markview.exe
py .\markview_win.py README.md

Shortcuts

Key Action
Ctrl+O Open file
Ctrl+N New document
Ctrl+S / Ctrl+Shift+S Save / Save As
Ctrl+E Toggle edit mode
Ctrl+P Command palette
Ctrl+F / Ctrl+Shift+F Find in buffer / Search in folder
Ctrl+Shift+O Toggle outline sidebar
Ctrl+Shift+T Toggle typewriter mode
Ctrl+R Reload from disk
Ctrl+D Toggle theme
Ctrl+Q Quit
Alt+← / Alt+→ Back / forward
Alt+↑ / Alt+↓ Move line/selection
Ctrl+B / I / K / H Bold / Italic / Link / Heading
Ctrl+Z / Ctrl+Shift+Z Undo / Redo

Full reference: docs/wiki/Keyboard-Shortcuts.md.

Configuration

markview is configuration-free by default. Optional drop-ins:

Path Purpose
~/.config/markview/custom.css Appended to the preview stylesheet on every render
<doc>/assets/ Where pasted images land (auto-created)
~/.local/state/markview/snapshots/ Auto-save history

See Configuration for details.

Layout

markview/
├── markview.py         # Linux GTK3/WebKit frontend
├── markview_win.py     # Windows PyQt6/QtWebEngine frontend
├── markview_core.py    # shared markdown/rendering helpers
├── style.css           # preview theme (light/dark/print)
├── icon-final.png      # master icon (1536×1024 source)
├── icon.png            # 512×512 square (installed via install.sh)
├── icon-{16..256}.png  # hicolor sizes
├── markview.desktop    # desktop entry template
├── install.sh          # user-local installer
├── build_win.ps1       # Windows bundle + installer helper
├── installer_win.iss   # Inno Setup script
├── requirements-win.txt
├── markview.spec       # PyInstaller spec for Windows
├── uninstall.sh
├── CHANGELOG.md
├── ROADMAP.md
├── CONTRIBUTING.md
├── LICENSE
├── .github/            # issue + PR templates, CI
└── docs/wiki/          # wiki pages (mirrored to the GitHub wiki)

Architecture (TL;DR)

Render pipeline: markdown + shared preprocessors (tasks, transclusion) → HTML → native webview frontend. Linux uses GTK3 + WebKit2. Windows uses PyQt6 + QtWebEngine/QWebChannel. See Architecture.

Roadmap

Planned features and the ones intentionally skipped live in ROADMAP.md.

Contributing

Pull requests welcome — please read CONTRIBUTING.md first. Small, focused PRs against main.

License

MIT — see LICENSE.

Acknowledgments

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors