aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--blog_v2/src/blog/__init__.py3
-rw-r--r--blog_v2/src/blog/gemtext.py15
2 files changed, 15 insertions, 3 deletions
diff --git a/blog_v2/src/blog/__init__.py b/blog_v2/src/blog/__init__.py
index 0073160b..80ccb5b7 100644
--- a/blog_v2/src/blog/__init__.py
+++ b/blog_v2/src/blog/__init__.py
@@ -103,8 +103,7 @@ def build(from_: pathlib.Path, to: pathlib.Path):
subject = gmi.read_text().splitlines()[3]
assert subject.startswith("Subject: "), subject
title = subject.removeprefix("Subject: ")
- html.write_text(gemtext.convert(gmi.read_text(), title))
-
+ html.write_text(gemtext.convert(gmi.read_text(), title, ("feed/", TITLE) if gmi.relative_to(to) == pathlib.Path("index.gmi") else None))
# Generate RSS
fg = feed.FeedGenerator()
diff --git a/blog_v2/src/blog/gemtext.py b/blog_v2/src/blog/gemtext.py
index 02986571..3fe293a9 100644
--- a/blog_v2/src/blog/gemtext.py
+++ b/blog_v2/src/blog/gemtext.py
@@ -228,7 +228,7 @@ class Pre:
content: str
-def convert(gemtext, title=None):
+def convert(gemtext, title=None, feed=None):
content = parse(gemtext)
if not title:
title = content[0]
@@ -236,6 +236,18 @@ def convert(gemtext, title=None):
assert title.level == 1
title = title.text
+ if feed:
+ href, title = feed
+ feed = [
+ h.LINK(
+ rel="alternate",
+ type="application/rss+xml",
+ title=title,
+ href=href,
+ ),
+ ]
+ else:
+ feed = []
return pretty.pretty_html(
h.render(
h.HTML(
@@ -260,6 +272,7 @@ def convert(gemtext, title=None):
}
""").lstrip()
),
+ *feed,
),
h.BODY(
*gemini_to_html(content),