Skip to main content

Standalone markdown editor with live preview and image support

Project description

zenmarked

A snappy offline-first markdown editor featuring:

  • live preview via marked.js
  • images support: add with drag-and-drop or paste from clipboard
  • syntax highlighting via CodeMirror
  • user-friendly shortcuts

It runs as a local web server, you access it in your browser.

Screenshot of ZenMarked in action

ZenMarked being used to update its own README

Installation

You can install with:

pip install zenmarked

If you use uv, you can install it with:

uv tool install zenmarked

Or skip installation and just use it through uvx like so: uvx zenmarked

Usage

zenmarked [FILE.md] [options]
Argument Description
FILE.md Optional. File to open on start (created if it doesn't exist). Its directory becomes the working directory.
Option Description
--port PORT Port to listen on (default: auto-assign)
--image-dir PATH Directory for uploaded images (default: images/ inside working dir)
--no-autosave Disable auto-save (use Ctrl+S only)
--theme THEME Color theme: light or dark (default: dark)
--no-browser Don't auto-open browser on start

Examples

# Open CWD — sidebar shows all .md files, create/edit freely
zenmarked

# Open a specific file
zenmarked notes.md

# Light theme, custom port
zenmarked journal.md --theme light --port 8080

# Custom image directory, no autosave
zenmarked docs/readme.md --image-dir docs/assets/imgs --no-autosave

Screenshots

Screenshot of zenmarked in dark mode

Dark mode

Features

  • 3-column layout: sidebar (file list + image gallery) + editor + live preview
  • Markdown syntax highlight via CodeMirror
  • Live preview via marked.js, updates as you type
  • Auto-save enabled by default, Ctrl+S to save manually at any time
  • Image support: drag-and-drop, click drop zone, or paste from clipboard
  • Image insertion modal: alt text, caption, alignment, custom width
  • Click image in preview to edit its properties
  • Rename image right-click image in the gallery to rename it
    • references are updated automatically across all .md files in the working dir
  • Smart URL paste: select text in editor, paste a URL → auto-creates a markdown link
  • Light / Dark themes

Image paths

Images are stored in ./images/ (relative to the working directory) by default, and inserted into markdown as ./images/filename.png.

The image target directory can be overriden through option --image-dir PATH

Keyboard shortcuts

Shortcut Action
Ctrl+S Save current file
Alt+N Create new file
Escape Close modals

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

zenmarked-0.2.0.tar.gz (761.7 kB view details)

Uploaded Source

Built Distribution

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

zenmarked-0.2.0-py3-none-any.whl (763.3 kB view details)

Uploaded Python 3

File details

Details for the file zenmarked-0.2.0.tar.gz.

File metadata

  • Download URL: zenmarked-0.2.0.tar.gz
  • Upload date:
  • Size: 761.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zenmarked-0.2.0.tar.gz
Algorithm Hash digest
SHA256 63b46db938da82cfaf043c923e6426c11b7043d5c1659edee19ad741d806d05b
MD5 8cc421a8d04d594b3c94bec6727b68de
BLAKE2b-256 a381813f30469e41627271b22dfccbbba9e6fbcf4af6789a37a2690ec5d5b825

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenmarked-0.2.0.tar.gz:

Publisher: publish.yml on eliasdorneles/zenmarked

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file zenmarked-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: zenmarked-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 763.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for zenmarked-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 825fc8cc0fa502c53f83f7d6bcdeba2bbf8b927935ad271cbe4aa1db08825fa0
MD5 41a90f33257294c23d09f0d7f6063e7c
BLAKE2b-256 b556c1fcf97447af879325197e6de51c35986630ef3f97a7cc05ab9d2f716bfe

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenmarked-0.2.0-py3-none-any.whl:

Publisher: publish.yml on eliasdorneles/zenmarked

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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