madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

initial commit
authormartin f. krafft <madduck@madduck.net>
Tue, 25 Jan 2011 13:46:18 +0000 (14:46 +0100)
committermartin f. krafft <madduck@madduck.net>
Tue, 25 Jan 2011 13:46:18 +0000 (14:46 +0100)
Signed-off-by: martin f. krafft <madduck@madduck.net>
19 files changed:
Makefile [new file with mode: 0644]
credits.txt [new file with mode: 0644]
css/base.css [new file with mode: 0644]
gpg/.htaccess [new file with mode: 0644]
graphs/organigram/.htaccess [new file with mode: 0644]
graphs/package-cycle/.htaccess [new file with mode: 0644]
graphs/timeline/.htaccess [new file with mode: 0644]
html/.gitignore [new file with mode: 0644]
html/__prune__ [new file with mode: 0644]
img/bg.jpg [new file with mode: 0644]
img/css.png [new file with mode: 0644]
img/portrait.png [new file with mode: 0644]
img/xhtml1.png [new file with mode: 0644]
imprint.txt [new file with mode: 0644]
index.txt [new file with mode: 0644]
js/event-registration.js [new file with mode: 0644]
js/ie-note.js [new file with mode: 0644]
r2w.ini [new file with mode: 0644]
template.txt [new file with mode: 0644]

diff --git a/Makefile b/Makefile
new file mode 100644 (file)
index 0000000..7cf7bcf
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,38 @@
+# 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
diff --git a/credits.txt b/credits.txt
new file mode 100644 (file)
index 0000000..c90fc83
--- /dev/null
@@ -0,0 +1,73 @@
+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/
diff --git a/css/base.css b/css/base.css
new file mode 100644 (file)
index 0000000..88d0881
--- /dev/null
@@ -0,0 +1,160 @@
+/* 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;
+}
diff --git a/gpg/.htaccess b/gpg/.htaccess
new file mode 100644 (file)
index 0000000..7b0d2d3
--- /dev/null
@@ -0,0 +1 @@
+RedirectMatch /.*/gpg(/.*) http://alioth.debian.org/~madduck/gpg$1
diff --git a/graphs/organigram/.htaccess b/graphs/organigram/.htaccess
new file mode 100644 (file)
index 0000000..2d30858
--- /dev/null
@@ -0,0 +1 @@
+RedirectMatch /.*organigram(/.*) http://git.madduck.net/v/debian/graphs/organigram.git
diff --git a/graphs/package-cycle/.htaccess b/graphs/package-cycle/.htaccess
new file mode 100644 (file)
index 0000000..10a231b
--- /dev/null
@@ -0,0 +1 @@
+RedirectMatch /.*package-cycle(/.*) http://git.madduck.net/v/debian/graphs/package-cycle.git
diff --git a/graphs/timeline/.htaccess b/graphs/timeline/.htaccess
new file mode 100644 (file)
index 0000000..3717bd8
--- /dev/null
@@ -0,0 +1 @@
+RedirectMatch /.*timeline(/.*) http://git.madduck.net/v/debian/graphs/timeline.git
diff --git a/html/.gitignore b/html/.gitignore
new file mode 100644 (file)
index 0000000..fc32f2e
--- /dev/null
@@ -0,0 +1,3 @@
+/*
+!/__prune__
+!/.gitignore
diff --git a/html/__prune__ b/html/__prune__
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/img/bg.jpg b/img/bg.jpg
new file mode 100644 (file)
index 0000000..e320130
Binary files /dev/null and b/img/bg.jpg differ
diff --git a/img/css.png b/img/css.png
new file mode 100644 (file)
index 0000000..99bcd66
Binary files /dev/null and b/img/css.png differ
diff --git a/img/portrait.png b/img/portrait.png
new file mode 100644 (file)
index 0000000..8d602dd
Binary files /dev/null and b/img/portrait.png differ
diff --git a/img/xhtml1.png b/img/xhtml1.png
new file mode 100644 (file)
index 0000000..38ac9c5
Binary files /dev/null and b/img/xhtml1.png differ
diff --git a/imprint.txt b/imprint.txt
new file mode 100644 (file)
index 0000000..bff59e3
--- /dev/null
@@ -0,0 +1,92 @@
+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.
diff --git a/index.txt b/index.txt
new file mode 100644 (file)
index 0000000..f91f5ee
--- /dev/null
+++ b/index.txt
@@ -0,0 +1,55 @@
+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
diff --git a/js/event-registration.js b/js/event-registration.js
new file mode 100644 (file)
index 0000000..d2c2afd
--- /dev/null
@@ -0,0 +1,166 @@
+// 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
diff --git a/js/ie-note.js b/js/ie-note.js
new file mode 100644 (file)
index 0000000..845acfc
--- /dev/null
@@ -0,0 +1,50 @@
+/* 
+ * 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);
diff --git a/r2w.ini b/r2w.ini
new file mode 100644 (file)
index 0000000..52916be
--- /dev/null
+++ b/r2w.ini
@@ -0,0 +1,28 @@
+# 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
diff --git a/template.txt b/template.txt
new file mode 100644 (file)
index 0000000..117cecd
--- /dev/null
@@ -0,0 +1,82 @@
+<!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&#37;&#52;&#48;debian&#46;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>