wordpress-markdown-blog-loader 1.7.0__tar.gz → 1.7.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/PKG-INFO +2 -2
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/README.md +1 -1
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/pyproject.toml +1 -1
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/api.py +2 -2
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/html_to_gutenberg.py +19 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader.egg-info/PKG-INFO +2 -2
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/tests/test_html_to_gutenberg.py +21 -1
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/LICENSE +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/setup.cfg +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/__init__.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/__main__.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/blog.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/check_links.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/download.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/name_to_email.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/new.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/remove_newlines.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader/upload.py +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader.egg-info/SOURCES.txt +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader.egg-info/dependency_links.txt +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader.egg-info/entry_points.txt +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader.egg-info/requires.txt +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/src/wordpress_markdown_blog_loader.egg-info/top_level.txt +0 -0
- {wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/tests/test_blog.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wordpress-markdown-blog-loader
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.3
|
|
4
4
|
Summary: load markdown blogs into wordpress
|
|
5
5
|
Author-email: Mark van Holsteijn <markvanholsteijn@binx.io>
|
|
6
6
|
License: APL2
|
|
@@ -119,7 +119,7 @@ alias wp-md='docker run \
|
|
|
119
119
|
-v $HOME:$HOME \
|
|
120
120
|
-v $HOME/.wordpress.ini:/root/.wordpress.ini \
|
|
121
121
|
-v $PWD:/$PWD \
|
|
122
|
-
-w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.7.
|
|
122
|
+
-w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.7.3
|
|
123
123
|
```'
|
|
124
124
|
Assuming that your WordPress app password is stored in the 1password Private vault under the name `wordpress app password`
|
|
125
125
|
|
|
@@ -68,7 +68,7 @@ alias wp-md='docker run \
|
|
|
68
68
|
-v $HOME:$HOME \
|
|
69
69
|
-v $HOME/.wordpress.ini:/root/.wordpress.ini \
|
|
70
70
|
-v $PWD:/$PWD \
|
|
71
|
-
-w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.7.
|
|
71
|
+
-w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.7.3
|
|
72
72
|
```'
|
|
73
73
|
Assuming that your WordPress app password is stored in the 1password Private vault under the name `wordpress app password`
|
|
74
74
|
|
{wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/pyproject.toml
RENAMED
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "wordpress-markdown-blog-loader"
|
|
7
|
-
version = "1.7.
|
|
7
|
+
version = "1.7.3"
|
|
8
8
|
authors = [{name = "Mark van Holsteijn", email = "markvanholsteijn@binx.io"}]
|
|
9
9
|
license = {text = "APL2"}
|
|
10
10
|
description = "load markdown blogs into wordpress"
|
|
@@ -286,11 +286,11 @@ class PermissionDenied(Exception):
|
|
|
286
286
|
class Wordpress(object):
|
|
287
287
|
def __init__(self, host: Optional[str] = None):
|
|
288
288
|
self.endpoint = WordpressEndpoint.load(host)
|
|
289
|
-
|
|
289
|
+
self.app_version = os.getenv("APP_VERSION", "0.0.0")
|
|
290
290
|
self._media: List[Medium] = {}
|
|
291
291
|
self.headers = {
|
|
292
292
|
"accept": "application/json",
|
|
293
|
-
"User-Agent": "
|
|
293
|
+
"User-Agent": "wordpress-blog-uploader/" + self.app_version
|
|
294
294
|
}
|
|
295
295
|
self.session = requests.Session()
|
|
296
296
|
|
|
@@ -14,6 +14,8 @@ def _wrap_in_gutenberg_comments(element):
|
|
|
14
14
|
return _wrap_list(element)
|
|
15
15
|
if element.name == "img":
|
|
16
16
|
return _wrap_image(element)
|
|
17
|
+
if element.name == "blockquote":
|
|
18
|
+
return _wrap_quote(element)
|
|
17
19
|
return str(element)
|
|
18
20
|
|
|
19
21
|
|
|
@@ -21,6 +23,23 @@ def _wrap_paragraph(element):
|
|
|
21
23
|
return f"<!-- wp:paragraph -->\n{str(element)}\n<!-- /wp:paragraph -->"
|
|
22
24
|
|
|
23
25
|
|
|
26
|
+
def _wrap_quote(element):
|
|
27
|
+
element["class"] = ["wp-block-quote"]
|
|
28
|
+
# Wrap nested elements
|
|
29
|
+
for child in list(element.contents):
|
|
30
|
+
if isinstance(child, (NavigableString, Comment)):
|
|
31
|
+
continue
|
|
32
|
+
|
|
33
|
+
# We need to wrap the child in Gutenberg comments
|
|
34
|
+
# Since _wrap_in_gutenberg_comments returns a string,
|
|
35
|
+
# we replace the child with a NavigableString of that result
|
|
36
|
+
wrapped_child = _wrap_in_gutenberg_comments(child)
|
|
37
|
+
if wrapped_child != str(child):
|
|
38
|
+
child.replace_with(BeautifulSoup(wrapped_child, "html.parser"))
|
|
39
|
+
|
|
40
|
+
return f"<!-- wp:quote -->\n{str(element)}\n<!-- /wp:quote -->"
|
|
41
|
+
|
|
42
|
+
|
|
24
43
|
def _wrap_heading(element):
|
|
25
44
|
element["class"] = ["wp-block-heading"]
|
|
26
45
|
return f"<!-- wp:heading -->\n{str(element)}\n<!-- /wp:heading -->"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wordpress-markdown-blog-loader
|
|
3
|
-
Version: 1.7.
|
|
3
|
+
Version: 1.7.3
|
|
4
4
|
Summary: load markdown blogs into wordpress
|
|
5
5
|
Author-email: Mark van Holsteijn <markvanholsteijn@binx.io>
|
|
6
6
|
License: APL2
|
|
@@ -119,7 +119,7 @@ alias wp-md='docker run \
|
|
|
119
119
|
-v $HOME:$HOME \
|
|
120
120
|
-v $HOME/.wordpress.ini:/root/.wordpress.ini \
|
|
121
121
|
-v $PWD:/$PWD \
|
|
122
|
-
-w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.7.
|
|
122
|
+
-w $PWD ghcr.io/binxio/wordpress-markdown-blog-loader:1.7.3
|
|
123
123
|
```'
|
|
124
124
|
Assuming that your WordPress app password is stored in the 1password Private vault under the name `wordpress app password`
|
|
125
125
|
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import re
|
|
1
2
|
import unittest
|
|
2
3
|
from bs4 import BeautifulSoup, NavigableString, Comment
|
|
3
4
|
|
|
@@ -8,6 +9,7 @@ from wordpress_markdown_blog_loader.html_to_gutenberg import (
|
|
|
8
9
|
_wrap_list,
|
|
9
10
|
_wrap_image,
|
|
10
11
|
_wrap_in_gutenberg_comments,
|
|
12
|
+
_wrap_quote,
|
|
11
13
|
convert,
|
|
12
14
|
)
|
|
13
15
|
|
|
@@ -91,6 +93,25 @@ class TestGutenbergWrapFunctions(unittest.TestCase):
|
|
|
91
93
|
res = _wrap_in_gutenberg_comments(span_elem)
|
|
92
94
|
self.assertEqual(res, "<span>custom</span>")
|
|
93
95
|
|
|
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
|
+
|
|
102
|
+
def test_wrap_quote_nested_elements(self):
|
|
103
|
+
html = "<blockquote><p>Quote line 1</p><p>Quote line 2</p></blockquote>"
|
|
104
|
+
soup = BeautifulSoup(html, "html.parser")
|
|
105
|
+
elem = soup.blockquote
|
|
106
|
+
result = _wrap_quote(elem)
|
|
107
|
+
|
|
108
|
+
# Expected behavior: child paragraphs should be wrapped in Gutenberg comments
|
|
109
|
+
self.assertIn("<!-- wp:paragraph -->", result)
|
|
110
|
+
self.assertIn("<p>Quote line 1</p>", result)
|
|
111
|
+
self.assertIn("<p>Quote line 2</p>", result)
|
|
112
|
+
self.assertTrue(result.startswith("<!-- wp:quote -->"))
|
|
113
|
+
self.assertTrue(result.endswith("<!-- /wp:quote -->"))
|
|
114
|
+
|
|
94
115
|
|
|
95
116
|
import unittest
|
|
96
117
|
|
|
@@ -133,6 +154,5 @@ class TestConvertFunction(unittest.TestCase):
|
|
|
133
154
|
self.assertIn("<!-- wp:heading -->", result)
|
|
134
155
|
self.assertIn("<!-- wp:code -->", result)
|
|
135
156
|
|
|
136
|
-
|
|
137
157
|
if __name__ == "__main__":
|
|
138
158
|
unittest.main()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{wordpress_markdown_blog_loader-1.7.0 → wordpress_markdown_blog_loader-1.7.3}/tests/test_blog.py
RENAMED
|
File without changes
|