@@ -30,7 +30,6 @@ import type {
3030 FootnoteRegistry ,
3131 NodeBuilder ,
3232 NodeBuilders ,
33- NumberingRegistry ,
3433 RemarkDocxPlugin ,
3534 Writeable ,
3635} from "./types" ;
@@ -81,14 +80,18 @@ type OrderedListFormat = {
8180 text : string ;
8281} ;
8382
83+ type NumberingRegistry = {
84+ createId : ( ) => string ;
85+ getIds : ( ) => string [ ] ;
86+ } ;
8487const createNumberingRegistry = ( ) : NumberingRegistry => {
8588 let counter = 1 ;
8689
8790 return {
88- create : ( ) => {
91+ createId : ( ) => {
8992 return `${ ORDERED_LIST_REF } -${ counter ++ } ` ;
9093 } ,
91- toConfig : ( ) => {
94+ getIds : ( ) => {
9295 return Array . from (
9396 { length : counter } ,
9497 ( _ , i ) => `${ ORDERED_LIST_REF } -${ i } ` ,
@@ -240,7 +243,7 @@ export const mdastToDocx = async (
240243 indent : 0 ,
241244 definition : definition ,
242245 footnote,
243- numbering,
246+ orderedListId : numbering . createId ,
244247 } ;
245248
246249 const sections : DocxContent [ ] [ ] = [ [ ] ] ;
@@ -289,7 +292,7 @@ export const mdastToDocx = async (
289292 . map ( ( s ) => ( { children : s as DocxChild [ ] } ) ) ,
290293 footnotes : footnote . toConfig ( ) ,
291294 numbering : {
292- config : numbering . toConfig ( ) . map ( ( ref ) => ( {
295+ config : numbering . getIds ( ) . map ( ( ref ) => ( {
293296 reference : ref ,
294297 levels,
295298 } ) ) ,
@@ -386,7 +389,7 @@ const buildList: NodeBuilder<"list"> = ({ children, ordered }, ctx) => {
386389
387390 const reference =
388391 isTopLevel && ordered
389- ? ctx . numbering . create ( )
392+ ? ctx . orderedListId ( )
390393 : ctx . list ?. reference || ORDERED_LIST_REF ;
391394
392395 return ctx . render ( children , {
0 commit comments