the new version
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=470705

--- a/contrib/todo.css
+++ b/contrib/todo.css
@@ -1,6 +1,6 @@
 /*
 
-default CSS stylesheet for todo2xhtml_css version 0.6
+default CSS stylesheet for todo2xhtml_css version 0.9
 
 Copyright (c) 2004-2005 Francesco Poli
 
@@ -30,7 +30,7 @@
     color: black;
     background-color: #e4e4e4;
     font-family: monospace;
-    font-size: 120%;
+    font-size: 110%;
     line-height: 1.5;
     width: 100%;
     padding: 0em;
@@ -51,7 +51,7 @@
 {
     position: absolute;
     top: -0.02em;
-    right: 1.1em;
+    right: 1.7em;
     font-family: "Verdana", "Arial", "Helvetica", sans-serif;
     text-align: center;
     font-size: 250%;
@@ -75,7 +75,7 @@
 {
     /* display: none; /* I don't like legends! */
     float: right;
-    width: 22.2em;
+    width: 26.0em;
     padding: 0em;
     border-width: 0em;
     margin: 0em;
@@ -99,42 +99,61 @@
     background-color: #f4f4f4;
 }
 
-.veryhigh
+#innerlegend li
+{
+    margin: 5px 0px 5px;
+}
+
+a.visibility
+{
+    font-weight: normal;
+    border: 3px outset #eee;
+    margin: 1px 5px 1px 0px;
+    padding: 2px 0.5em 2px;
+    text-decoration: none;
+    background-color: #eee;
+    color: black;
+    display: none; /* buttons must not be rendered, unless a JavaScript
+                      interpreter enables them... */
+}
+
+a.visibility:active
+{
+    border: 3px inset #eee;
+}
+
+.veryhigh, .veryhighdone
 {
     font-weight: bold;
     color: red;
 }
 
-.high
+.high, .highdone
 {
     font-weight: bold;
     color: #fb0;
 }
 
-.medium
+.medium, .mediumdone
 {
     font-weight: normal;
     color: black;
 }
 
-.low
+.low, .lowdone
 {
     font-weight: normal;
     color: blue;
 }
 
-.verylow
+.verylow, .verylowdone
 {
     font-weight: normal;
     color: #4a4;
 }
 
-.done
+.veryhighdone, .highdone, .mediumdone, .lowdone, .verylowdone
 {
     text-decoration: line-through;
-}
-
-.old
-{
     /* display: none; /* I don't want to see done items! */
 }
--- a/contrib/todo2xhtml_css.xslt
+++ b/contrib/todo2xhtml_css.xslt
@@ -3,9 +3,10 @@
 <!--
     todo2xhtml_css - convert a devtodo database to a CSS+XHTML page
 
-    Version:  0.6
+    Version:  0.9
 
     Copyright (c) 2004-2005 Francesco Poli, <frx@firenze.linux.it>
