This repository has been archived on 2023-08-07. You can view files and clone it, but cannot push or open issues or pull requests.
temple/lib/temple/parsers/temple_namespace_void.ex

32 lines
680 B
Elixir

defmodule Temple.Parser.TempleNamespaceVoid do
@moduledoc false
@behaviour Temple.Parser
alias Temple.Parser
alias Temple.Buffer
@impl Parser
def applicable?({{:., _, [{:__aliases__, _, [:Temple]}, name]}, _meta, _args}) do
name in Parser.void_elements_aliases()
end
def applicable?(_), do: false
@impl Parser
def run({name, _, args}, buffer) do
import Temple.Parser.Private
{:., _, [{:__aliases__, _, [:Temple]}, name]} = name
{_do_and_else, args} =
args
|> split_args()
name = Parser.void_elements_lookup()[name]
Buffer.put(buffer, "<#{name}#{compile_attrs(args)}>")
Buffer.put(buffer, "\n")
:ok
end
end