103 lines
4.4 KiB
HTML
103 lines
4.4 KiB
HTML
<!--@exec
|
|
if page.is_dynamic:
|
|
page.title = run_macros(page.title)
|
|
page.summary = run_macros(page.summary)
|
|
@--><?xml version='1.0' encoding='utf-8'?>
|
|
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN'
|
|
'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'>
|
|
<html version='-//W3C//DTD XHTML 1.1//EN'
|
|
xmlns='http://www.w3.org/1999/xhtml'
|
|
xml:lang='<!--@eval page.language@-->'
|
|
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
|
|
xsi:schemaLocation='http://www.w3.org/1999/xhtml
|
|
http://www.w3.org/MarkUp/SCHEMA/xhtml11.xsd'>
|
|
<head>
|
|
<title>metanohi: <!--@eval page.title@--></title>
|
|
<meta name='author' content='Niels Serup' />
|
|
<meta name='description'
|
|
content='This is the personal website of Niels Serup. It hosts
|
|
projects of varying importance.' />
|
|
<meta name='keywords'
|
|
content='programming, hacking, nqpz, portfolio' />
|
|
<meta name='generator' content='http://metanohi.org/projects/mege/' />
|
|
<link rel='stylesheet' type='text/css' href='/static/general.css' />
|
|
<link rel='stylesheet' type='text/css' media='screen, tv, handheld'
|
|
href='/static/screen.css' />
|
|
<!-- <link rel='stylesheet' type='text/css' media='handheld' -->
|
|
<!-- href='/static/handheld.css' /> -->
|
|
<link rel='stylesheet' type='text/css' media='tty'
|
|
href='/static/tty.css' />
|
|
<link rel='stylesheet' type='text/css' media='print'
|
|
href='/static/print.css' />
|
|
<link href='/atom.xml' type='application/atom+xml' rel='alternate'
|
|
title='metanohi atom feed' />
|
|
<link rel='schema.DCTERMS' href='http://purl.org/dc/terms/' />
|
|
<meta name='DCTERMS.title' content=<!--@eval repr(page.title)@--> />
|
|
<meta name='DCTERMS.creator' content='Niels Serup' />
|
|
<!-- <meta name='DCTERMS.format' content='application/xhtml+xml' />-->
|
|
<!--@exec
|
|
if page.summary:
|
|
print("<meta name='DCTERMS.description' content={} />".format(repr(page.summary)))
|
|
if page.created_rfc3339:
|
|
print(" <meta name='DCTERMS.created' content='{}' />".format(page.created_rfc3339))
|
|
if page.modified_rfc3339:
|
|
print(" <meta name='DCTERMS.modified' content='{}' />".format(page.modified_rfc3339))
|
|
@-->
|
|
<meta name='DCTERMS.language' content=<!--@eval repr(page.language)@--> />
|
|
<meta name='DCTERMS.isPartOf' content='http://metanohi.org/' />
|
|
<meta name='DCTERMS.isVersionOf' content=<!--@eval repr(page.core_url)@--> />
|
|
<meta name='DCTERMS.audience' content='software developers' />
|
|
<meta name='DCTERMS.audience' content='hackers' />
|
|
<meta name='DCTERMS.audience' content='individuals' />
|
|
<!--@exec
|
|
if page.licenses:
|
|
for x in filter(lambda x: x.url, page.licenses):
|
|
print("""\
|
|
<link rel='copyright' href='{x.url}' />
|
|
<meta name='DCTERMS.license' content='{x.url}' />\
|
|
""".format(x=x))@-->
|
|
<meta name='robots' content='ALL' />
|
|
<link rel='icon' type='image/png' href='/favicon.png' />
|
|
<!--
|
|
The following JavaScript file contains trivial code. This website requires
|
|
it for aesthetic reasons only. Not loading it will not make this website
|
|
less functional.
|
|
-->
|
|
<script type='text/javascript' src='/static/aesthetics.js'></script>
|
|
<!--
|
|
The following JavaScript file contains misc. code snippets designed to add
|
|
extra features to a website. Not loading it will not make this website stop
|
|
working.
|
|
-->
|
|
<script type='text/javascript' src='/static/extra.js'></script>
|
|
<!--@eval run_macros(page.head)@-->
|
|
</head>
|
|
<body>
|
|
<div><a id='minilogo' href='/'></a></div>
|
|
<div id='menu'>
|
|
<ul id='menulinks'>
|
|
<!--@prexec
|
|
for x in('projects', 'writings', 'about', 'sitemap'):
|
|
print(' ' * 14 + "<li><a href='/{x}/'>{x}</a></li>".format(x=x))@-->
|
|
</ul>
|
|
</div>
|
|
<div id='body'<!--@exec if page.is_fullpage: print(" class='full'", end='')@-->>
|
|
<div id='content'>
|
|
<!--@eval "<div id='toc'><h3>Contents</h3>" + page.toc_html + '</div>' if page.has_toc else ''@-->
|
|
<!--@eval run_macros(page.body)@-->
|
|
<!--@eval "<hr /><div id='footnotes'><h3>Footnotes</h3>" + page.footnotes_html + '</div>' if page.footnotes else ''@-->
|
|
<div id='bodyend'></div>
|
|
<div id='metadata'>
|
|
<!--@eval run_macros(page.metadata_html)@-->
|
|
<!--@exec
|
|
if page.is_dynamic:
|
|
print("<p><a href='{}' rel='nofollow' class='viewsource'>View source</a></p>".format(page.sourcepath), end='')@-->
|
|
</div>
|
|
</div>
|
|
<div id='logo'>
|
|
<a href='/'></a>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|