]> git.cworth.org Git - turbot-web/commitdiff
Second attempt at fixing internal links
authorAvram Gottschlich <avram.gottschlich@gmail.com>
Wed, 12 Jan 2022 23:26:39 +0000 (18:26 -0500)
committerAvram Gottschlich <avram.gottschlich@gmail.com>
Wed, 12 Jan 2022 23:26:39 +0000 (18:26 -0500)
html_generator.py

index 7227eae30f754c8ca3914fce6257e2890f85eeb4..28891022c91ded2be0def4cc151f4d54cf028bda 100644 (file)
@@ -30,6 +30,10 @@ def hunt_file(hunt, name):
 
     return "{}/{}/{}".format(WEBROOT, hunt['channel_id'], name)
 
+def internal_link(hunt, name):
+    """Returns a path for a link on this site."""
+    return "{}/{}".format(hunt['channel_id'], name)
+
 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)"""
@@ -181,7 +185,7 @@ def overview(hunt, puzzles, rounds):
         expanding += [
         '  <div id="b{}" class="containerTab {}" style="display:none;">\n'.format(i, status),
         '    <span onclick="this.parentElement.style.display=\'none\'" class="closebtn">x</span>\n',
-        '    <h2>{}</h2>\n'.format(link(hunt_file(hunt, filename_from_name(rnd)) + "_round.html", rnd)),
+        '    <h2>{}</h2>\n'.format(link(internal_link(hunt, filename_from_name(rnd)) + "_round.html", rnd)),
         '    <table class="sortable">\n',
         '      <tr>\n',
         '        <th><u>Puzzle</u></th>\n',
@@ -195,12 +199,12 @@ def overview(hunt, puzzles, rounds):
                 meta = ''
             if puzzle['status'] == 'solved':
                 expanding += ['      <tr class=\'solved\';>\n',
-                '        <td>{}</td>\n'.format(link(hunt_file(hunt, filename_from_name(puzzle['name'])) + ".html", puzzle['name']+meta)),
+                '        <td>{}</td>\n'.format(link(internal_link(hunt, filename_from_name(puzzle['name'])) + ".html", puzzle['name']+meta)),
                 '        <td>{}</td>\n'.format(", ".join(puzzle['solution']).upper()),
                 '      </tr>\n']
             else:
                 expanding += ['      <tr class=\'unsolved\';>\n',
-                '        <td><b>{}</b></td>\n'.format(link(hunt_file(hunt, filename_from_name(puzzle['name'])) + ".html", puzzle['name']+meta)),
+                '        <td><b>{}</b></td>\n'.format(link(internal_link(hunt, filename_from_name(puzzle['name'])) + ".html", puzzle['name']+meta)),
                 '        <td></td>\n',
                 '      </tr>\n']
         expanding.append('    </table>\n')
@@ -235,7 +239,7 @@ def round_overview(hunt, rnd, puzzles):
      '    </head>\n',
      '    <body class="{}">\n'.format(status),
      '        <h1><b>{}</b></h1>\n'.format(rnd),
-     '        <p>{}</p>\n'.format(link(hunt_file(hunt, "index") + ".html", 'Hunt Overview')),
+     '        <p>{}</p>\n'.format(link(internal_link(hunt, "index") + ".html", 'Hunt Overview')),
      '        <div>\n',
      '            <table class="center sortable">\n',
      '                <thead>\n',
@@ -263,7 +267,7 @@ def round_overview(hunt, rnd, puzzles):
              '                        <td>{}</td>\n'.format(elink(slack_url, puzzle['name']+meta)),
              '                        <td>{}</td>\n'.format(elink(puzzle.get('url',''), 'Puzzle')),
              '                        <td>{}</td>\n'.format(elink(puzzle['sheet_url'], 'Sheet')),
-             '                        <td>{}</td>\n'.format(link(hunt_file(hunt, filename_from_name(puzzle['name'])) + ".html", 'Overview')),
+             '                        <td>{}</td>\n'.format(link(internal_link(hunt, filename_from_name(puzzle['name'])) + ".html", 'Overview')),
              '                        <td>{}</td>\n'.format(", ".join(puzzle['solution']).upper()),
             # '                        <td></td>\n',
              '                        <td>{}</td>\n'.format(", ".join(puzzle.get('tags',[]))),
@@ -273,7 +277,7 @@ def round_overview(hunt, rnd, puzzles):
              '                        <td><b>{}</b></td>\n'.format(elink(slack_url, puzzle['name']+meta)),
              '                        <td>{}</td>\n'.format(elink(puzzle.get('url',''), 'Puzzle')),
              '                        <td>{}</td>\n'.format(elink(puzzle['sheet_url'], 'Sheet')),
-             '                        <td>{}</td>\n'.format(link(hunt_file(hunt, filename_from_name(puzzle['name'])) + ".html", 'Overview')),
+             '                        <td>{}</td>\n'.format(link(internal_link(hunt, filename_from_name(puzzle['name'])) + ".html", 'Overview')),
              '                        <td></td>\n',
             # '                        <td></td>\n',
              '                        <td>{}</td>\n'.format(", ".join(puzzle.get('tags',[]))),
@@ -302,7 +306,7 @@ def puzzle_overview(hunt, puzzle):
         meta = ''
     slack_url = channel_url(puzzle['channel_id'])
     if 'rounds' in puzzle:
-        round_url = [link(hunt_file(hunt, filename_from_name(rnd)) + "_round.html", rnd) for rnd in puzzle['rounds']]
+        round_url = [link(internal_link(hunt, filename_from_name(rnd)) + "_round.html", rnd) for rnd in puzzle['rounds']]
     else:
         round_url = ''
     if puzzle['status'] == 'solved':
@@ -318,7 +322,7 @@ def puzzle_overview(hunt, puzzle):
      '    <meta name="viewport" content="width=device-width, initial-scale=1">\n',
      '    <link rel="stylesheet" href="/individual.css">\n',
      '    <title>{}</title>\n'.format(name+meta),
-     '    <p>{}</p>'.format(link(hunt_file(hunt, 'index') + ".html", 'Hunt Overview')),
+     '    <p>{}</p>'.format(link(internal_link(hunt, 'index') + ".html", 'Hunt Overview')),
      '\n',
      '</head>\n',
      '<body class="{}">\n'.format(status),
@@ -374,7 +378,7 @@ def puzzle_lists(hunt, puzzles, filt):
      '    </div>\n'
      '    <body>\n',
      '        <h1><b>{}</b></h1>\n'.format('{} Puzzles').format(filt),
-     '        <p>{}</p>\n'.format(link(hunt_file(hunt, 'index') + ".html", 'Hunt Overview')),
+     '        <p>{}</p>\n'.format(link(internal_link(hunt, 'index') + ".html", 'Hunt Overview')),
      '        <div>\n',
      '            <table class="center sortable">\n',
      '                <thead>\n',
@@ -398,7 +402,7 @@ def puzzle_lists(hunt, puzzles, filt):
             meta = ''
         slack_url = channel_url(puzzle['channel_id'])
         if 'rounds' in puzzle:
-            round_url = link(hunt_file(hunt, filename_from_name(puzzle['rounds'][0])) + "_round.html", puzzle['rounds'][0])
+            round_url = link(internal_link(hunt, filename_from_name(puzzle['rounds'][0])) + "_round.html", puzzle['rounds'][0])
         else:
             round_url = ''
         #assuming one round per puzzle for now
@@ -407,7 +411,7 @@ def puzzle_lists(hunt, puzzles, filt):
          '                        <td>{}</td>\n'.format(elink(slack_url, puzzle['name']+meta)),
          '                        <td>{}</td>\n'.format(elink(puzzle.get('url',''), 'Puzzle')),
          '                        <td>{}</td>\n'.format(elink(puzzle['sheet_url'], 'Sheet')),
-         '                        <td>{}</td>\n'.format(link(hunt_file(hunt, filename_from_name(puzzle['name'])) + ".html", 'Overview')),
+         '                        <td>{}</td>\n'.format(link(internal_link(hunt, filename_from_name(puzzle['name'])) + ".html", 'Overview')),
          '                        <td>{}</td>\n'.format(", ".join(puzzle['solution']).upper()),
          '                        <td>{}</td>\n'.format(round_url),
          '                        <td>{}</td>\n'.format(", ".join(puzzle.get('tags',[]))),
@@ -419,7 +423,7 @@ def puzzle_lists(hunt, puzzles, filt):
             meta = ''
         slack_url = channel_url(puzzle['channel_id'])
         if 'rounds' in puzzle:
-            round_url = link(hunt_file(hunt, filename_from_name(puzzle['rounds'][0])) + "_round.html", puzzle['rounds'][0])
+            round_url = link(internal_link(hunt, filename_from_name(puzzle['rounds'][0])) + "_round.html", puzzle['rounds'][0])
         else:
             round_url = ''
         #assuming one round per puzzle for now
@@ -428,7 +432,7 @@ def puzzle_lists(hunt, puzzles, filt):
          '                        <td>{}</td>\n'.format(elink(slack_url, puzzle['name']+meta)),
          '                        <td>{}</td>\n'.format(elink(puzzle.get('url',''), 'Puzzle')),
          '                        <td>{}</td>\n'.format(elink(puzzle['sheet_url'], 'Sheet')),
-         '                        <td>{}</td>\n'.format(link(hunt_file(hunt, filename_from_name(puzzle['name'])) + ".html", 'Overview')),
+         '                        <td>{}</td>\n'.format(link(internal_link(hunt, filename_from_name(puzzle['name'])) + ".html", 'Overview')),
          '                        <td></td>\n',
          '                        <td>{}</td>\n'.format(round_url),
          '                        <td>{}</td>\n'.format(", ".join(puzzle.get('tags',[]))),