adds the first header as a title to blog posts

This commit is contained in:
waldek 2023-03-06 10:18:13 +11:00
parent 1942a2bcc7
commit 77ea6079de
1 changed files with 13 additions and 2 deletions

View File

@ -1,6 +1,7 @@
import typing
import os
import pathlib
import datetime
import urllib
import md2gemini
from .static import StaticDirectoryApplication
@ -141,8 +142,18 @@ class StaticMarkdownDirectoryApplication(StaticDirectoryApplication):
buffer += f"=>/{encoded_path}/\t{file.name}/\r\n".encode()
else:
if file.stem.isdigit():
tz = pytz.timezone("Europe/Brussels")
label = datetime.datetime.fromtimestamp(int(file.stem), tz=tz)
# this is a blogpost, let's make a decent label
date = datetime.datetime.fromtimestamp(int(file.stem))
with file.open("r") as fp:
while True:
data = fp.readline()
if data.startswith("#"):
title = data.replace("#", "").strip()
break
if not data:
title = "Untitled"
break
label = "{}: {}".format(date, title)
else:
label = f"{file.name}"
buffer += f"=>/{encoded_path}\t{label}\r\n".encode()