Euspell
Tools

Eupub reader

A standalone reader (Electron) that renders EPUB, PDF and plain-text books in Euspell spelling — reusing the browser extension's conversion engine without modifying a line of it.

The one load-bearing idea

The extension reforms a web page by running walkTextNodes(document.body, convert) over its DOM. An EPUB chapter is an XHTML document, and a plain-text file can be turned into one. So Eupub never re-implements conversion — it arranges for a chapter document to exist and runs the exact same convert() + walkTextNodes() pair inside it.

src/engine/eupub-engine.js — the only code that touches the engine
import { convert }       from '../../../euspell_ext/src/content/converter.js';
import { walkTextNodes } from '../../../euspell_ext/src/content/dom-walker.js';

How a book is rendered

  • An .epub is unzipped to a temp dir; a .txt is synthesized into an EPUB-shaped book on disk. Both yield the same object, so nothing downstream cares which ran.
  • Each chapter is rendered in a sandboxed <iframe srcdoc> with its own scripts stripped and the engine bundle injected.
  • The engine auto-runs on load and respells the chapter; a viewer runtime adds CSS-column pagination, bookmarks, highlights, and search.
  • A .pdf takes a different path: it is fixed-layout rather than a spine of chapters, so it opens in the embedded PDF.js viewer instead — the same viewer the browser extension uses.
Euspell on/off, without losing your place
The converter only rewrites text values, never structure. Reading position, bookmarks, and search targets are element-only paths, so they stay valid when you toggle spelling. Book-wide search even indexes both spellings — a query for people or peeple finds the same spot.

Get it

Every release ships four signed builds — an Authenticode-signed Windows installer, a notarized macOS disk image, a Linux AppImage, and an Android APK signed with the release key — all of them on the downloads page. On iPhone it comes from the App Store — free, iOS 17 or later.

Per-platform steps, including what to do about the first-run warnings, are in docs/installing.md in the Eupub repository, which is the maintained copy.

Known limits

  • EPUB, PDF and TXT — no MOBI, AZW, DOCX, or raw HTML.
  • The macOS disk image is arm64 only — there is no Intel build.
  • EPUB scripting is stripped and fixed-layout books aren't supported — the reader assumes reflowable, single-column content.