--- /dev/null
+# Makefile -- helper for the site
+#
+# Copyright (c) martin f. krafft <madduck ä debian.org>
+# Released under the terms of the Artistic Licence 2.0
+#
+# Part of the source code for the site http://people.debian.org/~madduck/
+#
+# svn: http://svn.madduck.net/pub/debian/web/people.debian.org--madduck/
+#
+
+all: html/__prune__ html/css html/js html/img html/gpg html/graphs
+ r2w -w
+.PHONY: all
+
+all-upstream: UPSTREAM = $(HOME)/debian/pkg/rest2web/upstream.trunk
+all-upstream: html/__prune__ html/css html/img
+ PYTHONPATH=$(UPSTREAM) python $(UPSTREAM)/r2w.py -w
+.PHONY: all-upstream
+
+dist: TARGETHOST = people.debian.org
+dist: TARGETDIR = public_html
+dist: all
+ LC_ALL=C rsync -r --exclude talks/ --exclude .\*.swp --delete html/ $(TARGETHOST):$(TARGETDIR)
+ LC_ALL=C ssh $(TARGETHOST) chmod -R og+rX $(TARGETDIR)
+
+html:
+ mkdir $@
+
+html/__prune__: html
+ touch $@
+
+html/css html/img html/gpg html/graphs html/js: html
+ tar -cf- --exclude=.svn $(@F) | tar -xf- -C $(@D)
+.PHONY: html/css html/img html/gpg html/graphs html/js
+
+clean:
+ rm -rf html
+.PHONY: clean
--- /dev/null
+restindex
+ encoding: utf8
+ template-encoding: utf8
+ crumb: Credits
+/restindex
+
+.. credits.txt -- site credits
+
+ Copyright © martin f. krafft <madduck ät debian.org>
+ Released under the terms of the Creative Commons Attribution-
+ NonCommercial-ShareAlike 2.5 Licence:
+ http://creativecommons.org/licenses/by-nc-sa/2.5/
+
+ Part of the source code for the site http://people.debian.org/~madduck/
+
+ svn: http://svn.madduck.net/pub/debian/web/people.debian.org--madduck/
+
+Site credits
+============
+
+This site was built with a number of open-source software products. I feel it
+is important to give enough credit to the involved people, who spend their
+free time developing and supporting these software suites.
+
+Open-source software has numerous advantages over proprietary, commercial
+products:
+
+- It is developed by users of the software, not people trying to make money by
+ selling it. As a direct consequence, it doesn't suffer from the marketing
+ syndrome, and it provides the features that users need, not those which the
+ company wants to sell.
+
+- The source code is available to everyone. Not only does this mean that
+ anyone can modify the product to better suit their needs, it also greatly
+ facilitates problem-solving, since one can inspect the source of any
+ problem.
+
+- Open-source software has a large community using and supporting it. Direct
+ help from the developers is absolutely no rarity, and if they are not
+ available, then numerous (experienced) users are ready to help one, and to
+ work with one to solve any problems.
+
+- And last, but very much not least: Open-source software is free. No
+ complicated and capitalistic licensing models, no "software assurance" or
+ similarly flawed license subscriptions, no problems with upgrades, and a lot
+ more money left for other things.
+
+As said, this site was created with a number of open-source software suites.
+In particular, I would like to thank:
+
+- The `Debian`_ team for the operating system (who would have thought?). Debian
+ is copyright © by `Software in the Public Interest`_.
+
+.. _Debian: http://debian.org
+.. _Software in the Public Interest: http://spi-inc.org
+
+- The `Python`_ team for the programming language. Python is copyright ©
+ by the `Python Software Foundation`_
+
+.. _Python: http://python.org
+.. _Python Software Foundation: http://python.org/psf
+
+- Michael Foord for `rest2web`_, the site builder framework. rest2web is ©
+ by `Voidspace`_.
+
+.. _rest2web: http://www.voidspace.org.uk/python/rest2web/
+.. _Voidspace: http://www.voidspace.org.uk/
+
+- The `Apache`_ team for the web server. Apache is copyright © by the `Apache
+ Software Foundation`_.
+
+.. _Apache: http://httpd.apache.org
+.. _Apache Software Foundation: http://apache.org/foundation/
--- /dev/null
+/* base.css -- basic CSS definitions
+ *
+ * Copyright (c) martin f. krafft <madduck ät debian.org>
+ * Released under the terms of the Creative Commons Attribution-
+ * NonCommercial-ShareAlike 2.5 Licence:
+ * http://creativecommons.org/licenses/by-nc-sa/2.5/
+ *
+ * Part of the source code for the site http://people.debian.org/~madduck/
+ *
+ * svn: http://svn.madduck.net/pub/debian/web/people.debian.org--madduck/
+ */
+
+body {
+ background: #f3f2f0 url(http://people.debian.org/~madduck/img/bg.jpg) 0 0 no-repeat fixed;
+ color: #006;
+ font-family: RotisSansSerif, "Bitstream Vera Sans", Helvetica, Arial, sans-serif;
+ margin: 1em auto;
+ width: 36em;
+}
+
+#header {
+ background-color: #006;
+ color: white;
+ padding: 0.5em 1em;
+ border: 5px double #f3f2f0;
+ margin: 0 -1em;
+}
+
+#header p {
+ margin: 0;
+ font-family: RotisSemiSerif, "Bitstream Vera Serif", "Times New Roman", Times, serif;
+ text-align: center;
+}
+
+#header .title {
+ font-size: 150%;
+}
+
+#content p {
+ text-align: justify;
+}
+
+#bottom {
+ margin-top: 4em;
+ border-width: 3px;
+ border-color: #f3f2f0;
+ border-style: groove;
+ color: #aad;
+ background-color: transparent;
+}
+
+#bottom a:link, #bottom a:visited {
+ color: #aad;
+ background-color: transparent;
+}
+
+#bottom:hover, #bottom:focus {
+ color: #006;
+ background-color: transparent;
+}
+
+#bottom:hover a:link, #bottom:hover a:visited,
+#bottom:focus a:link, #bottom:focus a:visited {
+ color: #33c;
+ background-color: transparent;
+}
+
+#bottom:hover a:active, #bottom:hover a:hover, #bottom:hover a:focus,
+#bottom:focus a:active, #bottom:focus a:hover, #bottom:focus a:focus {
+ color: #66f;
+ background-color: transparent;
+}
+
+#bottom .border {
+ height: 0px;
+ border-top: 3px ridge #006;
+}
+
+#bottom p {
+ font-size: 70%;
+ padding: 0 0.5em;
+}
+
+img {
+ border-style: none;
+}
+
+img.floatright {
+ margin: 1em 0 1em 2em;
+ float: right;
+}
+
+img.floatleft {
+ margin: 1em 2em 1em 0;
+ float: left;
+}
+
+a, a:visited {
+ color: #33c;
+ background-color: transparent;
+ text-decoration: none;
+}
+
+a:hover, a:focus, a:active {
+ color: #66f;
+ background-color: transparent;
+ text-decoration: underline;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ font-family: RotisSemiSerif, "Bitstream Vera Serif", "Times New Roman", Times, serif;
+ color: #33c;
+ background-color: transparent;
+}
+
+h1 a:hover, a:focus, a:active,
+h2 a:hover, a:focus, a:active,
+h3 a:hover, a:focus, a:active,
+h4 a:hover, a:focus, a:active,
+h5 a:hover, a:focus, a:active,
+h6 a:hover, a:focus, a:active {
+ text-decoration: none;
+ color: #33c;
+ background-color: transparent;
+}
+
+h1 {
+ border-bottom: 1px solid #006;
+}
+
+code {
+ margin-left: 1em;
+ display: block;
+}
+
+.textmode {
+ display: none;
+}
+
+* html body {
+ /* make font smaller in IE */
+ font-size: 80%;
+}
+
+.ie-note {
+ /* display in IE only */
+ display: block;
+ padding: 1em 2em;
+ margin: 1em;
+ border: 3px dotted #900;
+ font-size: smaller;
+ color: #366;
+ background-color: transparent;
+ text-align: justify;
+}
+
+.ie-note a {
+ color: #900;
+ background-color: transparent;
+}
--- /dev/null
+RedirectMatch /.*/gpg(/.*) http://alioth.debian.org/~madduck/gpg$1
--- /dev/null
+RedirectMatch /.*organigram(/.*) http://git.madduck.net/v/debian/graphs/organigram.git
--- /dev/null
+RedirectMatch /.*package-cycle(/.*) http://git.madduck.net/v/debian/graphs/package-cycle.git
--- /dev/null
+RedirectMatch /.*timeline(/.*) http://git.madduck.net/v/debian/graphs/timeline.git
--- /dev/null
+/*
+!/__prune__
+!/.gitignore
--- /dev/null
+restindex
+ encoding: utf8
+ template-encoding: utf8
+ page-title: Imprint
+/restindex
+
+.. imprint.txt -- site imprint
+
+ Copyright © martin f. krafft <madduck ät debian.org>
+ Released under the terms of the Creative Commons Attribution-
+ NonCommercial-ShareAlike 2.5 Licence:
+ http://creativecommons.org/licenses/by-nc-sa/2.5/
+
+ Part of the source code for the site http://people.debian.org/~madduck/
+
+ svn: http://svn.madduck.net/pub/debian/web/people.debian.org--madduck/
+
+Operation & responsibility
+==========================
+
+Solely responsible for the content underneath
+http://people.debian.org/~madduck/ is Martin F. Krafft <madduck@debian.org>.
+
+The web server is hosted by the `Debian project`_.
+
+.. _Debian project: http://debian.org
+
+Please stop by the `site credits <credits.html>`_ at your convenience.
+
+Copyright
+=========
+
+Concepts, content, design, and logic of this web site are protected by
+copyright laws.
+
+This site is copyright © Martin F. Krafft. Concepts, content, design, and
+logic are herewith released under the terms of the `Creative Commons
+Attribution - NonCommercial - ShareAlike 2.5 Licence
+<http://creativecommons.org/licenses/by-nc-sa/2.5/>`_.
+
+You can obtain the source code for this site with `Subversion`_ from
+http://svn.madduck.net/pub/debian/web/people.debian.org--madduck/ . I use `rest2web`_ to generate the HTML pages
+from the `restructured text`_ sources.
+
+.. _Subversion: http://subversion.tigris.org/
+.. _rest2web: http://www.voidspace.org.uk/python/rest2web/
+.. _restructured text: http://docutils.sourceforge.net/rst.html
+
+All products mentioned on these pages are trademarks of their respective
+owners, where appropriate.
+
+Disclaimer
+==========
+
+Although every effort has been made to verify the accuracy of information
+provided on this web site, mistakes or confusions may occur. The author,
+Martin F. Krafft, does not assume liability, or responsibility over the
+relevance and completeness of the information provided. Some of the materials
+and information accessible through this web site are provided by third
+parties. The author has no influence on contents provided by third parties and
+therefore has no responsibility whatsoever for these contents. The author
+shall under no circumstances be held liable for contents provided by third
+parties which do not comply with the laws applicable in your country. The
+author reserves the right to change the contents or functionality of this
+website at any time.
+
+The author herewith distances himself from any content of sites linking to or
+linked from this web site.
+
+Extracts of the information in the web site may be reviewed, reproduced or
+translated for research or private study but not for sale or for use in
+conjunction with commercial purposes. Any use of information in the web site
+should be accompanied by an acknowledgment of this web site as the source,
+citing the uniform resource locator (URL) of the article. Reproduction,
+translation or any use of this website requires explicit prior authorization
+in writing from the author.
+
+Any mention of specific companies or of certain manufacturers' products on
+this web site does not imply that they are endorsed or recommended by the
+author in preference to others of a similar nature that are not mentioned.
+Errors and omissions excepted, the names of proprietary products are
+distinguished by initial capital letters.
+
+Logging of access data
+======================
+
+Access to the web server hosting this site is logged. By interacting with the
+site, you agree to the storage of date and time of access, requested document,
+IP address, and the browser identification (incl. operating system). These
+data are stored anonymously and securely, and used exclusively for statistical
+analysis. No information or data is ever made available to third parties
+except in the case of legal dispute or obligation.
--- /dev/null
+restindex
+ encoding: utf-8
+ template-encoding: utf-8
+ page-title: Main
+/restindex
+
+.. index.txt -- main (intro) page
+
+ Copyright © martin f. krafft <madduck ät debian.org>
+ Released under the terms of the Creative Commons Attribution-
+ NonCommercial-ShareAlike 2.5 Licence:
+ http://creativecommons.org/licenses/by-nc-sa/2.5/
+
+ Part of the source code for the site http://people.debian.org/~madduck/
+
+ svn: http://svn.madduck.net/pub/debian/web/people.debian.org--madduck/
+
+.. image:: img/portrait.png
+ :class: floatright
+ :alt: Portrait Martin F. Krafft
+
+Go to:
+
+- my `GPG public key <gpg/55c9882d999bbcc4.asc>`_.
+- my book, `The Debian System -- Concepts and Techniques`_, released in June
+ 2005
+- Debian-related `talks`_ I've given
+- the page describing my `Ph.D. research`_ (on Debian)
+- my `blog`_, with sections on `Debian`_ and `my book`_
+- my `APT archive`_ (preliminary packages)
+- my `developer page`_ (list of my packages)
+- my `Debian wiki page`_
+- `graphs <graphs/>`_:
+
+ - `graph of the Debian organisation`_
+ - `graph of the life cycle of a Debian package`_
+ - `graph of the timeline of Debian releases`_
+
+- the `netconf project's homepage`_
+- the `vcs-pkg project's homepage`_
+
+.. _The Debian System -- Concepts and Techniques: http://debiansystem.info
+.. _APT archive: http://debian.madduck.net/repo/
+.. _blog: http://blog.madduck.net/
+.. _Debian: http://blog.madduck.net/debian/
+.. _my book: http://blog.madduck.net/debianbook/
+.. _developer page: http://qa.debian.org/developer.php?login=madduck&comaint=yes
+.. _graph of the Debian organisation: graphs/organigram/
+.. _graph of the life cycle of a Debian package: graphs/package-cycle/
+.. _graph of the timeline of Debian releases: graphs/timeline/
+.. _Debian wiki page: http://wiki.debian.org/madduck
+.. _Ph.D. research: http://martin-krafft.net/phd/
+.. _talks: talks/
+.. _netconf project's homepage: http://netconf.alioth.debian.org
+.. _vcs-pkg project's homepage: http://vcs-pkg.org
--- /dev/null
+// written by Dean Edwards, 2005\r
+// with input from Tino Zijdel, Matthias Miller, Diego Perini\r
+// http://dean.edwards.name/weblog/2005/10/add-event/\r
+\r
+function addEvent(element, type, handler) {\r
+ // Modification by Tanny O'Haley, http://tanny.ica.com to add the\r
+ // DOMContentLoaded for all browsers.\r
+ if (type == "DOMContentLoaded" || type == "domload") {\r
+ addDOMLoadEvent(handler);\r
+ return;\r
+ }\r
+ \r
+ if (element.addEventListener) {\r
+ element.addEventListener(type, handler, false);\r
+ } else {\r
+ // assign each event handler a unique ID\r
+ if (!handler.$$guid) handler.$$guid = addEvent.guid++;\r
+ // create a hash table of event types for the element\r
+ if (!element.events) element.events = {};\r
+ // create a hash table of event handlers for each element/event pair\r
+ var handlers = element.events[type];\r
+ if (!handlers) {\r
+ handlers = element.events[type] = {};\r
+ // store the existing event handler (if there is one)\r
+ if (element["on" + type]) {\r
+ handlers[0] = element["on" + type];\r
+ }\r
+ }\r
+ // store the event handler in the hash table\r
+ handlers[handler.$$guid] = handler;\r
+ // assign a global event handler to do all the work\r
+ element["on" + type] = handleEvent;\r
+ }\r
+};\r
+// a counter used to create unique IDs\r
+addEvent.guid = 1;\r
+\r
+function removeEvent(element, type, handler) {\r
+ if (element.removeEventListener) {\r
+ element.removeEventListener(type, handler, false);\r
+ } else {\r
+ // delete the event handler from the hash table\r
+ if (element.events && element.events[type]) {\r
+ delete element.events[type][handler.$$guid];\r
+ }\r
+ }\r
+};\r
+\r
+function handleEvent(event) {\r
+ var returnValue = true;\r
+ // grab the event object (IE uses a global event object)\r
+ event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event);\r
+ // get a reference to the hash table of event handlers\r
+ var handlers = this.events[event.type];\r
+ // execute each event handler\r
+ for (var i in handlers) {\r
+ this.$$handleEvent = handlers[i];\r
+ if (this.$$handleEvent(event) === false) {\r
+ returnValue = false;\r
+ }\r
+ }\r
+ return returnValue;\r
+};\r
+\r
+function fixEvent(event) {\r
+ // add W3C standard event methods\r
+ event.preventDefault = fixEvent.preventDefault;\r
+ event.stopPropagation = fixEvent.stopPropagation;\r
+ return event;\r
+};\r
+fixEvent.preventDefault = function() {\r
+ this.returnValue = false;\r
+};\r
+fixEvent.stopPropagation = function() {\r
+ this.cancelBubble = true;\r
+};\r
+\r
+// End Dean Edwards addEvent.\r
+\r
+// Tino Zijdel - crisp@xs4all.nl This little snippet fixes the problem that the onload attribute on \r
+// the body-element will overwrite previous attached events on the window object for the onload event.\r
+if (!window.addEventListener) {\r
+ document.onreadystatechange = function(){\r
+ if (window.onload && window.onload != handleEvent) {\r
+ addEvent(window, 'load', window.onload);\r
+ window.onload = handleEvent;\r
+ }\r
+ }\r
+}\r
+\r
+// Here are my functions for adding the DOMContentLoaded event to browsers other\r
+// than Mozilla.\r
+\r
+// Array of DOMContentLoaded event handlers.\r
+window.onDOMLoadEvents = new Array();\r
+window.DOMContentLoadedInitDone = false;\r
+\r
+// Function that adds DOMContentLoaded listeners to the array.\r
+function addDOMLoadEvent(listener) {\r
+ window.onDOMLoadEvents[window.onDOMLoadEvents.length]=listener;\r
+}\r
+\r
+// Function to process the DOMContentLoaded events array.\r
+function DOMContentLoadedInit() {\r
+ // quit if this function has already been called\r
+ if (window.DOMContentLoadedInitDone) return;\r
+\r
+ // flag this function so we don't do the same thing twice\r
+ window.DOMContentLoadedInitDone = true;\r
+\r
+ // iterates through array of registered functions \r
+ for (var i=0; i<window.onDOMLoadEvents.length; i++) {\r
+ var func = window.onDOMLoadEvents[i];\r
+ func();\r
+ }\r
+}\r
+\r
+function DOMContentLoadedScheduler() {\r
+ // quit if the init function has already been called\r
+ if (window.DOMContentLoadedInitDone) return true;\r
+ \r
+ // First, check for Safari or KHTML.\r
+ // Second, check for IE.\r
+ //if DOM methods are supported, and the body element exists\r
+ //(using a double-check including document.body, for the benefit of older moz builds [eg ns7.1] \r
+ //in which getElementsByTagName('body')[0] is undefined, unless this script is in the body section)\r
+ if(/KHTML|WebKit/i.test(navigator.userAgent)) {\r
+ if(/loaded|complete/.test(document.readyState)) {\r
+ DOMContentLoadedInit();\r
+ } else {\r
+ // Not ready yet, wait a little more.\r
+ setTimeout("DOMContentLoadedScheduler()", 250);\r
+ }\r
+ } else if(document.getElementById("__ie_onload")) {\r
+ return true;\r
+ } else if(typeof document.getElementsByTagName != 'undefined' && (document.getElementsByTagName('body')[0] != null || document.body != null)) {\r
+ DOMContentLoadedInit();\r
+ } else {\r
+ // Not ready yet, wait a little more.\r
+ setTimeout("DOMContentLoadedScheduler()", 250);\r
+ }\r
+ \r
+ return true;\r
+}\r
+\r
+// Schedule to run the init function.\r
+setTimeout("DOMContentLoadedScheduler()", 250);\r
+\r
+// Just in case window.onload happens first, add it there too.\r
+addEvent(window, "load", DOMContentLoadedInit);\r
+\r
+// If addEventListener supports the DOMContentLoaded event.\r
+if(document.addEventListener)\r
+ document.addEventListener("DOMContentLoaded", DOMContentLoadedInit, false);\r
+\r
+/* for Internet Explorer */\r
+/*@cc_on @*/\r
+/*@if (@_win32)\r
+ document.write("<script id=__ie_onload defer src=\"//:\"><\/script>");\r
+ var script = document.getElementById("__ie_onload");\r
+ script.onreadystatechange = function() {\r
+ if (this.readyState == "complete") {\r
+ DOMContentLoadedInit(); // call the onload handler\r
+ }\r
+ };\r
+/*@end @*/\r
--- /dev/null
+/*
+ * ie-note.js -- alerts users of IE about lack of standards-compliance
+ *
+ * to use, source this script from the HTML file:
+ *
+ * <script type="text/javascript" src="js/ie-note.js"></script>
+ *
+ * Note that you need an event handler, such as
+ * http://dean.edwards.name/weblog/2005/10/add-event/
+ * or insure otherwise that insertNote() is called *after* the whole page has
+ * been rendered and the DOM initialised.
+ *
+ * The notice can be styled with CSS, using the ie-note class name.
+ *
+ * SVN url: http://svn.madduck.net/pub/web/martin-krafft.net/js/ie-note.js
+ *
+ * Copyright © martin f. krafft <madduck@madduck.net>
+ * Released under the terms of the Artistic Licence 2.0
+ *
+ * Revision: $Id: dchangesfilename 295 2006-10-07 11:20:26Z madduck $
+ */
+
+function isIE()
+{
+ return navigator.appName.indexOf('Internet Explorer') > 0 ||
+ navigator.appName.indexOf('MSIE') > 0;
+}
+
+function insertNote()
+{
+ var query = unescape(location.search);
+ if (isIE() || query.indexOf('ie-note') > 0) {
+ var container = document.createElement("p");
+ container.className = 'ie-note';
+ container.innerHTML =
+ '<strong>Notice:</strong> you are using Microsoft\'s Internet Explorer, '
+ + 'which does not properly support the <a '
+ + 'href="http://www.w3.org/MarkUp">XHTML</a> and <a '
+ + 'href="http://www.w3.org/Style/CSS">CSS</a> standards used in writing '
+ + 'this page the way it is supposed to look. The information is still '
+ + 'all there, but for a better result, please consider alternative '
+ + 'browsers, such as <a href="http://www.mozilla.org/products/firefox">'
+ + 'Mozilla Firefox</a>.';
+ var body = document.getElementsByTagName("body")[0];
+ body.insertBefore(container, body.firstChild);
+ }
+}
+
+// see http://dean.edwards.name/weblog/2005/10/add-event/
+addEvent(window, 'DOMContentLoaded', insertNote);
--- /dev/null
+# Attempt to use psyco ?
+psyco = False
+
+# pause after building ?
+pause = False
+
+# the root directory
+start_directory = '.'
+
+# the directory to generate files in
+target_directory = 'html'
+
+# directory to compare against (defaults to target_directory)
+compare_directory = ''
+
+# file to log output to (if any)
+log_file = ''
+
+# file containing macros (if any)
+macros = ''
+
+# Enter DEBUG mode ?
+# (Interactive interpreter prompt in each page namespace)
+DEBUG = False
+
+[uservalues]
+site_title = madduck's Debian stuff
+site_keywords = martin f. krafft madduck debian
--- /dev/null
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
+<# copyright="""
+ template.txt : site template (for rest2web)
+
+ Copyright © martin f. krafft <madduck ät debian.org>
+ Released under the terms of the Creative Commons Attribution-
+ NonCommercial-ShareAlike 2.5 Licence:
+ http://creativecommons.org/licenses/by-nc-sa/2.5/
+
+ Part of the source code for the site http://people.debian.org/~madduck/
+
+ svn: http://svn.madduck.net/pub/debian/web/people.debian.org--madduck/
+ """
+#>
+<head>
+ <title><% title %> - madduck's Debian stuff</title>
+
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+
+ <meta http-equiv="imagetoolbar" content="no" />
+
+ <link rel="made" href="mailto:madduck%40debian.org" />
+ <link rel="start" href="./<% path_to_root %>" title="Front page" />
+
+ <link rel="stylesheet" media="all" type="text/css"
+ href="<% path_to_root %>css/base.css" title="basic" />
+
+ <meta name="keywords" content="<% thispage['uservalues']['site_keywords'] %>" />
+
+ <script type="text/javascript" src="<% path_to_root %>js/event-registration.js"></script>
+ <script type="text/javascript" src="<% path_to_root %>js/ie-note.js"></script>
+
+</head>
+
+<body>
+
+<div id="header">
+ <p class="title">
+ <% thispage['uservalues']['site_title'] %>
+ </p>
+</div>
+
+<div id="content">
+ <% body %>
+</div>
+
+<hr class="textmode" />
+
+<div id="bottom">
+
+ <p>This page was last modified <% modtime %>.</p>
+
+ <p>
+ Site design and content are copyright © Martin F. Krafft.
+ Please see <a href="<% path_to_root %>imprint.html">the imprint</a>.
+ <br />
+ I shall not be held liable for offending content in pages linking to or
+ linked from site, nor do I endorse their content unless I stated
+ otherwise.
+ </p>
+
+ <div id="colophon">
+ <p>
+ This webpage wouldn't be possible without <a
+ href="http://debian.org/">Debian</a>, <a
+ href="http://python.org/">Python</a>, <a
+ href="http://voidspace.org.uk/python/rest2web/">rest2web</a>, <a
+ href="http://httpd.apache.org/">Apache</a>, and other
+ excellent pieces of <a href="http://fsf.org/">Free Software</a>.
+ </p>
+ <p>
+ <a href="http://validator.w3.org/check/referer">
+ <img src="<% path_to_root %>img/xhtml1.png" alt="Valid XHTML 1.0 Strict" /></a>
+ <a href="http://jigsaw.w3.org/css-validator/check/referer/">
+ <img src="<% path_to_root %>img/css.png" alt="Valid CSS" /></a>
+ </p>
+ </div>
+</div>
+
+</body></html>