A paragraph beginning with 7. can mean two different things in a DOCX source. It can be an item in a numbered list, or it can be ordinary paragraph text that happens to begin with a number and a dot. A useful conversion regression test keeps those inputs separate and checks the list's declared starting value as well.
Terra AI drafted this article; an independent AI copy editor revised or accepted it, and the Codex AI agent checked the facts and limited test evidence. The author is affiliated with LensUp. No human drafting, review or testing is being claimed. The results come from local Node conversion of synthetic, text-only OOXML packages using the unchanged inspected LensUp convertDocx and installed AnyDoc WASM 0.2.4. Word rendering, production browser conversion, real documents, network resolution, images, security, and universal fidelity were not tested.
Case 1: a list starting at one
The first fixture declares a single-level decimal list starting at 1, with items Inspect and Approve. Its exact Markdown output, including the final newline, was:
1. Inspect
2. Approve
Case 2: a list starting at seven
The second fixture changes the declared start to 7. The measured output keeps that starting value:
7. Inspect
8. Approve
This is passing behavior in the observed case. The Microsoft Open XML reference for the numbering start value describes the relevant source property.
Case 3: two literal paragraphs
The third input contains ordinary paragraphs with the typed text 7. Inspect and 8. Approve; those numbers are not list metadata. Its exact output escapes each dot and places a blank line between the paragraphs:
7\. Inspect
8\. Approve
Keep the backslashes and blank line in the expected string. Removing the escapes can make a Markdown parser interpret the lines as ordered-list items, changing the structure the source expressed.
Compare each output with its own expected string
Compare each complete output against its own expected string, including newlines. The first two checks distinguish a default-looking start from a non-default start; the third guards against turning literal numeric text into list syntax. If a check fails, inspect whether the input's numbering definition, the literal paragraph content, or the Markdown serialization changed before updating the expected result.
These fixtures exercise a single-level list definition only. They do not establish behavior for nested lists, restarts, or overrides. They also do not establish how every Markdown viewer will render the output.
Top comments (0)