Implemented ordered lists

This commit is contained in:
2024-04-03 09:23:52 +02:00
parent 1c7f9f2f7d
commit 463c8b4a85
3 changed files with 40 additions and 5 deletions

View File

@ -17,6 +17,7 @@ type renderer struct {
paragraphLevel int
quoteLevel int
listLevel int
olistLevel int
tableLevel int
codeLines int
tableHeaderWritten bool
@ -200,6 +201,26 @@ func (r *renderer) processLine(line string) {
}
}
pos := 0
for pos < len(line) && line[pos] >= '0' && line[pos] <= '9' {
pos++
if pos < len(line) && (line[pos] == '.' || line[pos] == ')') {
line = strings.TrimSpace(line[pos+1:])
if r.olistLevel == 0 {
r.WriteString("<ol>")
r.olistLevel++
}
r.WriteString("<li>")
r.writeText(line)
r.WriteString("</li>")
return
}
}
if r.paragraphLevel == 0 {
r.WriteString("<p>")
r.paragraphLevel++
@ -233,7 +254,12 @@ func (r *renderer) closeLists() {
r.WriteString("</ul>")
}
for range r.olistLevel {
r.WriteString("</ol>")
}
r.listLevel = 0
r.olistLevel = 0
}
// closeTables closes open tables.