Skip to content

Commit 2564bb7

Browse files
committed
fix character set problems, add title tags
1 parent 5a9b48b commit 2564bb7

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

make-html.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,19 @@
5454

5555
LINK_REGEX = r'\[.*\]\((.*\.md)\)'
5656

57+
HTML_TEMPLATE = """\
58+
<!DOCTYPE html>
59+
<html>
60+
<head>
61+
<meta charset="UTF-8">
62+
<title>{title}</title>
63+
</head>
64+
<body>
65+
{body}
66+
</body>
67+
</html>
68+
"""
69+
5770

5871
def askyesno(question, default=True):
5972
"""Ask a yes/no question and return True or False.
@@ -89,6 +102,7 @@ class TutorialRenderer(mistune.Renderer):
89102

90103
def __init__(self):
91104
super().__init__()
105+
self.title = None # will be set by header()
92106
self._headercounts = {}
93107

94108
def _get_header_link(self, title):
@@ -125,6 +139,8 @@ def _get_header_link(self, title):
125139
def header(self, text, level, raw):
126140
"""Create a header that is also a link and a # link target."""
127141
# "# raw"
142+
if level == 1:
143+
self.title = text
128144
target = self._get_header_link(raw)
129145
content = super().header(text, level, raw)
130146
return '<a name="{0}" href="#{0}">{1}</a>'.format(target, content)
@@ -201,11 +217,13 @@ def main():
201217
for markdownfile in filelist:
202218
htmlfile = os.path.join('html', fix_filename(markdownfile))
203219
print(' ', markdownfile, '->', htmlfile)
204-
with open(markdownfile, 'r') as f1:
205-
with open(htmlfile, 'w') as f2:
206-
md = f1.read()
207-
html = mistune.markdown(md, renderer=TutorialRenderer())
208-
print(html, file=f2)
220+
with open(markdownfile, 'r') as f:
221+
markdown = f.read()
222+
renderer = TutorialRenderer()
223+
body = mistune.markdown(markdown, renderer=renderer)
224+
html = HTML_TEMPLATE.format(title=renderer.title, body=body)
225+
with open(htmlfile, 'w') as f:
226+
print(html, file=f)
209227

210228
print("Copying other files...")
211229
shutil.copytree('images', os.path.join('html', 'images'))

0 commit comments

Comments
 (0)