From 4d00aca757265010cae5626c33d186c1cb2c23b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Ankarstr=C3=B6m?= Date: Sat, 30 Jan 2021 09:55:26 +0000 Subject: Fix nested lists --- aux/emparse | 15 ++++++++++++--- test.em | 10 +++++----- test.html | 18 ++++++++---------- 3 files changed, 25 insertions(+), 18 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 "" openitem = 1 - if (level > itemlevel) printf "<%s>\n", type - if (level < itemlevel) printf "\n", type - itemlevel = level + if (type != "nl") { + for (; itemlevel < level; itemlevel++) { + printf "<%s>\n", type + leveltype[itemlevel+1] = type + } + for (; itemlevel > level; itemlevel--) { + printf "\n", leveltype[itemlevel] + leveltype[itemlevel] = "" + } + } if (type == "ul") { sub("^ +- ", "") printf "
  • " diff --git a/test.em b/test.em index 830e4bd..4fb6997 100644 --- a/test.em +++ b/test.em @@ -16,11 +16,11 @@ unordered list item. ordered list item. 2. Here is another. - - Here is a list - - With another list inside it [1] - - 1. Here is a mixed nested list - - An unordered item + 1. Here is a list + 1. With another list inside it [1] + - And yet another list + - Inside that list + 2. And now we're back at the first level [1] Reference list item [a] http://example.com diff --git a/test.html b/test.html index b5bafb5..fca431b 100644 --- a/test.html +++ b/test.html @@ -23,19 +23,17 @@ ordered list item.
  • Here is another.
  • -
      -
    1. Here is a mixed nested list +
    2. Here is a list +
      1. +
      2. With another list inside it [1]
        • -
        • An unordered item -
        • +
        • And yet another list +
        • Inside that list +
      +
    3. And now we're back at the first level +
    1. Reference list item -- cgit v1.2.3