diff options
Diffstat (limited to 'blog/generate_html.py')
-rwxr-xr-x | blog/generate_html.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/blog/generate_html.py b/blog/generate_html.py new file mode 100755 index 0000000..7360fa3 --- /dev/null +++ b/blog/generate_html.py @@ -0,0 +1,59 @@ +#! /usr/bin/python3 + +""" +A script to generate html from the rss feed +""" + +import xml.etree.ElementTree as et + +# Generates a html table for the article +# I use table layout because fuck you +def make_article_table(article_info, article): + return """ + <table border="1" width="60%"> + <tr><td><h2 id=\"{name}\">{title}</h2>--- {date}</td></tr> + <tr><td>{article}</td></tr> + </table> + """.format( + name=article_info["name"], + title=article_info["title"], + date=article_info["pubDate"], + article=article + ) + +def main(): + tree = et.parse("articles.xml") + root = tree.getroot() + + template = "" + + # Open html template + with open("template.html", "r") as fp: + template = fp.read() + + article_html = "" + + # Get articles from rss + for item in root: + article_info = { + "title": item.find("title").text, + "name": item.find("name").text, + "pubDate": item.find("pubDate").text + } + + article = "" + + with open(item.find("file").text, "r") as fp: + article = fp.read() + + # Remove article tags. + article = article[article.find("<article>")+9::] + article = article[:article.find("</article>"):] + article_html += make_article_table(article_info, article) + + # Format the articles into the html + template = template.format(articles=article_html) + print(template) + +if __name__ == "__main__": + main() |