Skip to content

MDown

A lightweight, cross-platform markdown viewer with infinite-scroll rendering. Built with SDL3, SDL_ttf, and md4c.

MDown opens a Markdown file and renders it as one continuous scrolling document, the way a reader expects. Press Ctrl+E and the source appears beside the render for editing, with the file written back on Ctrl+S. It starts fast, keeps memory low, and ships with its fonts and SDL libraries bundled so the Linux builds run on most distributions without extra packages.

Features

  • Infinite-scroll rendering of the whole document, no pagination.
  • Editor mode with the source beside a live render, mdown -e file.md.
  • Tables that fit their contents, with columns sized to what is in them.
  • Tabs for several files at once, with click, middle-click, and keyboard switching.
  • Text selection and copy by character, word, line, or the whole document.
  • Caret navigation with the arrow keys, word jumps, and document edges.
  • Syntax highlighting inside fenced code blocks.
  • Embedded HTML is rendered, not shown as raw tags: headings, paragraphs, lists, tables, blockquotes, <pre>, links, images, <kbd>, <mark>, colours, and centred <div> blocks.
  • Export to HTML for printing, themed to match what you see on screen.
  • Self-update with mdown --update, pulling the latest release.
  • Single instance: opening a file hands it to the running window as a new tab instead of starting a second process.
  • Light and dark rendering themes.

Quick start

curl -fsSL https://mdown.org/install.sh | sh
mdown README.md
sudo apt install ./mdown_1.1.1_amd64.deb
mdown README.md
tar xzf mdown-1.1.1-linux-x86_64.tar.gz
cd mdown-1.1.1-linux-x86_64
./mdown README.md

The one-line installer pulls the latest release and installs it into ~/.local with no root. Grab the downloads from the latest release, or read the installation guide for every option.

Coming next

An Android app is planned, so the same documents read the same way on a phone. It is not out yet and there is no build to install; this note is here so you know it is on the way rather than absent by design.

Where to next