mirror of
https://github.com/storytold/wordcraft.git
synced 2026-11-09 20:00:11 -06:00
* ODT gap 19: custom styles with an outline level keep their name when edited A paragraph in a custom style with style:default-outline-level was read as WordCraft's Heading 1 or whichever level it named. Unedited, it was written as read. Edited, it was saved as Heading_20_1, so LibreOffice showed WordCraft's blue heading instead of the file's look, and WordCraft drew it that way too. Read such a style as a custom style that carries the outline level. The paragraph stays a heading at that level in WordCraft, is numbered with the file's outline as LibreOffice numbers it, and is saved as <text:h text:style-name="Head" text:outline-level="1">. The level comes from the style, not the paragraph kind, because kinds stop at Heading 6. The writer dropped a custom style's name on any heading, title, quotation or code paragraph, so custom styles based on those lost their look when edited too. It now keeps the name for every kind. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ODT: a heading's own outline level gives its number (gap 19) LibreOffice numbers a heading by its text:outline-level. WordCraft took the number from the style's level, so a heading stating another showed the wrong number, or one on a level the outline doesn't number. A heading in a list stays the list's. Found by CodeRabbit on this PR, as was the Title-based style test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ODT: a heading in a list of its own keeps it, and an unnumbered level takes no number (gap 19) Any list whose first level was linked to a style counted as the outline's, so a heading deeper in one lost its list on save. Now only the number the outline itself gives counts. A style based on a numbered heading, at a level the outline doesn't number, took its parent's number. Found by CodeRabbit on this PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ODT: a heading past level 6 keeps its list (gap 19) The written outline has no number past Heading 6, so counting such a heading's list as the outline's lost its number. Found by CodeRabbit on this PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ODT: a style with a heading numbered by its own level stays on the outline (gap 19) Writing it with no list style took the number from that heading in LibreOffice. Written so, the numbers match the file's. Found by CodeRabbit on this PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * ODT: a heading past level six numbered through its style keeps its list (gap 19) The written outline numbers only six levels, and the list was dropped for a heading numbered only through its style, so at levels 7 to 9 it lost its number once its style was rewritten. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Gap 19: docs status lines are main's, with this change in front Merging main had kept this branch's older status lines in ROADMAP.md and docs/file-format-parity.md, which set main's 2026-11-08 date back and dropped main's newer entries and the parity doc's CLI path note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: FredApps <FredApps@users.noreply.github.com>