chore: release 0.4.0

Everything since 0.3.0 on 2026-09-09: a cover page as the file draws it — page-placed
frames, themed shape colours, floating tables, drawing groups — the run-through wrap
modes as pickable frames, a text box's vertical anchor, the fonts a saved document
carries with it, the header band's height and the table inside it, and the selection
surviving an attribute change.
This commit is contained in:
Steffen Becker committed 2026-09-12 02:35:43 +02:00
1 parent f33e708b84
commit 7a9e30d998
3 files changed
+48 -3

No files matched your search

+45
View File
@@ -2,6 +2,51 @@
<!-- Newest release first. New entries go here: ## [x.y.z] — YYYY-MM-DD -->
## [0.4.0] — 2026-09-12
The weight of this release is the cover page: frames placed against the page, shape colours out
of the document's theme, floating tables and drawing groups now arrive as the file draws them. A
saved document also carries the fonts it was opened with.
### Added
- A saved file embeds the fonts it was opened with — TTFs under `Fonts/` in ODF, obfuscated
`.odttf` parts in `.docx` — so it keeps its look on a machine without them; the font picker
lists the embedded families
- A drawing group (`wpg:wgp`) opens as the frames it holds
- A floating table (`w:tblpPr`) opens as the box that holds it, and both exporters write it back
- Behind and in front of the text are offered as wrap modes on both frame toolbars and in the
ribbon's Arrange group, each pickable and draggable where it sits
- A text box anchors its text top, middle or bottom (Shape Format), carried by both formats
- Every version tag publishes the built app as an archive on its GitHub release: unzip, point a
web server at the folder
### Changed
- The header/footer layer draws one box per zone instead of two, 150 fewer placed boxes per pass
### Fixed
**Frames and shapes**
- A frame placed against the page lands there rather than at its anchor paragraph
- A shape's fill and stroke resolve the document's theme, the per-channel modifiers included
- A frame behind the text can be picked again, and a right-click over one opens the context menu
- A line shape of no height draws again, and is saved flat instead of across its frame's diagonal
- Setting a wrap mode, resizing, rotating or editing a formula keeps the selection, so the
floating toolbar and the contextual tab stay up
**Headers and footers**
- A header zone is as tall as the row the file draws it in (`w:trHeight`)
- A `.docx` zone keeps the space above its first line, so a tall header reopens at its height
- A header/footer table's text and rule line reach the zone
- The whole margin band opens the zone on a double-click, and an empty zone's placeholder sits on
the line the caret lands on
**Elsewhere**
- Ctrl+K, the context menu and a double-click on a formula reach their dialogs from any ribbon tab
- A heading in a table cell keeps the spacing its file gives it
- A date or time format outside the picker's catalog stays a live field
- Enter keeps an empty line inside a columns section
- A long ribbon label widens its button instead of painting across its neighbour
## [0.3.0] — 2026-09-09
The weight of this release is the latency of a long document: it opens and settles in a
+2 -2
View File
@@ -1,12 +1,12 @@
{
"name": "edentext",
"version": "0.3.0",
"version": "0.4.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "edentext",
"version": "0.3.0",
"version": "0.4.0",
"license": "AGPL-3.0-only",
"dependencies": {
"@noble/ciphers": "^2.4.0",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "edentext",
"version": "0.3.0",
"version": "0.4.0",
"type": "module",
"description": "A fully client-side, serverless rich-text editor that saves documents as .odt",
"license": "AGPL-3.0-only",