Void elements can be compiled with no attrs

This commit is contained in:
Mitchell Hanberg 2021-06-03 23:07:00 -04:00
parent 49ebe8c603
commit 540692f7cd
3 changed files with 27 additions and 4 deletions

View File

@ -17,9 +17,7 @@ defmodule Temple.Parser.NonvoidElementsAliases do
def run({name, _, args}) do
name = Parser.nonvoid_elements_lookup()[name]
{do_and_else, args} =
args
|> Temple.Parser.Utils.split_args()
{do_and_else, args} = Temple.Parser.Utils.split_args(args)
{do_and_else, args} = Temple.Parser.Utils.consolidate_blocks(do_and_else, args)

View File

@ -13,7 +13,14 @@ defmodule Temple.Parser.VoidElementsAliases do
@impl Temple.Parser
def run({name, _, args}) do
{_do_and_else, [args]} = Temple.Parser.Utils.split_args(args)
args =
case Temple.Parser.Utils.split_args(args) do
{_, [args]} when is_list(args) ->
args
{_, args} ->
args
end
name = Temple.Parser.void_elements_lookup()[name]

View File

@ -317,4 +317,22 @@ defmodule TempleTest do
assert result ==
~s{<fieldset<%= Temple.Parser.Utils.runtime_attrs(Foo.foo_bar()) %>><input type="text"></fieldset>}
end
test "hr tag works" do
assigns = %{foo: [class: "foofoo"]}
result =
temple do
div do: "foo"
hr()
div do: "foo"
hr @foo
div do: "bar"
hr class: "foofoo"
div do: "bar"
end
assert evaluate_template(result, assigns) ==
~s{<div>foo</div><hr><div>foo</div><hr class="foofoo"><div>bar</div><hr class="foofoo"><div>bar</div>}
end
end