X-Git-Url: https://git.cworth.org/git?p=turbot-web;a=blobdiff_plain;f=html_generator.py;fp=html_generator.py;h=c16f033552cb80094befa995b04645fa1d612ba6;hp=b944391ed2cd15745f57b1c29ac563d889b2893e;hb=d443dffc599f0f858068bd22dcf289fcbe4d64f3;hpb=88cc255b97357ff671194816186c88b6b42eaccf
diff --git a/html_generator.py b/html_generator.py
index b944391..c16f033 100644
--- a/html_generator.py
+++ b/html_generator.py
@@ -21,6 +21,11 @@ import re
website = "https://halibut.cworth.org/"
#change this if we're using AWS or some other subdomain instead
+def filename_from_name(name):
+ """Returns a string derived from name, but with all spaces and slashes
+ replaced with underscores, (for making a clean filename)"""
+ return re.sub(r'[ /]', '_', name)
+
def channel_url(channel_id):
"""Given a channel ID, return the URL for that channel."""
@@ -167,7 +172,7 @@ def overview(puzzles, rounds):
expanding += [
'
\n'.format(i, status),
'
x\n',
- '
{}
\n'.format(link(website + "_".join(rnd.split()) + "_round.html", rnd)),
+ '
{}
\n'.format(link(website + filename_from_name(rnd) + "_round.html", rnd)),
'
\n',
' \n',
' Puzzle | \n',
@@ -181,12 +186,12 @@ def overview(puzzles, rounds):
meta = ''
if puzzle['status'] == 'solved':
expanding += ['
\n',
- ' {} | \n'.format(link(website + "_".join(puzzle['name'].split()) + ".html", puzzle['name']+meta)),
+ ' {} | \n'.format(link(website + filename_from_name(puzzle['name']) + ".html", puzzle['name']+meta)),
' {} | \n'.format(puzzle['solution']),
'
\n']
else:
expanding += [' \n',
- ' {} | \n'.format(link(website + "_".join(puzzle['name'].split()) + ".html", puzzle['name']+meta)),
+ ' {} | \n'.format(link(website + filename_from_name(puzzle['name']) + ".html", puzzle['name']+meta)),
' | \n',
'
\n']
expanding.append('
\n')
@@ -248,7 +253,7 @@ def round_overview(rnd, puzzles):
'
{} | \n'.format(elink(slack_url, puzzle['name']+meta)),
'
{} | \n'.format(elink(puzzle.get('url',''), 'Puzzle')),
'
{} | \n'.format(elink(puzzle['sheet_url'], 'Sheet')),
- '
{} | \n'.format(link(website + "_".join(puzzle['name'].split()) + '.html', 'Overview')),
+ '
{} | \n'.format(link(website + filename_from_name(puzzle['name']) + '.html', 'Overview')),
'
{} | \n'.format(puzzle['solution']),
# '
| \n',
'
{} | \n'.format("".join(puzzle.get('tags',[]))),
@@ -258,7 +263,7 @@ def round_overview(rnd, puzzles):
'
{} | \n'.format(elink(slack_url, puzzle['name']+meta)),
'
{} | \n'.format(elink(puzzle.get('url',''), 'Puzzle')),
'
{} | \n'.format(elink(puzzle['sheet_url'], 'Sheet')),
- '
{} | \n'.format(link(website + "_".join(puzzle['name'].split()) + '.html', 'Overview')),
+ '
{} | \n'.format(link(website + filename_from_name(puzzle['name']) + '.html', 'Overview')),
'
| \n',
# '
| \n',
'
{} | \n'.format(" ".join(puzzle.get('tags',[]))),
@@ -269,7 +274,7 @@ def round_overview(rnd, puzzles):
'