diff --git a/lib/slim_fast/compiler.ex b/lib/slim_fast/compiler.ex index 1bcf45c..d8f734b 100644 --- a/lib/slim_fast/compiler.ex +++ b/lib/slim_fast/compiler.ex @@ -11,17 +11,15 @@ defmodule SlimFast.Compiler do defp render_attribute(_, ""), do: "" defp render_attribute(name, value) do value = cond do - is_binary(value) -> - "\"" <> value <> "\"" - is_list(value) -> - "\"" <> Enum.join(value, " ") <> "\"" + is_binary(value) -> value + is_list(value) -> Enum.join(value, " ") is_tuple(value) -> {_, attrs} = value "<%=" <> attrs[:content] <> "%>" true -> to_string(value) end - to_string(name) <> "=" <> value + ~s(#{to_string(name)}="#{value}") end defp render_branch(%{type: :doctype, content: text}), do: text diff --git a/test/compiler_test.exs b/test/compiler_test.exs index 2c80b37..31ca237 100644 --- a/test/compiler_test.exs +++ b/test/compiler_test.exs @@ -12,7 +12,7 @@ defmodule CompilerTest do children: [], content: "Hello World"}]}]}] - expected = "
class=\"class\">

Hello World

" + expected = ~s(

Hello World

) assert Compiler.compile(tree) == expected end diff --git a/test/renderer_test.exs b/test/renderer_test.exs index 635f5ee..1ddddae 100644 --- a/test/renderer_test.exs +++ b/test/renderer_test.exs @@ -193,4 +193,13 @@ defmodule RendererTest do assert render(slim) == "test" end + + test "render attributes specified by variable with spaces in value" do + slim = """ + - style = "display: none" + div style=style + """ + + assert render(slim) == ~s(
) + end end