mdedit
A terminal Markdown viewer and editor, built with Textual and Rich.
Open a .md file to a fully rendered view (headings, tables, code blocks,
lists, block quotes...) and press a single key to toggle into a
syntax-highlighted source editor for the same file — then toggle back to see
your changes rendered.
Install
pip install git+https://github.com/matplo/mdedit
Usage
mdedit path/to/file.md # open (or create) a file
mdedit # start with a prompt to open/create a file
Key bindings
| Key | Action |
|---|---|
ctrl+t |
Toggle between view and edit mode |
ctrl+s |
Save |
ctrl+r |
Reload from disk |
ctrl+q |
Quit (prompts if unsaved changes) |
Note: if
ctrl+sdoesn't seem to do anything in your terminal, it may be intercepted by terminal flow control (XON/XOFF). Runstty -ixonin your shell first, or use the Save option from the command palette (ctrl+p).
Development
pip install -e ".[dev]"
pytest
ruff check .
ruff format --check .
Releasing to PyPI
Releases publish automatically via GitHub Actions using trusted publishing (no API token stored anywhere). To cut a release:
- Bump
__version__insrc/mdedit/__init__.py, commit it. - Tag and push:
git tag vX.Y.Z && git push origin vX.Y.Z - The
Publish to PyPIworkflow builds the sdist/wheel and uploads them.
Roadmap
v1 is intentionally scoped to a single-file, toggle-based view/edit experience. Not yet included (candidates for a future version):
- Always-rendered, true WYSIWYG editing (edit directly on rendered text, no separate source view)
- Split-pane side-by-side edit + preview
- Browser-style navigation history, bookmarks, remote/URL loading
- Multiple open files / tabs
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mdedit-0.1.0.tar.gz.
File metadata
- Download URL: mdedit-0.1.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5903ae8ece703f099cda3469b3d72efb39adf9cce385ca1e101f7d2696f9288c
|
|
| MD5 |
ce73d42a747c7824455c4a14175dc584
|
|
| BLAKE2b-256 |
28d38510acd9733d52896fbb021bd209ba15d6ae7305e1a9a03ee22601d414dc
|
Provenance
The following attestation bundles were made for mdedit-0.1.0.tar.gz:
Publisher:
publish.yml on matplo/mdedit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mdedit-0.1.0.tar.gz -
Subject digest:
5903ae8ece703f099cda3469b3d72efb39adf9cce385ca1e101f7d2696f9288c - Sigstore transparency entry: 2691634344
- Sigstore integration time:
-
Permalink:
matplo/mdedit@d9307d7ab7727190c4ece606f1409c3ca02efd7c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/matplo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d9307d7ab7727190c4ece606f1409c3ca02efd7c -
Trigger Event:
push
-
Statement type:
File details
Details for the file mdedit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: mdedit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a73b71c724c33cf865935c03f37849c23413c0df817b7bf7bfc216aa621865df
|
|
| MD5 |
a1210520030898c02b07640a9b864b5b
|
|
| BLAKE2b-256 |
a95272076c867783470a8f9833b4e9e310b092cedda10309b8192f80099c2ce2
|
Provenance
The following attestation bundles were made for mdedit-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on matplo/mdedit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
mdedit-0.1.0-py3-none-any.whl -
Subject digest:
a73b71c724c33cf865935c03f37849c23413c0df817b7bf7bfc216aa621865df - Sigstore transparency entry: 2691634521
- Sigstore integration time:
-
Permalink:
matplo/mdedit@d9307d7ab7727190c4ece606f1409c3ca02efd7c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/matplo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d9307d7ab7727190c4ece606f1409c3ca02efd7c -
Trigger Event:
push
-
Statement type: