Skip to content

Commit 396b6b1

Browse files
authored
fix: don't set prefix for li element outside list (#45)
1 parent 7a10c54 commit 396b6b1

File tree

6 files changed

+25
-13
lines changed

6 files changed

+25
-13
lines changed

testdata/TestCommonmark/list/goldmark.golden

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,3 +184,4 @@ with two lines.</p>
184184
<p>before <em>middle</em> after</p>
185185
</li>
186186
</ul>
187+
<p>Not in a list</p>

testdata/TestCommonmark/list/input.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,4 +163,7 @@ <h3>Title</h3>
163163
<li>before<em>middle</em>after</li>
164164
<li>before<em>middle</em> after</li>
165165
<li>before <em>middle</em>after</li>
166-
</ul>
166+
</ul>
167+
168+
<!--li not in a list-->
169+
<li>Not in a list</li>

testdata/TestCommonmark/list/output.asterisks.golden

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,6 @@
102102
* before _middle_ after
103103
* before _middle_ after
104104
* before _middle_ after
105-
* before _middle_ after
105+
* before _middle_ after
106+
107+
Not in a list

testdata/TestCommonmark/list/output.dash.golden

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,6 @@
102102
- before _middle_ after
103103
- before _middle_ after
104104
- before _middle_ after
105-
- before _middle_ after
105+
- before _middle_ after
106+
107+
Not in a list

testdata/TestCommonmark/list/output.plus.golden

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,4 +102,6 @@
102102
+ before _middle_ after
103103
+ before _middle_ after
104104
+ before _middle_ after
105-
+ before _middle_ after
105+
+ before _middle_ after
106+
107+
Not in a list

utils.go

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -367,17 +367,19 @@ func getListPrefix(opt *Options, s *goquery.Selection) string {
367367
parent := s.Parent()
368368
if parent.Is("ul") {
369369
return opt.BulletListMarker + " "
370-
}
371-
372-
currentIndex := s.Index() + 1
370+
} else if parent.Is("ol") {
371+
currentIndex := s.Index() + 1
373372

374-
lastIndex := parent.Children().Last().Index() + 1
375-
maxLength := len(strconv.Itoa(lastIndex))
373+
lastIndex := parent.Children().Last().Index() + 1
374+
maxLength := len(strconv.Itoa(lastIndex))
376375

377-
// pad the numbers so that all prefix numbers in the list take up the same space
378-
// `%02d.` -> "01. "
379-
format := `%0` + strconv.Itoa(maxLength) + `d. `
380-
return fmt.Sprintf(format, currentIndex)
376+
// pad the numbers so that all prefix numbers in the list take up the same space
377+
// `%02d.` -> "01. "
378+
format := `%0` + strconv.Itoa(maxLength) + `d. `
379+
return fmt.Sprintf(format, currentIndex)
380+
}
381+
// If the HTML is malformed and the list element isn't in a ul or ol, return no prefix
382+
return ""
381383
}
382384

383385
// countListParents counts how much space is reserved for the prefixes at all the parent lists.

0 commit comments

Comments
 (0)