aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2016-11-05 00:52:08 +0200
committerLoïc Hoguin <[email protected]>2016-11-05 00:52:43 +0200
commit1364d2a5dd3fdcd3a28fc02751a1479949fa08d6 (patch)
tree431b224d27b004cd97dc14caf341a069688b42ed
parent26b9f935e2abcf9ba79ee78b918a556bc2290190 (diff)
downloadasciideck-1364d2a5dd3fdcd3a28fc02751a1479949fa08d6.tar.gz
asciideck-1364d2a5dd3fdcd3a28fc02751a1479949fa08d6.tar.bz2
asciideck-1364d2a5dd3fdcd3a28fc02751a1479949fa08d6.zip
Fix labeled lists containing unsorted lists
-rw-r--r--src/asciideck_parser.erl6
-rw-r--r--src/asciideck_to_manpage.erl2
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]) ->