+    Copyright (c) 2005 Arthur Korn, <arthur@korn.ch>
 
     Permission is hereby granted, free of charge, to any person obtaining
     a copy of this software and associated documentation files (the
@@ -75,31 +76,36 @@
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
   <head>
     <title>Todo list</title>
+<style type="text/css">
 <xsl:text disable-output-escaping = "yes">
-&lt;link rel='stylesheet' href='todo.css' type='text/css'/&gt;
+/*&lt;![CDATA[*/
+@import "./.todo.css";
+/*]]&gt;*/
 </xsl:text>
-    <script type="text/javascript">
-    <xsl:text disable-output-escaping = "yes">
-    &lt;!--
-    function updateDisplay()
+</style>
+<script type="text/javascript">
+<xsl:text disable-output-escaping = "yes">
+//&lt;![CDATA[
+&lt;!--
+function updateDisplay(tag, tag_class, new_display)
+{
+    var tags = document.getElementsByTagName(tag);
+    for (var i=0; i&lt;tags.length; i++)
     {
-	var spans = document.getElementsByTagName("span");
-	for (var i=0; i&lt;spans.length; i++) {
-	    var thing=spans[i];
-	    if (thing.className=="old") {
-		if (document.getElementById("dispform").dispold.checked) {
-		    thing.style.display="inline";
-		} else {
-		    thing.style.display="none";
-		}
-	    }
-	}
+        var thing = tags[i];
+        if (thing.className == tag_class)
+        {
+            thing.style.display = new_display;
+        }
     }
-    //--&gt;
-    </xsl:text>
-    </script>
+}
+//--&gt;
+
+//]]&gt;
+</xsl:text>
+</script>
   </head>
-  <body onLoad="updateDisplay()">
+  <body onload="updateDisplay('a', 'visibility', 'inline')">
     <div id="outercontainer">
       <div id="innercontainer">
         <div id="outertitle">
@@ -110,31 +116,44 @@
         <div id="outerlegend">
           <div id="innerlegend">
             <ol>
-              <li class="veryhigh">
-                <span>veryhigh</span>
-                <span class="old"><span class="done">(done)</span></span>
-              </li>
-              <li class="high">
-                <span>high</span>
-                <span class="old"><span class="done">(done)</span></span>
-              </li>
-              <li class="medium">
-                <span>medium</span>
-                <span class="old"><span class="done">(done)</span></span>
-              </li>
-              <li class="low">
-                <span>low</span>
-                <span class="old"><span class="done">(done)</span></span>
-              </li>
-              <li class="verylow">
-                <span>verylow</span>
-                <span class="old"><span class="done">(done)</span></span>
-              </li>
+              <li class="veryhigh"><a class="visibility"
+              href="#" title="show done items"
+              onclick="updateDisplay('li', 'veryhighdone', 'list-item')">s</a>
+              <a class="visibility" href="#" title="hide done items"
+              onclick="updateDisplay('li', 'veryhighdone', 'none')">h</a>
+              veryhigh</li>
+              <li class="high"><a class="visibility"
+              href="#" title="show done items"
+              onclick="updateDisplay('li', 'highdone', 'list-item')">s</a>
+              <a class="visibility" href="#" title="hide done items"
+              onclick="updateDisplay('li', 'highdone', 'none')">h</a>
+              high</li>
+              <li class="medium"><a class="visibility"
+              href="#" title="show done items"
+              onclick="updateDisplay('li', 'mediumdone', 'list-item')">s</a>
+              <a class="visibility" href="#" title="hide done items"
+              onclick="updateDisplay('li', 'mediumdone', 'none')">h</a>
+              medium</li>
+              <li class="low"><a class="visibility"
+              href="#" title="show done items"
+              onclick="updateDisplay('li', 'lowdone', 'list-item')">s</a>
+              <a class="visibility" href="#" title="hide done items"
+              onclick="updateDisplay('li', 'lowdone', 'none')">h</a>
+              low</li>
+              <li class="verylow"><a class="visibility"
+              href="#" title="show done items"
+              onclick="updateDisplay('li', 'verylowdone', 'list-item')">s</a>
+              <a class="visibility" href="#" title="hide done items"
+              onclick="updateDisplay('li', 'verylowdone', 'none')">h</a>
+              verylow</li>
+            </ol>
+            <ol>
+              <li class="veryhighdone">done veryhigh</li>
+              <li class="highdone">done high</li>
+              <li class="mediumdone">done medium</li>
+              <li class="lowdone">done low</li>
+              <li class="verylowdone">done verylow</li>
             </ol>
-			<form action="." method="get" id="dispform">
-				<input type="checkbox" name="dispold" checked="" onChange="updateDisplay()"/>
-				  Display done items.
-			</form>
           </div>
         </div>
         <div id="outerlist">
@@ -161,24 +180,15 @@
 </xsl:template>
 
 <xsl:template match="note">
-  <xsl:element name="span">
-    <xsl:if test="@done">
-      <xsl:attribute name="class">old</xsl:attribute>
+  <xsl:element name="li">
+    <xsl:attribute name="class">
+      <xsl:value-of select="@priority" />
+      <xsl:if test="@done">done</xsl:if>
+    </xsl:attribute>
+    <xsl:value-of select="child::text()" />
+    <xsl:if test="./note">
+      <xsl:call-template name="list_of_notes" />
     </xsl:if>
-    <xsl:element name="li">
-      <xsl:attribute name="class">
-        <xsl:value-of select="@priority" />
-      </xsl:attribute>
-      <xsl:element name="span">
-        <xsl:if test="@done">
-          <xsl:attribute name="class">done</xsl:attribute>
-        </xsl:if>
-        <xsl:value-of select="child::text()" />
-      </xsl:element>
-      <xsl:if test="./note">
-        <xsl:call-template name="list_of_notes" />
-      </xsl:if>
-    </xsl:element>
   </xsl:element>
 </xsl:template>
 
