Repository navigation
v0.5.0
The weight of this release is the cross-reference: every target type a word processor offers,
inserted from a movable window and kept alive through both formats. Beside it, four more program
languages with their dictionaries, a grammar check, a language per paragraph, and a pass over the
section and page geometry that a mixed-paper document depends on.
Added
- Cross-references and bookmarks — a movable window offers every target type (headings,
numbered paragraphs, bookmarks, captions per category, foot- and endnotes) in every reference
format ODF names. References and their targets survive both formats, a LibreOffice document's
own reference marks resolve, and a reference draws as the field it is - Spanish, French, Portuguese and Russian as program languages — the globe picker offers
Español, Français, Português (Portugal) and Русский, and the whole UI follows: ribbon, dialogs,
context menus, built-in templates, number formats and date fields (a Slavic locale in the
genitive a date is printed in). Each comes with Hunspell spell check and a MyThes thesaurus,
the AutoCorrect quotes and currency its locale names, and saves as its own tag - Grammar and style check (harper.js, local, no server): a switch beside the language picker
turns it on, blue waves mark what it finds, and the context menu offers the fixes. English
only — the engine carries its rules in code, so it greys out elsewhere and says so. Off by
default: it downloads a 16 MB model once, and lints in a worker off the main thread - A language per paragraph and per run, as LibreOffice and Word both carry it: the picker
follows the cursor and sets the paragraph or the selection, "For all text" takes the document
back to one language. Round-trips asfo:language/w:lang, a language we have no dictionary
for included, and each run is spelled against its own dictionary - Field shading (View ▸ Field Shadings) — LibreOffice's grey ground on every field, header
and footer included; it persists, and print and PDF drop it
Fixed
Sections and page geometry
- A table or an index can open a section, and a section ending inside a content control is found,
so a later section no longer renders the page setup of the one before it - Headings and the index are inset by their section's side margins, and a page-anchored frame is
placed from its own page's corner rather than the sheet's - A DOCX table takes the percentage width it declares, and a list item its own indent over the
numbering level's - An index is bounded by its own page's content band, and a long entry wraps instead of being cut
Import and export
- Word's
w:noBreakHyphenandw:softHyphenarrive as characters - A footer text box keeps its field — Word's page number among them — when the zone is flattened
- An embedded object whose doctype merely names a DTD is read; only entity declarations are refused
- A floating ODF frame stays where it sits in the text, and a paragraph reads its language from
Standardrather than the family default
Editing
- Enter after a forced page break no longer opens another page
- Pasted blocks reach a header/footer zone, a note and a text box instead of being wrapped or dropped
- Whole-word search bounds a word by Unicode, and a search jumps to its result
Security
- A hardening pass over the importers: archive expansion, XML nesting and entities, structural
integers, TIFF decoding, table formula references and encrypted containers are bounded or
validated, pasted remote image sources are dropped, and text box and stylesheet values sanitized