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);
}