aboutsummaryrefslogtreecommitdiff
path: root/blog_experiment/blog/__init__.py
diff options
context:
space:
mode:
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()