aboutsummaryrefslogtreecommitdiff
path: root/aux/emparse
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2021-01-30 09:55:26 +0000
committerJohn Ankarström <john@ankarstrom.se>2021-01-30 09:55:26 +0000
commit4d00aca757265010cae5626c33d186c1cb2c23b8 (patch)
tree56dd8770fc0c7523708bd7c59d06d7cb7a2aa784 /aux/emparse
parent99ac4e7f5a389898673348449e4a522a86d07f1c (diff)
downloadem-4d00aca757265010cae5626c33d186c1cb2c23b8.tar.gz
Fix nested lists
Diffstat (limited to 'aux/emparse')
-rwxr-xr-xaux/emparse15
1 files changed, 12 insertions, 3 deletions
diff --git a/aux/emparse b/aux/emparse
index 929c1c7..5fb9397 100755
--- a/aux/emparse
+++ b/aux/emparse
@@ -144,6 +144,8 @@ function breakblock() {
opendef = 0
openblock = 0
openformat = ""
+ itemlevel = 1
+ delete leveltype
expectblock = 1
}
@@ -158,9 +160,16 @@ function heading(level, line) {
function item(level, type, line) {
if (openitem) printf "</li>"
openitem = 1
- if (level > itemlevel) printf "<%s>\n", type
- if (level < itemlevel) printf "</%s>\n", type
- itemlevel = level
+ if (type != "nl") {
+ for (; itemlevel < level; itemlevel++) {
+ printf "<%s>\n", type
+ leveltype[itemlevel+1] = type
+ }
+ for (; itemlevel > level; itemlevel--) {
+ printf "</%s>\n", leveltype[itemlevel]
+ leveltype[itemlevel] = ""
+ }
+ }
if (type == "ul") {
sub("^ +- ", "")
printf "<li>"