@@ -79,12 +79,15 @@ export class Parser {
7979 const startTok = this . _t . peek ( ) as OrderedListToken | UnorderedListToken ;
8080
8181 let node : Unlocated < ListNode > ;
82+ let contentsIndent : number ;
8283 if ( startTok . name === 'ul' ) {
8384 const match = startTok . contents . match ( / ( \s * ) \* / ) ;
8485 node = { name : 'ul' , indent : match ! [ 1 ] . length , contents : [ ] } ;
86+ contentsIndent = match ! [ 0 ] . length ;
8587 } else {
8688 const match = startTok . contents . match ( / ( \s * ) ( [ ^ . ] + ) \. / ) ;
8789 node = { name : 'ol' , indent : match ! [ 1 ] . length , start : Number ( match ! [ 2 ] ) , contents : [ ] } ;
90+ contentsIndent = match ! [ 0 ] . length ;
8891 }
8992
9093 while ( true ) {
@@ -101,15 +104,19 @@ export class Parser {
101104 }
102105
103106 // @ts -ignore typescript is not smart enough to figure out that the types line up
104- node . contents . push ( this . parseListItem ( node . name , node . indent ) ) ;
107+ node . contents . push ( this . parseListItem ( node . name , node . indent , contentsIndent ) ) ;
105108 }
106109
107110 return this . finish ( node ) ;
108111 }
109112
110- parseListItem ( kind : 'ol' , indent : number ) : OrderedListItemNode ;
111- parseListItem ( kind : 'ul' , indent : number ) : UnorderedListItemNode ;
112- parseListItem ( kind : 'ol' | 'ul' , indent : number ) : OrderedListItemNode | UnorderedListItemNode {
113+ parseListItem ( kind : 'ol' , indent : number , contentsIndent : number ) : OrderedListItemNode ;
114+ parseListItem ( kind : 'ul' , indent : number , contentsIndent : number ) : UnorderedListItemNode ;
115+ parseListItem (
116+ kind : 'ol' | 'ul' ,
117+ indent : number ,
118+ contentsIndent : number
119+ ) : OrderedListItemNode | UnorderedListItemNode {
113120 this . pushPos ( ) ;
114121 // consume list token
115122 this . _t . next ( ) ;
@@ -132,7 +139,7 @@ export class Parser {
132139
133140 let name : 'ordered-list-item' | 'unordered-list-item' =
134141 kind === 'ol' ? 'ordered-list-item' : 'unordered-list-item' ;
135- return this . finish ( { name, contents, sublist, attrs } ) ;
142+ return this . finish ( { name, contents, contentsIndent , sublist, attrs } ) ;
136143 }
137144
138145 parseFragment ( opts : ParseFragmentOpts ) : FragmentNode [ ] ;
0 commit comments