Skip to main content

A tiny local web app for highlighting and commenting on plain text files.

Project description

txthighlight

A tiny local web app for highlighting and commenting on plain text files.

Installation

pip install txthighlight

Usage

Run it like this:

txthighlight --host 0.0.0.0 --port 8080 somefile.txt

Then open:

http://0.0.0.0:8080

Highlight metadata is stored next to the source file in:

somefile.txt.json

What it does

  • renders a plain text file in the browser
  • lets you select text and highlight it
  • lets you add comments to highlights
  • lets you remove highlights
  • stores annotation data locally in a JSON sidecar file
  • works with desktop and mobile browsers

Why this exists

There are many tools for annotating PDFs, rich text documents, and web pages. There are very few simple tools for annotating a raw local text file.

Plain text is still a common working format for:

  • transcripts
  • logs
  • OCR output
  • legal or policy text
  • prompt corpora
  • research notes
  • interview notes
  • exported chat histories

This project fills that narrow gap: plain text in, annotations in a nearby JSON file, no database required.

The niche

This tool lives in an awkward but useful niche.

Most annotation tools assume one of these:

  • HTML pages annotated by a browser extension
  • rich text documents like Word or Google Docs
  • PDF with built-in annotation support
  • note-taking apps with their own storage format

But sometimes you do not want any of that. Sometimes you have a .txt file and want to keep working with a .txt file.

Data format

Annotations are stored in <text-file>.json.

Example:

{
  "source_file": "/path/to/somefile.txt",
  "annotations": [
    {
      "id": "3d7278a2-6d67-4e1c-a0c8-4a0a7d3b0e40",
      "start": 12,
      "end": 42,
      "comment": "Important passage",
      "created_at": 1713350000,
      "updated_at": 1713350123
    }
  ]
}

Offsets are character offsets into the text file as loaded by the app.

Contributing

Contributions are welcome! Please submit pull requests or open issues on the GitHub repository.

License

This project is licensed under the MIT 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

txthighlight-0.1.0a0.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

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

txthighlight-0.1.0a0-py2.py3-none-any.whl (9.7 kB view details)

Uploaded Python 2Python 3

File details

Details for the file txthighlight-0.1.0a0.tar.gz.

File metadata

  • Download URL: txthighlight-0.1.0a0.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for txthighlight-0.1.0a0.tar.gz
Algorithm Hash digest
SHA256 2683f7dc8ae2262437bdb44e5f856053e832c98d9eee0a95cf6464a987db72a7
MD5 844fac90f1a32cca3d4e14225522793d
BLAKE2b-256 d4bd455df72ec30ab7ea489ee7c302f9328574b400d94b4f38b2c5b323af34bb

See more details on using hashes here.

File details

Details for the file txthighlight-0.1.0a0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for txthighlight-0.1.0a0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 5969533923a25faadff46f5b1da04ea71d39c00de3bac59ae511b4881256b82d
MD5 1cb77a70c4347f1d33170bf922fba22d
BLAKE2b-256 618980840aef19ee63d05e92315256d2e143855bbe38f14e7df987a12f943993

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