[Python-checkins] r64467 - in doctools/trunk/sphinx: builder.py static/doctools.js templates/layout.html templates/modindex.html

georg.brandl python-checkins at python.org
Sun Jun 22 21:23:00 CEST 2008


Author: georg.brandl
Date: Sun Jun 22 21:23:00 2008
New Revision: 64467

Log:
Don't collapse modindex if number of submodules is larger
than number of toplevel modules.


Modified:
   doctools/trunk/sphinx/builder.py
   doctools/trunk/sphinx/static/doctools.js
   doctools/trunk/sphinx/templates/layout.html
   doctools/trunk/sphinx/templates/modindex.html

Modified: doctools/trunk/sphinx/builder.py
==============================================================================
--- doctools/trunk/sphinx/builder.py	(original)
+++ doctools/trunk/sphinx/builder.py	Sun Jun 22 21:23:00 2008
@@ -501,6 +501,8 @@
             modindexentries = []
             letters = []
             pmn = ''
+            num_toplevels = 0
+            num_collapsables = 0
             cg = 0 # collapse group
             fl = '' # first letter
             for mn, (fn, sy, pl, dep) in modules:
@@ -517,21 +519,29 @@
                     if pmn == tn:
                         # first submodule - make parent collapsable
                         modindexentries[-1][1] = True
+                        num_collapsables += 1
                     elif not pmn.startswith(tn):
                         # submodule without parent in list, add dummy entry
                         cg += 1
                         modindexentries.append([tn, True, cg, False, '', '', [], False])
                 else:
+                    num_toplevels += 1
                     cg += 1
                 modindexentries.append([mn, False, cg, (tn != mn), fn, sy, pl, dep])
                 pmn = mn
                 fl = mn[0].lower()
             platforms = sorted(platforms)
 
+            # apply heuristics when to collapse modindex at page load:
+            # only collapse if number of toplevel modules is larger than
+            # number of submodules
+            collapse = len(modules) - num_toplevels > num_toplevels
+
             modindexcontext = dict(
                 modindexentries = modindexentries,
                 platforms = platforms,
                 letters = letters,
+                collapse = collapse,
             )
             self.info(' modindex', nonl=1)
             self.handle_page('modindex', modindexcontext, 'modindex.html')

Modified: doctools/trunk/sphinx/static/doctools.js
==============================================================================
--- doctools/trunk/sphinx/static/doctools.js	(original)
+++ doctools/trunk/sphinx/static/doctools.js	Sun Jun 22 21:23:00 2008
@@ -154,7 +154,7 @@
    * init the modindex toggle buttons
    */
   initModIndex : function() {
-    $('img.toggler').click(function() {
+    var togglers = $('img.toggler').click(function() {
       var src = $(this).attr('src');
       var idnum = $(this).attr('id').substr(7);
       console.log($('tr.cg-' + idnum).toggle());
@@ -162,7 +162,10 @@
         $(this).attr('src', src.substr(0, src.length-9) + 'plus.png');
       else
         $(this).attr('src', src.substr(0, src.length-8) + 'minus.png');
-    }).css('display', '').click();
+    }).css('display', '');
+    if (DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX) {
+        togglers.click();
+    }
   },
 
   /**

Modified: doctools/trunk/sphinx/templates/layout.html
==============================================================================
--- doctools/trunk/sphinx/templates/layout.html	(original)
+++ doctools/trunk/sphinx/templates/layout.html	Sun Jun 22 21:23:00 2008
@@ -102,8 +102,9 @@
     {%- if builder != 'htmlhelp' %}
     <script type="text/javascript">
       var DOCUMENTATION_OPTIONS = {
-        URL_ROOT:   '{{ pathto("", 1) }}',
-        VERSION:    '{{ release }}'
+          URL_ROOT:   '{{ pathto("", 1) }}',
+          VERSION:    '{{ release }}',
+          COLLAPSE_MODINDEX: false,
       };
     </script>
     <script type="text/javascript" src="{{ pathto('_static/jquery.js', 1) }}"></script>

Modified: doctools/trunk/sphinx/templates/modindex.html
==============================================================================
--- doctools/trunk/sphinx/templates/modindex.html	(original)
+++ doctools/trunk/sphinx/templates/modindex.html	Sun Jun 22 21:23:00 2008
@@ -1,5 +1,12 @@
 {% extends "layout.html" %}
 {% set title = 'Global Module Index' %}
+{% block extrahead %}
+{% if collapse_modindex %}
+    <script type="text/javascript">
+      DOCUMENTATION_OPTIONS.COLLAPSE_MODINDEX = true;
+    </script>
+{% endif %}
+{% endblock %}
 {% block body %}
 
    <h1 id="global-module-index">Global Module Index</h1>


More information about the Python-checkins mailing list