LibreOffice
Convert a Writer document (or selection) into Euspell from a top-level Euspell menu, using the same engine as the browser extension — ported to Python and validated 35/35 against the JavaScript reference.
The converter macro
A one-pass converter run from an Euspell menu. It does notregister a linguistic spell or grammar service, so it never touches LibreOffice's Writing Aids machinery. Install has two parts — the macro and engine go in your user profile, and an optional extension adds the menu:
It installs in two parts: the macro and engine are copied into LibreOffice's user scripts directory, and the menu arrives as an .oxt extension. The paths differ on Windows, macOS and Linux, so the commands live with the code rather than here — docs/installing-addins.md is the maintained copy.
Restart, then use Euspell ▸ Convert Document / Convert Selection, or revert to traditional (a lexicon-based reverse). You can also run it directly from Tools ▸ Macros ▸ Organize Macros ▸ Python.
location=user). The profile install is a prerequisite for the menu.What is and isn't handled
| Content | Status |
|---|---|
| Context-free reforms (above → abov, night → niht) | Converted |
| NN2 | VVZ ambiguities (records, anchors), 702 plurals, 102 heteronyms | Converted from context (linear SVM + POS rules) |
| ~70 semantic homographs (read, bow, tear) | Left unchanged — per-word rules not yet ported |
| Inline character formatting | A converted paragraph resets to default run formatting |
Parked: live spell / grammar services
Implementations of Euspell as a live XSpellChecker and XProofreader exist but are not shipped: on LibreOffice 26.2 a passively-registered Python linguistic component crashes the Writing Aids dialog during service enumeration. The crash is in LibreOffice's handling of the component, not the engine — so the converter macro delivers the same result as an explicit command instead.