philandClaude Fable 5 029ee7da11 Address review: remap fragment-only links, tidy guard, document checkbox
- Fragment-only refs (href="#note1") are relative to the file they sit
  in; after a file split the anchor may live in a sibling chunk. Track
  each chunk's original filename and rewrite such refs to the chunk
  that owns the anchor (verified with a synthetic EPUB: 25 local
  footnote links across 3 chunks plus one cross-file ref all resolve).
- Drop the dead `or True` condition; page-list nav removal always runs,
  link remapping only when anchors moved.
- List the new split checkbox in the README's step-by-step options.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-12 11:47:59 +02:00
2026-02-22 18:43:12 -05:00

Calibre Plugins

Calibre plugins for CrossPoint Reader.

Plugins

CrossPoint Reader

A wireless device plugin that uploads EPUB files to CrossPoint Reader over WebSocket. The plugin auto-discovers devices on the local network via UDP broadcast.

It can also optimize EPUBs before transfer — mirroring the optimizer built into the CrossPoint web server — by resizing images to the device screen (X4 480×800 / X3 528×792, auto-detected), converting them to grayscale JPEG, and rewriting the container. The optimizer is based on the initial work by @zgredex, ported here from the firmware. Enable it in the plugin's settings; see the usage instructions.

See crosspoint_reader/README.md for protocol details, the optimizer, and configuration.

Installation

Download the latest release from the releases page, then in Calibre: Preferences > Plugins > Load plugin from file.

Development

Setup

# Build and install the plugin into Calibre
make install

# List all installed plugins
make list

# Remove the plugin
make remove

See calibre-customize docs for more options.

Releasing

The version is read from the version tuple in crosspoint_reader/driver.py.

# Bump the version (updates driver.py in place)
make bump-patch   # 1.0.0 -> 1.0.1
make bump-minor   # 1.0.0 -> 1.1.0
make bump-major   # 1.0.0 -> 2.0.0

# Package the plugin into a zip (crosspoint_reader-vX.Y.Z.zip)
make zip

# Create a GitHub release with the zip attached (runs `make zip` first)
make release

make release uses the GitHub CLI (gh) to create a tagged release with auto-generated notes.

Typical workflow:

  1. make bump-patch (or bump-minor / bump-major)
  2. Commit the version change
  3. make release

Project structure

crosspoint_reader/
  __init__.py   # Plugin entry point
  driver.py     # Device driver (discovery, upload, delete)
  ws_client.py  # WebSocket client and UDP discovery
  config.py     # Settings UI and preferences
  log.py        # Logging utilities

License

MIT

S
Description
No description provided
Readme MIT
403 KiB
Languages
Python 98.7%
Makefile 1.3%