aboutsummaryrefslogtreecommitdiff
path: root/document_parser.go
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2022-12-03 14:25:24 +0700
committerShulhan <ms@kilabit.info>2022-12-14 23:46:53 +0700
commit1eaba5aa4c841d15248f7ac0cf629459b491f080 (patch)
tree6a55cbe2698b0ab1388a30a73cb37612e435e208 /document_parser.go
parent5c7bfc04dc3d2cd60e84c80229804fdcd615709e (diff)
downloadasciidoctor-go-1eaba5aa4c841d15248f7ac0cf629459b491f080.tar.xz
all: store the list item counter inside element
In the parseListOrdered, each time we found list item, we store its counter and increment it by one so backend can use it to render the counter.
Diffstat (limited to 'document_parser.go')
-rw-r--r--document_parser.go13
1 files changed, 8 insertions, 5 deletions
diff --git a/document_parser.go b/document_parser.go
index 9e78554..2a29152 100644
--- a/document_parser.go
+++ b/document_parser.go
@@ -948,13 +948,15 @@ func (docp *documentParser) parseListDescription(parent, el *element, line []byt
// On success it will return non-empty line and terminator character.
func (docp *documentParser) parseListOrdered(parent *element, title string, line []byte, term int) (got []byte) {
var (
- logp = `parseListOrdered`
- list = &element{
+ logp = `parseListOrdered`
+ itemNumber = 1
+ list = &element{
kind: elKindListOrdered,
rawTitle: title,
}
listItem = &element{
- kind: elKindListOrderedItem,
+ kind: elKindListOrderedItem,
+ listItemNumber: itemNumber,
}
el *element
@@ -1006,6 +1008,8 @@ func (docp *documentParser) parseListOrdered(parent *element, title string, line
el.parseListOrderedItem(line)
if listItem.level == el.level {
+ itemNumber++
+ el.listItemNumber = itemNumber
list.addChild(el)
listItem = el
line = nil
@@ -1018,8 +1022,7 @@ func (docp *documentParser) parseListOrdered(parent *element, title string, line
// ... Next list
parentListItem = parent
for parentListItem != nil {
- if parentListItem.kind == docp.kind &&
- parentListItem.level == el.level {
+ if parentListItem.kind == docp.kind && parentListItem.level == el.level {
list.postParseList(docp.doc, elKindListOrderedItem)
return line
}