X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fxml_builder.ex;h=ceeef2755ec57688c63809bab55546a0107fd1bd;hb=e02eb8de3ec8130e9808c6a54a5c78f7ec8feb23;hp=ac1ac8a743db0ff01aca0dcb845d8b06a7ef3f5d;hpb=ce6cc84a4a9bfe1d47d00201ab31c241878f0ab9;p=akkoma diff --git a/lib/xml_builder.ex b/lib/xml_builder.ex index ac1ac8a74..ceeef2755 100644 --- a/lib/xml_builder.ex +++ b/lib/xml_builder.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2019 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.XmlBuilder do def to_xml({tag, attributes, content}) do open_tag = make_open_tag(tag, attributes) @@ -23,20 +27,23 @@ defmodule Pleroma.XmlBuilder do for element <- content do to_xml(element) end - |> Enum.join + |> Enum.join() end def to_xml(%NaiveDateTime{} = time) do NaiveDateTime.to_iso8601(time) end - def to_doc(content), do: "" <> to_xml(content) + def to_doc(content), do: ~s() <> to_xml(content) defp make_open_tag(tag, attributes) do - attributes_string = for {attribute, value} <- attributes do - "#{attribute}=\"#{value}\"" - end |> Enum.join(" ") - - Enum.join([tag, attributes_string], " ") |> String.strip + attributes_string = + for {attribute, value} <- attributes do + value = String.replace(value, "\"", """) + "#{attribute}=\"#{value}\"" + end + |> Enum.join(" ") + + [tag, attributes_string] |> Enum.join(" ") |> String.trim() end end