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
Ctrl+B Bold
Ctrl+I Italic
Ctrl+E Inline code
Ctrl+K Insert link
Ctrl+Shift+7 Ordered list
Ctrl+Shift+8 Unordered list
Ctrl+Shift+. Blockquote

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.3.1.tar.gz (763.2 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.3.1-py3-none-any.whl (764.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for zenmarked-0.3.1.tar.gz
Algorithm Hash digest
SHA256 8e93462022e0c55c5f5f7d58ba0d45869f19f794fd16e2b1bca3fda52ec2f760
MD5 4748116978e14baa91ee21b69a5ea8b9
BLAKE2b-256 2226562e52133279f6c768181573de155676b392ff739716d5d8b0a1b4da856c

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenmarked-0.3.1.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.3.1-py3-none-any.whl.

File metadata

  • Download URL: zenmarked-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 764.5 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e266f78e46e4320c42c15774823fb46855121cf9ed62ea2b241e00f4b08cb290
MD5 ac8709d8c7cd992f87ce82c0375085df
BLAKE2b-256 3a2e4adb053e3d7286f433148cd1258b777c70fe96176f67553f0e004432670e

See more details on using hashes here.

Provenance

The following attestation bundles were made for zenmarked-0.3.1-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