« get me outta code hell

content: transformContent: extract own-line images from <p> - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/content
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2023-07-31 19:05:19 -0300
committer(quasar) nebula <qznebula@protonmail.com>2023-07-31 19:05:19 -0300
commit8706268f46cef5fb46d10cf7f933a6635feab371 (patch)
treeccee5e1b587a351941fb62252f55723005807a60 /src/content
parentc977b07f5360246ca89837824fcbf0bac38d60d3 (diff)
content: transformContent: extract own-line images from <p>
Diffstat (limited to 'src/content')
-rw-r--r--src/content/dependencies/transformContent.js12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/content/dependencies/transformContent.js b/src/content/dependencies/transformContent.js
index 718b7d14..ffc51922 100644
--- a/src/content/dependencies/transformContent.js
+++ b/src/content/dependencies/transformContent.js
@@ -461,7 +461,17 @@ export default {
           // Expand line breaks which are at the end of a quote.
           .replace(/(?<=^>.*)\n+(?!^>)/gm, '\n\n');
 
-      return marked.parse(markedInput, markedOptions);
+      const markedOutput =
+        marked.parse(markedInput, markedOptions)
+          // Images that were all on their own line need to be removed from
+          // the surrounding <p> tag that marked generates. The HTML parser
+          // treats a <div> that starts inside a <p> as a Crocker-class
+          // misgiving, and will treat you very badly if you feed it that.
+          .replace(
+            /^<p>(<a class="[^"]*?image-link.*?<\/a>)<\/p>$/gm,
+            (match, a) => a);
+
+      return markedOutput;
     }
 
     if (slots.mode === 'multiline') {