various parser fixes

This commit is contained in:
byte[] 2019-12-26 10:09:38 -05:00
parent e23cb11b6e
commit a1a1eaeb77

View file

@ -90,7 +90,7 @@ defmodule FastTextile.Parser do
alias Phoenix.HTML alias Phoenix.HTML
def parse(parser, input) do def parse(parser, input) do
with {:ok, tokens, _1, _2, _3, _4} <- Lexer.lex(input), with {:ok, tokens, _1, _2, _3, _4} <- Lexer.lex(String.trim(input)),
{:ok, tree, []} <- textile_top(parser, tokens) {:ok, tree, []} <- textile_top(parser, tokens)
do do
partial_flatten(tree) partial_flatten(tree)
@ -184,6 +184,7 @@ defmodule FastTextile.Parser do
# Text is not escaped here because it will be escaped when it is read into # Text is not escaped here because it will be escaped when it is read into
# the author attribute of the <blockquote>. # the author attribute of the <blockquote>.
defp blockquote_cite_element([{:literal, lit} | r_tokens]), do: {:ok, [{:text, lit}], r_tokens} defp blockquote_cite_element([{:literal, lit} | r_tokens]), do: {:ok, [{:text, lit}], r_tokens}
defp blockquote_cite_element([{:space, _} | r_tokens]), do: {:ok, [{:text, " "}], r_tokens}
defp blockquote_cite_element([tok | r_tokens]) when is_integer(tok) do defp blockquote_cite_element([tok | r_tokens]) when is_integer(tok) do
{rest, r2_tokens} = extract_string(r_tokens, "") {rest, r2_tokens} = extract_string(r_tokens, "")
@ -266,7 +267,7 @@ defmodule FastTextile.Parser do
defp unbracketed_image(parser, [{:unbracketed_image, img} | r_tokens], _state) do defp unbracketed_image(parser, [{:unbracketed_image, img} | r_tokens], _state) do
src = escape(parser.image_transform.(img)) src = escape(parser.image_transform.(img))
{:ok, [{:markup, "<span class=\"imagespoiler\"><img src=\""}, {:markup, src}, {:markup, "\"/></span>"}], r_tokens} {:ok, [{:markup, "<span class=\"imgspoiler\"><img src=\""}, {:markup, src}, {:markup, "\"/></span>"}], r_tokens}
end end
defp unbracketed_image(_parser, _tokens, _state), defp unbracketed_image(_parser, _tokens, _state),
do: {:error, "Expected an unbracketed image"} do: {:error, "Expected an unbracketed image"}