diff options
Diffstat (limited to 'gemini.py')
-rw-r--r-- | gemini.py | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -2,6 +2,7 @@ import io import re import socket import ssl +import string import urllib.parse import fsm @@ -12,16 +13,18 @@ def htmlescape(text: str) -> str: def gem2html(gem: str) -> str: - html = io.StringIO() - html.write('<!DOCTYPE html>\n<html lang="en">\n<html>\n<head>\n<meta charset="utf-8"/>\n<style type="text/css">\n') - html.write(open('style.css', encoding='utf8').read()) - html.write('</style>\n</head>\n<body>\n<div id="root">') - parser = fsm.Parser(gem.split('\n'), html) + template = string.Template(open('page_template.html').read()) + body = io.StringIO() + parser = fsm.Parser(gem.split('\n'), body) parser.parse() - html.write('</div>\n</body>\n</html>') + html = template.substitute( + body=body.getvalue(), + charset='utf-8', + lang='en', + ) with open('latest.html', 'w') as fp: - fp.write(html.getvalue()) - return html.getvalue() + fp.write(html) + return html def urljoin(base: str, url: str) -> str: |