aboutsummaryrefslogtreecommitdiff
path: root/blog_experiment/blog/__init__.py
diff options
context:
space:
mode:
authoralex <alex@pdp7.net>2023-09-17 17:39:54 +0200
committeralex <alex@pdp7.net>2023-09-17 17:39:54 +0200
commite7d04e802ea9fcf4a56210be16aaa0b131e5e797 (patch)
tree071fc39e31a08dd9c91fe5c5ab4d8c05fde3feab /blog_experiment/blog/__init__.py
parente5a7e9667c709c20988158b30b29e5ac019c0fe2 (diff)
Refactor in modules, add gemtext parser
Diffstat (limited to 'blog_experiment/blog/__init__.py')
-rw-r--r--blog_experiment/blog/__init__.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/blog_experiment/blog/__init__.py b/blog_experiment/blog/__init__.py
new file mode 100644
index 00000000..4b1e0ba5
--- /dev/null
+++ b/blog_experiment/blog/__init__.py
@@ -0,0 +1,16 @@
+import pathlib
+import re
+
+import bicephalus
+
+from blog import blog_pages, page
+
+
+def handler(request: bicephalus.Request) -> bicephalus.Response:
+ if request.path == "/":
+ return blog_pages.Root(request).response()
+ if re.match(r"/\d{4}/\d{2}/.*/", request.path):
+ blog_file = pathlib.Path("content") / (request.path[1:-1] + ".gmi")
+ if blog_file.exists():
+ return blog_pages.EntryPage(request, blog_file).response()
+ return page.NotFound(request).response()