From 1364d2a5dd3fdcd3a28fc02751a1479949fa08d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Sat, 5 Nov 2016 00:52:08 +0200 Subject: Fix labeled lists containing unsorted lists --- src/asciideck_parser.erl | 6 ++++-- src/asciideck_to_manpage.erl | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/asciideck_parser.erl b/src/asciideck_parser.erl index 8f4f558..7d81112 100644 --- a/src/asciideck_parser.erl +++ b/src/asciideck_parser.erl @@ -193,6 +193,8 @@ p1_ll_glob(Tail = [{LN, <<>>}|_], Acc) -> {Tail, lists:reverse([{LN, <<>>}|Acc])}; p1_ll_glob([{LN, <<"+">>}|Tail], Acc) -> p1_ll_glob(Tail, [{LN, <<>>}|Acc]); +p1_ll_glob([{LN, <<" ", Line/bits>>}|Tail], Acc) -> + p1_ll_glob([{LN, trim_ws(Line)}|Tail], Acc); p1_ll_glob([Line|Tail], Acc) -> p1_ll_glob(Tail, [Line|Acc]). @@ -296,9 +298,9 @@ format(<< C, Rest/bits >>, LN, St, Acc, BinAcc, _) -> p2([], Acc) -> lists:reverse(Acc); -p2([{label, Label, Item, Ann}|Tail], Acc) -> +p2([{label, Label, Items, Ann}|Tail], Acc) -> %% @todo Handle this like other lists. - p2(Tail, [ll([li(Item, #{label => Label}, Ann)], #{}, Ann)|Acc]); + p2(Tail, [ll([li(p2(Items, []), #{label => Label}, Ann)], #{}, Ann)|Acc]); p2(Tail0=[{uli1, _, UlAnn}|_], Acc) -> {LIs0, Tail} = lists:splitwith(fun({uli1, _, _}) -> true; (_) -> false end, Tail0), LIs = [li(I, LiAnn) || {uli1, I, LiAnn} <- LIs0], diff --git a/src/asciideck_to_manpage.erl b/src/asciideck_to_manpage.erl index 05d8173..bdff90e 100644 --- a/src/asciideck_to_manpage.erl +++ b/src/asciideck_to_manpage.erl @@ -120,6 +120,8 @@ man_ll([{li, #{label := Label}, Item, _LiAnn}|Tail], Acc0) -> ".RE\n"]|Acc0], man_ll(Tail, Acc). +man_ll_item([{ul, _Attrs, Items, _Ann}]) -> + [man_ul(Items, []), "\n"]; man_ll_item([{p, _PAttrs, Text, _PAnn}]) -> [man_format(Text), "\n"]; man_ll_item([{p, _PAttrs, Text, _PAnn}|Tail]) -> -- cgit v1.2.3