Skip to main content

Drop-in single-file Markdown viewer for any folder

Project description

md-viewer-py

md-viewer-py

PyPI version Python versions License

Drop-in Markdown viewer for any folder — installable via pip.

Zero dependencies. Install once, use everywhere as mdview.

Dark theme Light theme


Install

pip install md-viewer-py

Or with pipx (recommended for CLI tools):

pipx install md-viewer-py

Or install directly from source:

pip install .

Then run from any directory:

mdview                        # serve current directory on port 8080
mdview 3000                   # custom port
mdview /path/to/docs          # custom directory
mdview /path/to/docs 3000     # both

Or run as a Python module without installing:

python -m md_viewer

Features

  • Zero dependencies — Python standard library only, nothing to install
  • pip/pipx installable — install once, use anywhere as mdview
  • Dark theme UI — polished dark interface, easy on the eyes
  • File tree sidebar — folder navigation with collapsible directories
  • Full-text search — search across all Markdown files instantly
  • Table of contents — auto-generated with scroll spy and collapsible groups
  • Collapsible sections — click any heading to collapse/expand its content
  • .gitignore support — respects ignore patterns, skips .git, node_modules, etc.
  • Keyboard shortcuts — arrow keys to navigate, / to search
  • Reading progress bar — visual indicator of scroll position
  • Mobile responsive — works on small screens with hamburger menu
  • Print-friendly — clean print stylesheet for hard copies
  • Custom port and directory — point it at any folder, pick any port
  • Live content refresh — file list and content auto-refresh as files change

Quick Start

pip install md-viewer-py
mdview

A browser tab opens automatically at http://localhost:8080.

Examples

Keyboard Shortcuts

Key Action
/ or Ctrl+K Focus search
Previous file
Next file

How It Works

md-viewer-py is a pip-installable HTTP server built on Python's http.server. It scans the directory for .md files, serves a single-page dark-themed UI, and renders Markdown client-side using marked.js from a CDN. No build step, no config files, no virtual environments beyond the install itself.

Alternative: Copy and Run

No install needed — just drop the wrapper into any folder:

python3 md-viewer.py

Contributing

Contributions are welcome! See CONTRIBUTING.md for guidelines.

If you'd like to help but aren't sure where to start, see the full improvements & ideas list or pick from these highlights:

  • Light theme / theme switcher
  • Syntax highlighting for code blocks (highlight.js)
  • Mermaid diagram support
  • Live reload on file changes
  • Export to PDF or static HTML

Feel free to open an issue to discuss ideas before starting work.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

md_viewer_py-1.0.5.tar.gz (26.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

md_viewer_py-1.0.5-py3-none-any.whl (26.2 kB view details)

Uploaded Python 3

File details

Details for the file md_viewer_py-1.0.5.tar.gz.

File metadata

  • Download URL: md_viewer_py-1.0.5.tar.gz
  • Upload date:
  • Size: 26.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for md_viewer_py-1.0.5.tar.gz
Algorithm Hash digest
SHA256 1f25d26d57b3f6bc876cb8ba1363112b6df47f7b1656766824ea4e4ab0efb7d6
MD5 ee034c274e0059f25804dd8fc4c85f23
BLAKE2b-256 8f24e0d2c7e2334b9e4a53742517180b75ba450023d1227a14b9abf054654edc

See more details on using hashes here.

File details

Details for the file md_viewer_py-1.0.5-py3-none-any.whl.

File metadata

  • Download URL: md_viewer_py-1.0.5-py3-none-any.whl
  • Upload date:
  • Size: 26.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for md_viewer_py-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 9215b06e3c7bc2a2d508cffe4592b99828c03305035bb9e1c030eb2ab464aecc
MD5 9dfd415b88371d844f038c4bd29c8a35
BLAKE2b-256 788f196e076b50d812187f98818cb2cc89eb4cefe70b55b1a46da3c726f0924a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page