From dca8960e21273ed8100fa1fdaeab99ccf141a1f3 Mon Sep 17 00:00:00 2001 From: mikl <> Date: Tue, 6 May 2008 07:53:08 +0000 Subject: Imported JS documentor jGrouseDoc-2.0 --- buildscripts/jGrouseDoc/skins/common/js/jgindex.js | 96 ++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 buildscripts/jGrouseDoc/skins/common/js/jgindex.js (limited to 'buildscripts/jGrouseDoc/skins/common/js/jgindex.js') diff --git a/buildscripts/jGrouseDoc/skins/common/js/jgindex.js b/buildscripts/jGrouseDoc/skins/common/js/jgindex.js new file mode 100644 index 00000000..5a0bf2de --- /dev/null +++ b/buildscripts/jGrouseDoc/skins/common/js/jgindex.js @@ -0,0 +1,96 @@ +/** + * Script that builds jGrouseDoc Index Page + * Copyright (c) 2007 by Robert Kieffer and jGrouseDoc contributors + * $Id: jgindex.js 303 2007-12-24 22:52:30Z denis.riabtchik $ + */ + +var jgindex = { + load: function() { + // Sort data by localName + jgindex.data.sort(function(a,b) { + var c = (a.localName || a.fullName).toLowerCase(); + var d = (b.localName || b.fullName).toLowerCase(); + return c < d ? -1 : (c > d ? 1 : 0); + }); + + // Now render the index + jgindex.renderEntries(); + }, + + renderEntries: function() { + var h = []; + + // Use a DL, since this is the most semantically correct structure + h.push('
'); + + // Hash to track which letters have entries + var letters = {}; + + // Loop through each entry + for (var i = 0; i < jgindex.data.length; i++) { + var entry = jgindex.data[i]; + + // Get name/url for the entry's namespace + var srcName = entry.parent; + var srcLink = entry.ref.replace(/#.*/, ''); + + // Apply odd/even classname (makes styling even/odd rows easy) + var cn = [(i % 2) ? 'odd' : 'even']; + cn.push(/^(class|interface|struct|object)/.test(entry.summary) ? 'is_namespace' : 'is_not_namespace'); + + // Get the entry's first letter + var ln = entry.localName || entry.fullName || '_unnamed'; + var letter = ln.charAt(0).toUpperCase(); + + // ... and see if it's the first one for that letter + if (!letters[letter]) { + letters[letter] = true; + } else { + letter = null; + } + + // ... and if it is, render the section header + if (letter) { + h.push('

' + letter + '

'); + } + + // Render the entry's HTML + cn = cn.join(' '); + h.push( + '
' + + '' + ln + '' + + '
' + + '
' + + '' + srcName + '' + + '
' + ); + } + h.push('
'); + + // Stick it all into the element + document.getElementById('index').innerHTML = h.join('\n'); + + // Render the letters table-of-contents at the top + h = []; + var toc = '$_ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + for (var i = 0; i < toc.length; i++) { + var letter = toc.charAt(i); + h.push(letters[letter] ? + '' + letter + '' : + '' + letter + '' + ); + } + document.getElementById('toc').innerHTML = h.join('\n'); + } +} + + +// Hack so we can get access to the index data +var jgdoc = { + Searcher: { + setData: function(data) { + jgindex.data = data; + jgindex.load(); + } + } +} -- cgit v1.2.3