import datetime import re import xml.etree.ElementTree as et def main(): TIMEFMT: str = "%Y-%m-%dT%H:%M:%SZ" out_xml = et.Element("feed", {"xml:lang": "en"}) title = et.SubElement(out_xml, "title") title.text = "Juniper Beatitudes' Blog" out_xml.append( et.Element( "link", {"href": "https://eyes-like-fire.org/blog/index.html", "rel": "alternate"}, ) ) id_elem = et.SubElement(out_xml, "id") id_elem.text = "https://eyes-like-fire.org/blog/index.html" updated = et.SubElement(out_xml, "updated") updated.text = datetime.datetime.now(tz=datetime.timezone.utc).strftime(TIMEFMT) with open("src/blog.md", "r") as blogfile: REGEX: re.Pattern = re.compile( r"^## ([\w\s]+) \((\d\d\d\d-\d\d-\d\d)\) \{#(.+)\}\n" ) n = 1 for line in blogfile: if match_obj := re.match(REGEX, line): entry = et.SubElement(out_xml, "entry") entry_title = et.SubElement(entry, "title") entry_title.text = match_obj.group(1) entry.append( et.Element( "link", { "href": f"https://eyes-like-fire.org/blog/{n}-{match_obj.group(3)}.html", "rel": "alternate", }, ) ) entry_id = et.SubElement(entry, "id") entry_id.text = ( f"https://eyes-like-fire.org/blog/{n}-{match_obj.group(3)}.html" ) entry_updated = et.SubElement(entry, "updated") entry_updated.text = f"{match_obj.group(2)}T00:00:00Z" print(et.tostring(out_xml, encoding="utf-8").decode("utf-8")) if __name__ == "__main__": main()