X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fxml_builder.ex;h=33b63a71f3f0c3af377ffe5892e6476d514efd80;hb=4d543fcb759dccc3627be66851789712c189a540;hp=ac1ac8a743db0ff01aca0dcb845d8b06a7ef3f5d;hpb=1c00eb4a90cddb7518a823d9304f6aee4fd3ef78;p=akkoma diff --git a/lib/xml_builder.ex b/lib/xml_builder.ex index ac1ac8a74..33b63a71f 100644 --- a/lib/xml_builder.ex +++ b/lib/xml_builder.ex @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 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