WML — advanced
numbering.xmldetails:lvl,abstractNum,num,lvlOverride,numPicBullet.
Module wmlNumberingDetails | Source packages/front/office/ooxml/src/extra/wml-numbering-details.js | Deps xml | Worker-safe yes
Provides typed parse/render for <w:lvl>, <w:abstractNum>, <w:num>, <w:lvlOverride> and <w:numPicBullet> and all their children.
Resolve
const ext = wmlNumberingDetails.factory(xml);
API
| Method | Signature | Returns |
|---|---|---|
parseLvl / renderLvl |
(el) => Lvl / (l) => xmlNode |
full level (start, numFmt, lvlText, lvlJc, nfc, suff, lvlPicBulletId, lvlRestart, pStyle, isLgl, legacy, raw pPr/rPr) |
parseAbstractNum / renderAbstractNum |
(el) => AbstractNum |
<w:abstractNum> (nsid, multiLevelType, tmpl, tplc, name, styleLink, numStyleLink, lvls[]) |
parseNum / renderNum |
(el) => Num |
<w:num> (abstractNumId, lvlOverrides[]) |
parseLvlOverride / renderLvlOverride |
(el) => LvlOverride |
<w:lvlOverride> (startOverride, numStart, numRestart, lvl?) — startOverride is a plain field here, there is no standalone parseStartOverride |
parseNumPicBullet / renderNumPicBullet |
(el) => {attrs, children} |
<w:numPicBullet> (image bullet part) — there is no standalone parseLvlPicBullet; lvlPicBulletId is just a field on parseLvl's output |
findChild |
(parent, name) => xmlNode |
re-exported from xml |
Elements typed
lvl, abstractNum, num, lvlOverride, startOverride, numStart, numRestart, numPicBullet, abstractNumId, nsid, multiLevelType, tmpl, tplc, name, numStyleLink, styleLink, nfc, isLgl, suff, lvlPicBulletId, legacy, lvlRestart, pStyle, lvlJc, numFmt, start, lvlText.
Roundtrip example
const ext = wmlNumberingDetails.factory(xml);
const lvlEl = xml.parse('<w:lvl xmlns:w="..." w:ilvl="0"><w:start w:val="1"/><w:numFmt w:val="decimal"/><w:lvlText w:val="%1."/></w:lvl>');
const lvl = ext.parseLvl(lvlEl);
// → { attrs: {'w:ilvl':'0'}, start:'1', numFmt:'decimal', lvlText:'%1.' }
Notes
- This module does not register any hook on
docx.use(); it provides pure parse/render helpers used when manipulating thenumberingpart directly. - Level text token escapes (
%1,%2) are kept verbatim.