]> xn--ix-yja.es Git - alex.git/commitdiff
Make blog work as container
authoralex <alex@pdp7.net>
Sat, 7 Oct 2023 19:53:02 +0000 (21:53 +0200)
committeralex <alex@pdp7.net>
Sat, 7 Oct 2023 19:53:02 +0000 (21:53 +0200)
* Use BeautifulSoup instead of HTML Tidy, so everything is done in Python
* Pull content as submodule for testing purposes
* Comment how to use bicephalus from working copy

.gitmodules
blog_experiment/blog/html.py
blog_experiment/content [new symlink]
blog_experiment/gemini_blog [new submodule]
blog_experiment/poetry.lock
blog_experiment/pyproject.toml

index ed8cbbdd0600189dba28ebb51950a6c0bedc3158..6e6c22cb70383dca18121720961fa300565e2b22 100644 (file)
@@ -10,3 +10,6 @@
 [submodule "personal_infra/talos-check"]
        path = personal_infra/talos-check
        url = https://github.com/alexpdp7/talos-check.git
+[submodule "blog_experiment/gemini_blog"]
+       path = blog_experiment/gemini_blog
+       url = https://github.com/alexpdp7/gemini_blog.git
index a114318a4fd630ae12240da4e946344cb0ad1950..6c3b00993d134dfa3b73edb0e95f1099b79eeef8 100644 (file)
@@ -1,30 +1,17 @@
-import subprocess
-
+import bs4
 import htmlgenerator as h
 
 
-def tidy(s):
-    p = subprocess.run(
-        ["tidy", "--indent", "yes", "-q", "-wrap", "160"],
-        input=s,
-        stdout=subprocess.PIPE,
-        encoding="UTF8",
-    )
-    return p.stdout
-
-
 def html_template(*content):
-    return tidy(
-        h.render(
-            h.HTML(
-                h.HEAD(h.TITLE("El blog es mío")),
-                h.BODY(
-                    h.H1("El blog es mío"),
-                    h.H2("Hay otros como él, pero este es el mío"),
-                    *content,
-                ),
-                doctype="html",
+    return bs4.BeautifulSoup(h.render(
+        h.HTML(
+            h.HEAD(h.TITLE("El blog es mío")),
+            h.BODY(
+                h.H1("El blog es mío"),
+                h.H2("Hay otros como él, pero este es el mío"),
+                *content,
             ),
-            {},
-        )
-    )
+            doctype="html",
+        ),
+        {},
+    ), features="html.parser").prettify()
diff --git a/blog_experiment/content b/blog_experiment/content
new file mode 120000 (symlink)
index 0000000..bffd479
--- /dev/null
@@ -0,0 +1 @@
+gemini_blog/content/
\ No newline at end of file
diff --git a/blog_experiment/gemini_blog b/blog_experiment/gemini_blog
new file mode 160000 (submodule)
index 0000000..4f86ec0
--- /dev/null
@@ -0,0 +1 @@
+Subproject commit 4f86ec0553d659fe3253a92657d85a96734d0048
index 2ae75729adf11641b2fc0e3adbe145ae5111e4db..4e772ef98d199655671eb358a94a886cc7c6ef84 100644 (file)
@@ -197,6 +197,25 @@ files = [
     {file = "backcall-0.2.0.tar.gz", hash = "sha256:5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"},
 ]
 
+[[package]]
+name = "beautifulsoup4"
+version = "4.12.2"
+description = "Screen-scraping library"
+category = "main"
+optional = false
+python-versions = ">=3.6.0"
+files = [
+    {file = "beautifulsoup4-4.12.2-py3-none-any.whl", hash = "sha256:bd2520ca0d9d7d12694a53d44ac482d181b4ec1888909b035a3dbf40d0f57d4a"},
+    {file = "beautifulsoup4-4.12.2.tar.gz", hash = "sha256:492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"},
+]
+
+[package.dependencies]
+soupsieve = ">1.2"
+
+[package.extras]
+html5lib = ["html5lib"]
+lxml = ["lxml"]
+
 [[package]]
 name = "bicephalus"
 version = "0.1.0"
@@ -209,14 +228,14 @@ develop = false
 
 [package.dependencies]
 aiohttp = "^3.8.4"
-opentelemetry-api = "^1.16.0"
-opentelemetry-sdk = "^1.16.0"
+opentelemetry-api = "^1.20.0"
+opentelemetry-sdk = "^1.20.0"
 
 [package.source]
 type = "git"
 url = "https://github.com/alexpdp7/bicephalus.git"
 reference = "HEAD"
-resolved_reference = "58741fca1c5059b56bc835f6956f02ea99d473e4"
+resolved_reference = "ca0c7e85d9f6926a08040fc492a31e5b129defa0"
 
 [[package]]
 name = "charset-normalizer"
@@ -888,6 +907,18 @@ files = [
     {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
 ]
 
+[[package]]
+name = "soupsieve"
+version = "2.5"
+description = "A modern CSS selector implementation for Beautiful Soup."
+category = "main"
+optional = false
+python-versions = ">=3.8"
+files = [
+    {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"},
+    {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"},
+]
+
 [[package]]
 name = "stack-data"
 version = "0.6.3"
@@ -1152,4 +1183,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p
 [metadata]
 lock-version = "2.0"
 python-versions = "^3.9"
-content-hash = "e78aaffdf8f8fffe5f6d42617a7428fe63d85d1e9e3637e0416b958e53a41d23"
+content-hash = "1a68435e418a8fe39b7d6063abbedef2fdf798eb4b23a76908f769de0054c153"
index 554e93f631c91e3c9f355ee3d94e1656cde802f4..d2a7d0e77f60c0d16b21a7cb7965f791808d66ff 100644 (file)
@@ -7,8 +7,10 @@ packages = [{include = "blog"}]
 
 [tool.poetry.dependencies]
 python = "^3.9"
+# bicephalus = { path = "../../bicephalus", develop = true }
 bicephalus = { git = "https://github.com/alexpdp7/bicephalus.git" }
 htmlgenerator = "^1.2.28"
+beautifulsoup4 = "^4.12.2"
 
 [tool.poetry.group.dev.dependencies]
 pytest = "^7.4.2"