   Creates an HTML tag with the given name and options.
 
       iex> tag(:br)
-      {:safe, "<br>"}
+      {:safe, [60, "br", [], 62]}
       iex> tag(:input, type: "text", name: "user_id")
-      {:safe, "<input name=\"user_id\" type=\"text\">"}
+      {:safe, [60, "input", [[32, "name", 61, 34, "user_id", 34], [32, "type", 61, 34, "text", 34]], 62]}
 
   ## Data attributes
 

  in the tag's attributes keyword list:

      iex> tag(:input, [{:data, [foo: "bar"]}, id: "some_id"])
      {:safe, "<input data-foo=\"bar\" id=\"some_id\">"}

  ## Boolean values


    {:safe, [?<, name, build_attrs(name, attrs), ?>, escaped, ?<, ?/, name, ?>]}
  end

  defp tag_attrs([]), do: []
  defp tag_attrs(attrs) do
    for {k, v} <- attrs do
      [?\s, k, ?=, ?", attr_escape(v), ?"]
    end
  end

  defp attr_escape({:safe, data}),
    do: data
  defp attr_escape(nil),
    do: []
  defp attr_escape(other) when is_binary(other),
    do: Plug.HTML.html_escape(other)
  defp attr_escape(other),
