diff options
| author | alex <alex@pdp7.net> | 2026-02-15 11:07:25 +0100 |
|---|---|---|
| committer | alex <alex@pdp7.net> | 2026-02-15 11:07:25 +0100 |
| commit | e07dd0d3c0804a317ed030115b4ca8dd41a5e432 (patch) | |
| tree | b9113097c3e5f2397c2b5a3a8b6ec278239e4c15 /gemini-to-web/src/gemini_to_web/html.py | |
| parent | 2c373bc1c2249eb44b153fc0805588e40dfa0d2e (diff) | |
Add RSS links to HTML
Diffstat (limited to 'gemini-to-web/src/gemini_to_web/html.py')
| -rw-r--r-- | gemini-to-web/src/gemini_to_web/html.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/gemini-to-web/src/gemini_to_web/html.py b/gemini-to-web/src/gemini_to_web/html.py index 9594155..ec2a640 100644 --- a/gemini-to-web/src/gemini_to_web/html.py +++ b/gemini-to-web/src/gemini_to_web/html.py @@ -12,7 +12,7 @@ def first_header_title_extractor(parsed: list[parser.GemElement]): return heading_lines[0].heading_text -def to_html(parsed: list[parser.GemElement], title_extractor=first_header_title_extractor): +def to_html(parsed: list[parser.GemElement], title_extractor=first_header_title_extractor, extra_head=None): body = [] building_element = None building_content = None @@ -27,6 +27,9 @@ def to_html(parsed: list[parser.GemElement], title_extractor=first_header_title_ if title_extractor: head.append(htmlgenerator.TITLE(title_extractor(parsed))) + if extra_head: + head += extra_head + for item in parsed: match item: case parser.HeadingLine(level, heading_text): @@ -96,11 +99,24 @@ def pretty(s): def cli_to_html(): + import argparse import sys + + argument_parser = argparse.ArgumentParser() + argument_parser.add_argument("--feed-title") + argument_parser.add_argument("--feed-href") + args = argument_parser.parse_args() + + assert not bool(args.feed_title) ^ bool(args.feed_href), "--feed-title and --feed-href must be both present or both absent" + + extra_head = [] + if args.feed_href: + extra_head.append(htmlgenerator.LINK(rel="alternate", type="application/rss+xml", title=args.feed_title, href=args.feed_href)) + input_ = sys.stdin.read() gemtext = parser.parse(input_) gemtext = list(gemtext) - html = to_html(gemtext) + html = to_html(gemtext, extra_head=extra_head) rendered = htmlgenerator.render(html, {}) rendered = pretty(rendered) print(rendered) |
