Skip to content

feat(html): list numbering and placement from HTML/CSS, footnote style, lists split in cells - #40

Merged
dskripchenko merged 3 commits into
mainfrom
feat/html-list-markers
Oct 19, 2026
Merged

dskripchenko merged 3 commits into
mainfrom
feat/html-list-markers

Conversation

@dskripchenko

Copy link
Copy Markdown
Owner

What Word's multilevel numbering needs on the print side (printable stage 3), plus fixes found measuring it.

Added

  • HTML lists: <ol start>, type / list-style-type (decimal, alpha, roman, none), <li value>, ::marker { content } with strings, counter(list-item), counters(list-item, "."). ListItem::$marker / $value, ListFormat::number().
  • Placement by CSS: list padding-left/margin-left (ListNode::$indentPt), item margin-left (ListItem::$indentPt); list and item vertical margins.
  • A hanging indent is a tab stop on the first line (as Word): labels are followed by a tab, so text starts on the indent whatever the label width.
  • Footnote::$style — the note's own text style at the page foot / in endnotes.
  • A list in a table cell splits between items (and inside a nested list) when its row is split across pages, numbering on — a long list no longer carries its whole row to the next page.

Fixed

  • <ol start> / type were ignored.
  • An item holding only a nested list printed an empty line.

Tests: HtmlListMarkersTest, footnote style; suite 2595 green, phpstan clean, visual regression passes locally. Docs: USAGE en/ru/de/zh, CHANGELOG Unreleased.

🤖 Generated with Claude Code

dskripchenko and others added 3 commits October 19, 2026 07:34
…-item counter

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…or the label

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…table cells

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@dskripchenko
dskripchenko merged commit bd5a110 into main Oct 19, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant