Skip to content

Commit 85ef67f

Browse files
committed
we are now static
1 parent 1afe9ad commit 85ef67f

File tree

221 files changed

+101
-104
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

221 files changed

+101
-104
lines changed

readme.md

+3-1

renderers.py

+39-29
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,83 @@
11
# from django_medusa.renderers import StaticSiteRenderer
2-
2+
#
33
# class HomeRenderer(StaticSiteRenderer):
44
# def get_paths(self):
55
# return frozenset([
66
# "/",
7-
# # "work/",
8-
# # "/logbook/",
9-
# # "/linked/",
10-
# # "/about/",
11-
# # "/contact/",
7+
# "work/",
8+
# "/logbook/",
9+
# "/linked/",
10+
# "/archive/",
11+
# "/contact/",
1212
# # "/cv/",
1313
# ])
14-
#
14+
#
1515
# renderers = [HomeRenderer, ]
16-
17-
16+
#
17+
#
1818
# # =todo
1919
# from hth.models import Entry
2020
# from django.contrib.flatpages.models import FlatPage
21-
#
21+
#
2222
# class EntryRenderer(StaticSiteRenderer):
2323
# def get_paths(self):
24-
# paths = ["/", "/logbook/", "/archive/", "/linked/",]
25-
#
26-
# items = Entry.objects.filter(is_active=True).order_by('-pub_date')
24+
# paths = ["/logbook/",]
25+
#
26+
# items = Entry.objects.filter(is_active=True, kind="A").order_by('-pub_date')
2727
# for item in items:
2828
# paths.append(item.get_absolute_url())
29-
#
29+
#
3030
# return paths
31-
#
31+
#
3232
# class WorkRenderer(StaticSiteRenderer):
3333
# def get_paths(self):
3434
# paths = ["/work/", ]
35-
#
35+
#
3636
# items = FlatPage.objects.all()
3737
# for item in items:
3838
# paths.append(item.get_absolute_url())
39-
#
39+
#
4040
# return paths
41-
#
42-
# renderers = [EntryRenderer, WorkRenderer,]
41+
#
42+
# class LinkRenderer(StaticSiteRenderer):
43+
# def get_paths(self):
44+
# paths = ["/linked/", ]
45+
#
46+
# items = Entry.objects.filter(is_active=True, kind="L").order_by('-pub_date')
47+
# for item in items:
48+
# paths.append(item.get_absolute_url())
49+
#
50+
# return paths
51+
#
52+
# renderers = [EntryRenderer, WorkRenderer, LinkRenderer,]
4353

4454
# =todo
4555
# from hth.models import Entry
4656
# from django.contrib.flatpages.models import FlatPage
47-
#
57+
#
4858
# from itertools import chain
49-
#
59+
#
5060
# class EntryRenderer(StaticSiteRenderer):
5161
# def get_paths(self):
5262
# paths = ["/", "/logbook/", "/work/", ]
5363
# entry_list = []
5464
# work_list = []
5565
# result_list = list(chain(entry_list, work_list))
56-
#
66+
#
5767
# entry_list = Entry.objects.filter(is_active=True).order_by('-pub_date')
5868
# for entry in entry_list:
5969
# paths.append(entry.get_absolute_url())
60-
#
70+
#
6171
# work_list = FlatPage.objects.all()
6272
# for work in work_list:
63-
# paths.append(work.get_absolute_url())
64-
#
73+
# paths.append(work.get_absolute_url())
74+
#
6575
# result_list = sorted(
6676
# chain(entry_list, work_list),
6777
# key=lambda instance: instance)
68-
#
78+
#
6979
# return paths
70-
#
80+
#
7181
# renderers = [EntryRenderer, ]
72-
73-
82+
#
83+
#

settings.py

+28-26
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@
104104
'django.contrib.sitemaps', # enabling sitemaps app
105105

106106
# =mozilla =persona authentication
107-
'django_browserid',
107+
# 'django_browserid',
108108

109109
'typogrify',
110110
'markdown',
@@ -118,6 +118,8 @@
118118
'taggit_templatetags2', # https://github.com/fizista/django-taggit-templatetags2
119119

120120
# application server
121+
# start with:
122+
# gunicorn --env DJANGO_SETTINGS_MODULE=hth.settings hth.wsgi
121123
'gunicorn',
122124

123125
# stop spam
@@ -137,7 +139,7 @@
137139
# =mozilla =persona
138140
AUTHENTICATION_BACKENDS = (
139141
'django.contrib.auth.backends.ModelBackend',
140-
'django_browserid.auth.BrowserIDBackend',
142+
# 'django_browserid.auth.BrowserIDBackend',
141143
)
142144

143145
# staticgenerator
@@ -150,7 +152,7 @@
150152
r'^/$',
151153
# r'^/()', # matches any page created?
152154
# (r'^$', 'direct_to_template', {'template': 'base.html'}),
153-
r'^/(logbook|linked|archive|work)',
155+
r'^/(logbook|linked|archive|work|contact)',
154156
r'^/(?P<year>\d+)/(?P<month>\d{2})/$',
155157
r'^/(?P<year>\d+)/$',
156158
# r'^/(archive)',
@@ -161,29 +163,29 @@
161163
# the site admins on every HTTP 500 error when DEBUG=False.
162164
# See http://docs.djangoproject.com/en/dev/topics/logging for
163165
# more details on how to customize your logging configuration.
164-
LOGGING = {
165-
'version': 1,
166-
'disable_existing_loggers': False,
167-
'filters': {
168-
'require_debug_false': {
169-
'()': 'django.utils.log.RequireDebugFalse'
170-
}
171-
},
172-
'handlers': {
173-
'mail_admins': {
174-
'level': 'ERROR',
175-
'filters': ['require_debug_false'],
176-
'class': 'django.utils.log.AdminEmailHandler'
177-
}
178-
},
179-
'loggers': {
180-
'django.request': {
181-
'handlers': ['mail_admins'],
182-
'level': 'ERROR',
183-
'propagate': True,
184-
},
185-
}
186-
}
166+
# LOGGING = {
167+
# 'version': 1,
168+
# 'disable_existing_loggers': False,
169+
# 'filters': {
170+
# 'require_debug_false': {
171+
# '()': 'django.utils.log.RequireDebugFalse'
172+
# }
173+
# },
174+
# 'handlers': {
175+
# 'mail_admins': {
176+
# 'level': 'ERROR',
177+
# 'filters': ['require_debug_false'],
178+
# 'class': 'django.utils.log.AdminEmailHandler'
179+
# }
180+
# },
181+
# 'loggers': {
182+
# 'django.request': {
183+
# 'handlers': ['mail_admins'],
184+
# 'level': 'ERROR',
185+
# 'propagate': True,
186+
# },
187+
# }
188+
# }
187189

188190
# database, secret key, email settings, etc are in settings_local.py
189191
try:

