Skip to content

Commit d0ad8f7

Browse files
committed
fix: blockquote
1 parent 3707a16 commit d0ad8f7

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

src/wordpress_markdown_blog_loader/html_to_gutenberg.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,19 @@ def _wrap_in_gutenberg_comments(element):
1414
return _wrap_list(element)
1515
if element.name == "img":
1616
return _wrap_image(element)
17+
if element.name == "blockquote":
18+
return _wrap_quote(element)
1719
return str(element)
1820

1921

2022
def _wrap_paragraph(element):
2123
return f"<!-- wp:paragraph -->\n{str(element)}\n<!-- /wp:paragraph -->"
2224

25+
def _wrap_quote(element):
26+
element["class"] = ["wp-block-quote"]
27+
# todo: wrap child elements too.
28+
return f"<!-- wp:quote -->\n{str(element)}\n<!-- /wp:quote -->"
29+
2330

2431
def _wrap_heading(element):
2532
element["class"] = ["wp-block-heading"]

tests/test_html_to_gutenberg.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import re
12
import unittest
23
from bs4 import BeautifulSoup, NavigableString, Comment
34

@@ -8,6 +9,7 @@
89
_wrap_list,
910
_wrap_image,
1011
_wrap_in_gutenberg_comments,
12+
_wrap_quote,
1113
convert,
1214
)
1315

@@ -91,6 +93,12 @@ def test_wrap_in_gutenberg_comments_fallback(self):
9193
res = _wrap_in_gutenberg_comments(span_elem)
9294
self.assertEqual(res, "<span>custom</span>")
9395

96+
def test_wrap_in_gutenberg_quote(self):
97+
soup = BeautifulSoup("<blockquote>quotie quote</blockquote>", "html.parser")
98+
elem = soup.blockquote
99+
result = _wrap_quote(elem)
100+
self.assertEqual(result, '<!-- wp:quote -->\n<blockquote class="wp-block-quote">quotie quote</blockquote>\n<!-- /wp:quote -->')
101+
94102

95103
import unittest
96104

@@ -133,6 +141,5 @@ def test_convert_handles_multiple_elements(self):
133141
self.assertIn("<!-- wp:heading -->", result)
134142
self.assertIn("<!-- wp:code -->", result)
135143

136-
137144
if __name__ == "__main__":
138145
unittest.main()

0 commit comments

Comments
 (0)