[py-svn] r34794 - in py/dist/py/apigen: . rest

guido at codespeak.net guido at codespeak.net
Mon Nov 20 15:52:58 CET 2006


Author: guido
Date: Mon Nov 20 15:52:56 2006
New Revision: 34794

Added:
   py/dist/py/apigen/apigen.js
Modified:
   py/dist/py/apigen/rest/htmlhandlers.py
   py/dist/py/apigen/style.css
Log:
Small CSS changes, added breadcrumb trail for navigation, made module_py.html
the default page in the iframe.


Added: py/dist/py/apigen/apigen.js
==============================================================================
--- (empty file)
+++ py/dist/py/apigen/apigen.js	Mon Nov 20 15:52:56 2006
@@ -0,0 +1,28 @@
+var anchors = [];
+function set_breadcrumb(el) {
+    var breadcrumb = document.getElementById('breadcrumb');
+    var href = el.href;
+    if (href.indexOf('module_') > -1) {
+        anchors = [];
+    };
+    for (var i=0; i < anchors.length; i++) {
+        if (anchors[i].href == href) {
+            anchors = anchors.slice(0, i);
+        };
+    };
+    var clone = el.cloneNode(true);
+    if (anchors.length && clone.childNodes[0].nodeValue.indexOf('.') > -1) {
+        var chunks = clone.childNodes[0].nodeValue.split('.');
+        clone.childNodes[0].nodeValue = chunks[chunks.length - 1];
+    };
+    anchors.push(clone);
+    while (breadcrumb.hasChildNodes()) {
+        breadcrumb.removeChild(breadcrumb.childNodes[0]);
+    };
+    for (var i=0; i < anchors.length; i++) {
+        breadcrumb.appendChild(anchors[i]);
+        if (i < anchors.length - 1) {
+            breadcrumb.appendChild(document.createTextNode('.'));
+        };
+    };
+};

Modified: py/dist/py/apigen/rest/htmlhandlers.py
==============================================================================
--- py/dist/py/apigen/rest/htmlhandlers.py	(original)
+++ py/dist/py/apigen/rest/htmlhandlers.py	Mon Nov 20 15:52:56 2006
@@ -4,24 +4,36 @@
     def startDocument(self):
         self._data += ['<html>\n', '<head>\n',
                        '<title>api reference</title>\n',
-                       '<script type="text/javascript" src="apigen.js">',
-                       '</script>',
                        ('<link type="text/css" rel="stylesheet" '
                         'href="style.css" />'),
                        '</head>\n', '<body>\n']
 
+    def handleLink(self, text, target):
+        self._data.append('<a href="%s" onclick="parent.set_breadcrumb(this)" '
+                            'target="content">%s</a>' % (
+                            entitize(target), entitize(text)))
+
 class IndexHandler(PageHandler):
     ignore_text = False
 
     def startDocument(self):
-        super(IndexHandler, self).startDocument()
-        self._data += ['<div id="sidebar">']
+        self._data += ['<html>\n', '<head>\n',
+                       '<title>api reference</title>\n',
+                       ('<link type="text/css" rel="stylesheet" '
+                        'href="style.css" />'),
+                       '<script type="text/javascript" src="apigen.js">',
+                       '</script>',
+                       '</head>\n',
+                       ('<body onload="set_breadcrumb('
+                        'document.getElementsByTagName(\'a\')[0])">\n'),
+                       '<div id="sidebar">']
 
     def endDocument(self):
         self._data += ['</div>', '<div id="main">',
+                        '<div id="breadcrumb">', '</div>',
                        ('<iframe name="content" id="content" width="100%" '
-                        'height="100%" src="about:blank">'), '</iframe>',
-                       '</div>']
+                        'src="module_py.html">'),
+                        '</iframe>', '</div>']
     
     def startTitle(self, depth):
         self.ignore_text = True
@@ -35,5 +47,7 @@
         super(IndexHandler, self).handleText(text)
 
     def handleLink(self, text, target):
-        self._data.append('<a href="%s" target="content">%s</a>' % (
+        self._data.append('<a href="%s" onclick="set_breadcrumb(this)" '
+                            'target="content">%s</a>' % (
                             entitize(target), entitize(text)))
+

Modified: py/dist/py/apigen/style.css
==============================================================================
--- py/dist/py/apigen/style.css	(original)
+++ py/dist/py/apigen/style.css	Mon Nov 20 15:52:56 2006
@@ -1,14 +1,21 @@
 #sidebar {
   width: 9em;
   float: left;
+  vertical-align: top;
+  margin-top: 0px;
 }
 
 #main {
-  margin-left: 9em;
+  margin-left: 10em;
 }
 
 #content {
   border: 0px;
+  height: 95%;
+}
+
+#breadcrumb {
+  height: 5%;
 }
 
 body, div, p, h1, h2, h3, h4 {
@@ -24,8 +31,10 @@
 
 ul {
   padding-left: 2em;
+  margin-top: 0px;
 }
 
 ul li {
   list-style-type: katakana;
 }
+


More information about the py-svn mailing list