From 1fc83c64825483e36f766f8fc7f927f3ca68afa5 Mon Sep 17 00:00:00 2001 From: alex Date: Sun, 25 Jan 2026 20:38:31 +0100 Subject: Add feed link --- blog_v2/src/blog/__init__.py | 3 +-- blog_v2/src/blog/gemtext.py | 15 ++++++++++++++- 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), -- cgit v1.2.3