static/css/hypertexthero.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ a.browserid-login {color:#fafafa; border:0;}
209209
body#logbook p#homelink {text-align:center; clear:both;}
210210
body#logbook p#homelink a {margin:0 auto; float:left; clear:both;}
211211
}
212-
@media (max-width: 800px) {
212+
@media (max-width: 860px) {
213213
#page, #latest {width:auto;}
214214
body#logbook #header, body#archive #header {background:none !important;}
215215
#header #logo a {display:block; right:0;}
1.24 KB
Binary file not shown.

static/img/1.jpg

47.5 KB

static/img/10.jpg

72.6 KB

static/img/10t.jpg

4.31 KB

static/img/11.jpg

87.3 KB

static/img/11t.jpg

5.11 KB

static/img/12.jpg

88.1 KB

static/img/12t.jpg

21.5 KB

static/img/13.gif

6.78 KB

static/img/13t.gif

7.47 KB

static/img/14.gif

5.66 KB

static/img/14t.gif

10.4 KB

static/img/15.gif

741 Bytes

static/img/15t.gif

1.3 KB

static/img/16.gif

229 Bytes

static/img/16t.gif

663 Bytes

static/img/17.gif

14 KB

static/img/17t.gif

3.52 KB

static/img/18.gif

7.27 KB

static/img/18t.gif

3.37 KB

static/img/19.jpg

102 KB

static/img/19t.jpg

2.31 KB

static/img/1t.jpg

4.48 KB

static/img/2.jpg

26.5 KB

static/img/20.png

2.08 KB

static/img/20t.png

959 Bytes

static/img/22.png

38.1 KB

static/img/22t.png

4.76 KB

static/img/23.jpg

100 KB

static/img/23t.jpg

2.75 KB

static/img/24.gif

861 Bytes

static/img/24t.gif

1.3 KB

static/img/25.gif

349 Bytes

static/img/25t.gif

1.33 KB

static/img/26.gif

13.7 KB

static/img/26t.gif

1.33 KB

static/img/27.jpg

85.5 KB

static/img/27t.jpg

3.72 KB

static/img/28.png

68.5 KB

static/img/28t.gif

3.09 KB

static/img/28t.png

2.27 KB

static/img/29.png

61.4 KB

static/img/29t.png

3.7 KB

static/img/2t.jpg

2.92 KB

static/img/3.jpg

74.8 KB

static/img/30.png

45.7 KB

static/img/30t.png

4.17 KB

static/img/31.gif

11.6 KB

static/img/31.png

27.3 KB

static/img/31t.gif

5.26 KB

static/img/31t.png

4.8 KB

static/img/32.jpg

127 KB

static/img/32t.jpg

4.4 KB

static/img/33.jpg

80.7 KB

static/img/33t.gif

4.2 KB

static/img/34.gif

46.6 KB

static/img/34t.gif

1.21 KB

static/img/35.png

2.6 KB

static/img/35t.gif

3.33 KB

static/img/35t.png

2.49 KB

static/img/36.png

7.47 KB

static/img/36t.png

2.79 KB

static/img/37.png

1.65 KB

static/img/37t.png

697 Bytes

static/img/38.png

4.71 KB

static/img/38t.png

3.33 KB

static/img/39.jpg

38.2 KB

static/img/39t.jpg

4.94 KB

static/img/3t.jpg

4.98 KB

static/img/4.jpg

56.4 KB

static/img/40.gif

1.4 KB

static/img/40t.gif

894 Bytes

static/img/41.gif

3.62 KB

static/img/41t.gif

917 Bytes

static/img/41t.png

581 Bytes

static/img/42.jpg

160 KB

static/img/42t.jpg

3.62 KB

static/img/42t.png

5.14 KB

static/img/43.jpg

78.1 KB

static/img/43t.jpg

4.67 KB

static/img/43t.png

6.81 KB

static/img/44.jpg

64.1 KB

static/img/44t.jpg

5.41 KB

static/img/45.jpg

85 KB

static/img/45t.gif

7.78 KB

static/img/45t.jpg

7.39 KB

static/img/47.png

34.6 KB

static/img/47t.png

12 KB

static/img/48.jpg

34.3 KB

static/img/48t.jpg

6.46 KB

static/img/49.png

74.7 KB

static/img/49t.png

17.3 KB

static/img/4t.jpg

4.04 KB

static/img/5.jpg

82.7 KB

static/img/50.jpg

168 KB

static/img/50t.jpg

6.63 KB

static/img/51.jpg

134 KB

static/img/51t.jpg

6.63 KB

static/img/52.png

76.2 KB

static/img/52t.png

14.6 KB

static/img/53.png

10.5 KB

static/img/53t.png

6.56 KB

static/img/54.png

208 KB

static/img/54t.png

31.9 KB

static/img/55.jpg

124 KB

static/img/55t.jpg

7.23 KB

static/img/56.png

18.5 KB

static/img/56t.png

13.3 KB

static/img/5t.jpg

5.94 KB

static/img/6.jpg

79.8 KB

static/img/6t.jpg

5.97 KB

static/img/7.jpg

83.8 KB

static/img/7t.jpg

5.96 KB

static/img/8.jpg

79.3 KB

static/img/8t.jpg

5.41 KB

static/img/9.jpg

76.4 KB

static/img/9t.jpg

5.87 KB
82.5 KB

static/img/acotel/acotel.jpg

10.9 KB

static/img/adverts/aosr-elmle.gif

27.2 KB

static/img/adverts/demon-dontslow.gif

5 KB

static/img/adverts/demon-fastlane.gif

6.01 KB
11.6 KB
15.2 KB
27.3 KB
48.2 KB

static/img/chromium-icon.png

15.4 KB

static/img/confronti/confronti.jpg

13.5 KB

static/img/design/banner-cerrado.gif

3.23 KB
784 Bytes

static/img/design/banner.gif

2.71 KB

static/img/design/bg.gif

6.76 KB

static/img/design/bulletplane.gif

143 Bytes

static/img/design/dlogbullet.gif

95 Bytes

static/img/design/knot.gif

526 Bytes

static/img/design/logo.gif

768 Bytes

static/img/design/seaplane.gif

1.2 KB

static/img/earthrise-as08-14-2383.jpg

28.6 KB
67.2 KB
412 KB
101 KB

static/img/elite/elite-bbc.gif

6.89 KB
8.77 KB

static/img/freeman-dyson.jpg

87.8 KB

static/img/hes-dead-jim.jpg

68.9 KB

static/img/illustration/aceaicons.gif

1.4 KB
3.62 KB
53.7 KB

static/img/illustration/phhearth.jpg

17.9 KB

static/img/import/off-to-macworld.jpg

100 KB

static/img/indonesia_amo_2013170.jpg

199 KB

static/img/ippc-agp-spotlight.zip

18.7 MB
Binary file not shown.
67.4 KB
4.66 KB
11.6 KB
93.2 KB
2.85 MB
Binary file not shown.
2.47 KB
2.6 KB
Binary file not shown.

static/img/lynx-hth-post.png

52.2 KB

static/img/mylius/myliusad.gif

12 KB
1.54 KB
55.5 KB
2.08 KB
76 KB
1.03 KB
41.3 KB
1.74 KB
80.2 KB
1.75 KB
75.9 KB
1.35 KB
81.7 KB
34.6 KB

static/img/overlay.png

279 Bytes

static/img/send.gif

436 Bytes

static/img/web/atpm.gif

10.8 KB

static/img/web/cityindex.gif

25.5 KB
17 KB

static/img/web/cropbb-layout.gif

32.8 KB

static/img/web/descriptedlines.gif

23 KB

static/img/web/descriptedlines2.gif

24 KB

static/img/web/ea-layout.gif

68.1 KB

static/img/web/entrepreneur27.gif

7.51 KB

static/img/web/fabriani-layout.jpg

80.7 KB

static/img/web/flatsearch.gif

7.27 KB

static/img/web/generousalphabet.gif

11.5 KB

static/img/web/ilcrepuscolo.jpg

20.8 KB

static/img/web/itworks.jpg

15 KB

static/img/web/otempoeovento.gif

11 KB

static/img/web/pastaclock.gif

4.8 KB

static/img/web/pderuta-layout.jpg

83.4 KB

static/img/web/pidserver.gif

10.9 KB

static/img/web/wls.gif

12 KB

templates/404.html

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
{% load hth_tags %}
66

77
{% block header %}
8-
<p id="homelink"><a href="/" title="Hypertexthero homepage and portfolio.">Home</a></p>
98
<p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero</a> / 404 Not Found</p>
9+
{% include "hth/nav.html" %}
1010
{% endblock header %}
1111

1212
{% block content %}
13-
<h1>404 Not Found</h1>
14-
<p><em>The requested resource was not found.</em></p>
15-
<p>Uh-oh! It seems the page you are looking for could not be reached. Please try the <a href="/" title="Hypertexthero homepage.">homepage</a> or search the <a href="/archive/" title="Logbook archive.">Logbook archive</a>. I do my best to keep <a href="http://www.w3.org/Provider/Style/URI" title="Cool URI&#39;s don&#39;t change.">keep things organized here</a>, so please <a href="/contact/" title="Get in touch!">let me know</a> if you think there is a problem. <br><br>Cheers,<br> Simon</p>
13+
<h1>Uh-oh!</h1>
14+
<p>It seems the page you are looking for could not be found. Please try the <a href="/" title="Hypertexthero homepage.">homepage</a> or search the <a href="/archive/" title="Logbook archive.">Logbook archive</a>. I do my best to keep <a href="http://www.w3.org/Provider/Style/URI" title="Cool URI&#39;s don&#39;t change.">keep things organized here</a>, so please <a href="/contact/" title="Get in touch!">let me know</a> if you think there is a problem. <br><br>Cheers,<br> Simon</p>
1615
{% endblock %}
1716

1817
{% block footer %}

templates/contact_form/contact_form.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
{% endblock header %}
99

1010
{% block content %}
11-
<h1 style="margin:0 0 1em 0;" class="normal">Contact Hypertexthero</h1>
11+
<h1 style="margin:0 0 0.5em 0;" class="normal">Hello there!</h1>
1212

1313
{% include "contact_form/address.html" %}
1414

templates/flatpages/work.html

+2-9
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
{% block content %}
1313

14-
<h1 class="normal" style="margin-bottom:0.25em;">Projects</h1>
14+
<h1 class="normal" style="margin-bottom:0.5em;">Projects</h1>
1515

1616
{# https://docs.djangoproject.com/en/dev/ref/contrib/flatpages/ #}
1717
{% load flatpages %}
@@ -26,12 +26,5 @@ <h1 class="normal" style="margin-bottom:0.25em;">Projects</h1>
2626
{% endblock %}
2727

2828
{% block footer %}
29-
{{ block.super }}
30-
<div id="address" style="display:none;">
31-
<strong>Email:</strong> <a href="mailto:[email protected]" rel="me">[email protected]</a>
32-
<br>
33-
<strong>Twitter:</strong> <a href="https://twitter.com/simongriffee" rel="me">simongriffee</a>
34-
<br>
35-
<strong>Github:</strong> <a href="https://github.com/hypertexthero" rel="me">hypertexthero</a>
36-
</div>
29+
3730
{% endblock footer %}

templates/home.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
{% load hth_tags %}
77

88
{% block header %}
9-
{% include "hth/nav.html" %}
9+
{% include "hth/nav.html" %}
1010
<h1 id="introduction">
1111
<b>Hypertexthero</b> aligns things so they <a href="/work/" title="Work examples.">look and work</a> well enough to be useful.
1212
</h1>

templates/hth/archive.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
{% block header %}
77
{% include "hth/nav.html" %}
8-
<p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero</a> / Logbook Archive</p>
8+
<p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero</a> / <a href="/logbook/">Logbook</a> / Archive</p>
99
{% endblock header %}
1010

1111
{% block content %}

templates/hth/archive_month.html

+2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ <h1 style="margin-bottom:1em;">Articles Published {{ month|date:"F Y" }}</h1>
1414
<p>
1515
<a href="{{ object.get_absolute_url }}">{{ object.title }}</a> <span class="small quiet extrapad" title="Permanent link to {{ object.title }}" href="{{ object.get_linked_list_url }}">{{ object.pub_date|date:"j M Y" }}</span>
1616
</p>
17+
{% empty %}
18+
<p>It does not look like anything was published during this period.</p>
1719
{% endfor %}
1820

1921
{% endblock %}

templates/hth/archive_year.html

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ <h2 class="dateline datelinearchive">{{ object.pub_date|date:"F Y" }}</h2>
1616
<p>
1717
<a href="{{ object.get_absolute_url }}">{{ object.title }}</a> <span class="small quiet extrapad" title="Permanent link to {{ object.title }}" href="{{ object.get_linked_list_url }}">{{ object.pub_date|date:"j M Y" }}</span>
1818
</p>
19+
{% empty %}
20+
<p>It does not look like anything was published during this period.</p>
1921
{% endfor %}
2022

2123
{% endblock %}

templates/hth/entry_detail.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
{% block header %}
1717
{% include "hth/nav.html" %}
18-
<p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero Logbook</a> /</p>
18+
<p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero</a> / <a href="/logbook/">Logbook</a> /</p>
1919
{% endblock header %}
2020

2121
{% block content %}

templates/hth/linked.html

+6-10
Original file line numberDiff line numberDiff line change
@@ -5,28 +5,24 @@
55
{% block bodyclass %}linked{% endblock %}
66

77
{% block header %}
8-
<p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero Logbook</a> /</p>
8+
{% include "hth/nav.html" %}
9+
<p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero</a> / <a href="/logbook/">Logbook</a> / Linked List</p>
910
{% endblock header %}
1011

11-
1212
{% block content %}
1313

14-
<form id="search" action="/search/" method="get">
15-
<label for="q" style="display:none;">Search:</label>
16-
<input name="q" value="" size="22" type="text">
17-
<input value="Search" class="button" type="submit">
18-
</form>
19-
14+
{% include "hth/search_form.html" %}
2015

2116
<h1 style="margin:2.75em 0 0;">The Hypertexthero Linked List</h1>
17+
<p><small><a href="#linkedarchive">Linked List Archive</a></small></p>
2218
{% load hth_tags %}
2319
{% latest_linked_list_entries %}
2420

2521
<h2 id="about">About the Linked List</h2>
2622

2723
<p>The Hypertexthero Linked List is a list of links to other places on the internet that Hypertexthero finds interesting.</p>
2824

29-
<h2 id="archive">Linked List Archive</h2>
25+
<h2 id="linkedarchive">Linked List Archive</h2>
3026

3127
{% load hth_tags %}
3228

@@ -37,7 +33,7 @@ <h2 id="archive">Linked List Archive</h2>
3733
{% regroup year.list by pub_date|date:"m" as month_list %}
3834

3935
{% for month in month_list %}
40-
<li><a href="/linked/{{year.grouper}}/{{month.grouper}}">{{ month.grouper|month_number_to_name }} {{ year.grouper }}</a></li>
36+
<li><a href="/linked/{{year.grouper}}/{{month.grouper}}/">{{ month.grouper|month_number_to_name }} {{ year.grouper }}</a></li>
4137
{% endfor %}
4238
{% endfor %}
4339
</ul>

templates/hth/linked_archive.html

+4-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
{% block bodyid %}archive{% endblock bodyid %}
66

77
{% block header %}
8-
<p class="breadcrumbs" style="top:10px;"><a href="/" title="Hypertexthero homepage.">Hypertexthero Logbook</a> / <a href="/linked/" title="Linked List.">Linked List</a> / {{ month|date:"F Y" }}</p>
8+
<p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero</a> / <a href="/logbook/">Logbook</a> / <a href="/linked/" title="Linked List.">Linked List</a> / {{ month|date:"F Y" }}</p>
9+
{% include "hth/nav.html" %}
910
{% endblock header %}
1011

1112
{% block content %}
@@ -21,6 +22,8 @@ <h2 class="dateline">{{ object.pub_date|date:"l, d F Y" }}</h2>
2122
{{ object.body_html|safe }}
2223
</dd>
2324
</dl>
25+
{% empty %}
26+
<p>It does not look like anything was published during this period.</p>
2427
{% endfor %}
2528

2629
{% endblock %}

templates/hth/logbook.html

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
{% block keywords %}Web, Design, Simplicity{% endblock %}
66

77
{% block header %}
8+
{# <p class="breadcrumbs"><a href="/" title="Hypertexthero homepage.">Hypertexthero</a> / Logbook /</p> #}
89
{% include "hth/nav.html" %}
910
{% endblock header %}
1011

0 commit comments

Comments
 (0)