From 1bf5e460daf178a4dc80e9a97be75c19df9661d4 Mon Sep 17 00:00:00 2001 From: cbckly <36545870+cbckly@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:37:37 -0400 Subject: [PATCH 1/2] Update OPDS_renderer.php HTML should not be written into the XML stream as they are both tag based languages. Depending on the complexity of the rich text in Calibre that populates the content field, this can stop validation and break some readers. Notable PocketReader on Android which will not process an invalid OPDS. 4.1.3.3. Processing Model 2. If the value of "type" is "html", the content of atom:content MUST NOT contain child elements and SHOULD be suitable for handling as HTML [HTML]. The HTML markup MUST be escaped; for example, "
" as "<br>". The HTML markup SHOULD be such that it could validly appear directly within an HTML
element. Atom Processors that display the content MAY use the markup to aid in displaying it. --- lib/OPDS_renderer.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/OPDS_renderer.php b/lib/OPDS_renderer.php index 893e342f5..4bab364b0 100644 --- a/lib/OPDS_renderer.php +++ b/lib/OPDS_renderer.php @@ -196,12 +196,8 @@ private function renderEntry ($entry) { self::getXmlStream ()->endElement (); self::getXmlStream ()->startElement ("content"); self::getXmlStream ()->writeAttribute ("type", $entry->contentType); - if ($entry->contentType == "text") { - self::getXmlStream ()->text ($entry->content); - } else { - self::getXmlStream ()->writeRaw ($entry->content); - } - self::getXmlStream ()->endElement (); + self::getXmlStream ()->text ($entry->content); + self::getXmlStream ()->endElement (); foreach ($entry->linkArray as $link) { self::renderLink ($link); } From 5924e587a75f94f42444b217a379946a31b2abca Mon Sep 17 00:00:00 2001 From: cbckly <36545870+cbckly@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:42:27 -0400 Subject: [PATCH 2/2] Update OPDS_renderer.php --- lib/OPDS_renderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/OPDS_renderer.php b/lib/OPDS_renderer.php index 4bab364b0..149eba58e 100644 --- a/lib/OPDS_renderer.php +++ b/lib/OPDS_renderer.php @@ -197,7 +197,7 @@ private function renderEntry ($entry) { self::getXmlStream ()->startElement ("content"); self::getXmlStream ()->writeAttribute ("type", $entry->contentType); self::getXmlStream ()->text ($entry->content); - self::getXmlStream ()->endElement (); + self::getXmlStream ()->endElement (); foreach ($entry->linkArray as $link) { self::renderLink ($link); }