]> xn--ix-yja.es Git - alex.git/commitdiff
Test blog rendering, handle pre and multiline blockquotes
authoralex <alex@pdp7.net>
Sun, 17 Sep 2023 16:25:58 +0000 (18:25 +0200)
committeralex <alex@pdp7.net>
Sun, 17 Sep 2023 16:25:58 +0000 (18:25 +0200)
blog_experiment/blog/blog_pages.py
blog_experiment/test_html_rendering.py [new file with mode: 0644]

index f4124d023365f7a89e6973e9b9a4a762bfe62bb2..02170cb7b46935ca550984cad4c043ec1c08f5db 100644 (file)
@@ -64,8 +64,12 @@ class Entry:
                 continue
 
             if isinstance(gem_element, gemtext.BlockQuote):
-                assert len(gem_element.lines) == 1
-                result.append(h.BLOCKQUOTE(gem_element.lines[0].text))
+                content = []
+                for line in gem_element.lines:
+                    if line.text:
+                        content.append(line.text)
+                    content.append(h.BR)
+                result.append(h.BLOCKQUOTE(*content))
                 i = i + 1
                 continue
 
@@ -82,6 +86,12 @@ class Entry:
                         break
                 result.append(h.P(*paragraph))
                 continue
+
+            if isinstance(gem_element, gemtext.Pre):
+                result.append(h.PRE(gem_element.content))
+                i = i + 1
+                continue
+
             assert False, f"unknown element {gem_element}"
 
         return result
diff --git a/blog_experiment/test_html_rendering.py b/blog_experiment/test_html_rendering.py
new file mode 100644 (file)
index 0000000..71bdd39
--- /dev/null
@@ -0,0 +1,10 @@
+import pathlib
+
+import pytest
+
+from blog import blog_pages
+
+
+@pytest.mark.parametrize("entry", list(pathlib.Path("content").glob("*/*/*.gmi")))
+def test_html_rendering(entry):
+    blog_pages.Entry(entry).html()