Skip to main content

A lightweight text editor with focused writing and reading in mind

Project description

textli

A lightweight text editor with focused writing and reading in mind.

textli is a full-window, distraction-free Markdown editor: one warm paper-toned column of text, vim keybindings, and nothing else on screen. ⌘R flips the source into a rendered reading view made for proof-reading and review — navigate with vim motions, leave inline comments, and propose suggestions (track changes) that the author accepts or rejects with a keystroke. All annotations are stored inline as CriticMarkup, so they travel with the file and diff cleanly in git — no sidecar files.

textli started life as the editor inside grafli, the keyboard-driven diagram tool, and is now its own package — usable standalone or embeddable in any PySide6 application.

Install

uv tool install textli-editor   # or: pipx / pip install textli-editor

The package publishes as textli-editor (plain textli is too close to an existing PyPI name), but everywhere else it's just textli: the command is textli, the import is import textli.

Use

textli notes.md                     # open (created on first save)
textli notes.md#design-decisions    # jump straight to a heading
textli -r review.md                 # start in the reading view

The editor opens ready to type (vim NORMAL mode) and autosaves while you work. Press F1 inside the editor for the complete key reference, or see the documentation.

The short version

Key Action
⌘R Toggle write ↔ reading view
Esc Save & close (⇧Esc cancels)
⌘↵ Full-window width
⌘. Section focus (dim all but the current paragraph)
c / s Comment / suggest a change on the selection (reading view)
a / x Accept / reject the suggestion under the caret
F1 Full help

Embed

from textli import ZenMarkdownEditor, InlineVimEditor

ZenMarkdownEditor is the full-window editor (parent it into any widget); InlineVimEditor is a small vim-capable QPlainTextEdit for editing a single piece of text in place. See the embedding guide.

Develop

uv venv && uv pip install -e '.[dev]'
QT_QPA_PLATFORM=offscreen .venv/bin/pytest -q

License

MIT — see LICENSE. Bundled fonts are licensed under the SIL Open Font License.

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

textli_editor-0.1.0.tar.gz (2.8 MB view details)

Uploaded Source

Built Distribution

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

textli_editor-0.1.0-py3-none-any.whl (2.7 MB view details)

Uploaded Python 3

File details

Details for the file textli_editor-0.1.0.tar.gz.

File metadata

  • Download URL: textli_editor-0.1.0.tar.gz
  • Upload date:
  • Size: 2.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for textli_editor-0.1.0.tar.gz
Algorithm Hash digest
SHA256 74b0add5873347f49006c4fa968ad88698f9065f6446e126e864a92ff047da22
MD5 2731b632425e6bcc81cdbc40d479b3b3
BLAKE2b-256 e9a6bebc3763ad3a536133541ef46a6d69bc62d9de64412a34df576f0c0125b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for textli_editor-0.1.0.tar.gz:

Publisher: release.yml on MisterGC/textli

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

File details

Details for the file textli_editor-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: textli_editor-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for textli_editor-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 97e99fc58c25f76dc5b214f3e9e4c4d439adb0b6ccb89bd59abf35e20f4992ce
MD5 674b8ead511960dd84b1d406be8de9d8
BLAKE2b-256 a1233bd7aa2de4ebc8bcc660ddb86006a2f2c3773ffd7b87bdfd47f85937e57e

See more details on using hashes here.

Provenance

The following attestation bundles were made for textli_editor-0.1.0-py3-none-any.whl:

Publisher: release.yml on MisterGC/textli

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