diff options
author | Loïc Hoguin <[email protected]> | 2016-11-26 16:58:49 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2016-11-26 16:58:49 +0100 |
commit | 074e21e93abf0eec59973cc35c9d2755d4a921f9 (patch) | |
tree | e21f277389a4c02bd98febbec20d15f463a5bb4f | |
parent | 6506afbce640d14ea772497839f45322cbdf0531 (diff) | |
download | asciideck-074e21e93abf0eec59973cc35c9d2755d4a921f9.tar.gz asciideck-074e21e93abf0eec59973cc35c9d2755d4a921f9.tar.bz2 asciideck-074e21e93abf0eec59973cc35c9d2755d4a921f9.zip |
Fix an issue in Ranch manual
Solution is a hack for now, unfortunately.
-rw-r--r-- | src/asciideck_parser.erl | 9 | ||||
-rw-r--r-- | test/parser_SUITE.erl | 10 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/asciideck_parser.erl b/src/asciideck_parser.erl index 7d81112..9755d29 100644 --- a/src/asciideck_parser.erl +++ b/src/asciideck_parser.erl @@ -195,8 +195,13 @@ 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]). +p1_ll_glob(Lines=[Line={LN, Text}|Tail], Acc) -> + case binary:split(<< Text/binary, $\s >>, <<":: ">>) of + [_, _] -> + {Lines, lists:reverse([{LN, <<>>}|Acc])}; + _ -> + p1_ll_glob(Tail, [Line|Acc]) + end. p1_text(Lines=[{LN, Line}|Tail], AST, St) -> case binary:split(<< Line/binary, $\s >>, <<":: ">>) of diff --git a/test/parser_SUITE.erl b/test/parser_SUITE.erl index eca21a3..0f7b393 100644 --- a/test/parser_SUITE.erl +++ b/test/parser_SUITE.erl @@ -303,6 +303,16 @@ labeled_list(_) -> [{ll, _, [ {li, #{label := <<"The label">>}, [{p, _, <<"The value!">>, _}], _} ], _}] = parse("The label:: The value!"), + %% @todo Currently this returns two ll. This is a bug but it gives + %% me the result I want, or close enough, for now. + [{ll, _, [ + {li, #{label := <<"The label">>}, [{p, _, <<"The value!">>, _}], _} + ], _}, + {ll, _, [ + {li, #{label := <<"More labels">>}, [{p, _, <<"More values!">>, _}], _} + ], _}] = parse( + "The label:: The value!\n" + "More labels:: More values!\n"), [{ll, _, [ {li, #{label := <<"The label">>}, [{p, _, <<"The value!">>, _}], _} ], _}] = parse( |