[wwwsearch-commits] r31958 - wwwsearch/release_scripts
jjlee at codespeak.net
jjlee at codespeak.net
Sat Sep 2 21:22:53 CEST 2006
Author: jjlee
Date: Sat Sep 2 21:22:52 2006
New Revision: 31958
Modified:
wwwsearch/release_scripts/epydocsimplehtml.py
Log:
22
Modified: wwwsearch/release_scripts/epydocsimplehtml.py
==============================================================================
--- wwwsearch/release_scripts/epydocsimplehtml.py (original)
+++ wwwsearch/release_scripts/epydocsimplehtml.py Sat Sep 2 21:22:52 2006
@@ -1,3 +1,5 @@
+# This is a hacked copy of epydoc's html.py, that writes simpler HTML
+
#
# epydoc -- HTML output generator
# Edward Loper
@@ -29,6 +31,71 @@
from epydoc.util import plaintext_to_html, is_src_filename
from epydoc.compat import * # Backwards compatibility
+class MechanizeNameHelper:
+
+
+ # things docutils HTML formatter does that we want to get rid of:
+
+ # (most of this is achieved via hacking of this file, copied from epydoc,
+ # but this class helps out with those hacks)
+
+ # private module names in links to class doc pages
+ # private module names in breadcrumbs
+ # modules pages (apart from mechanize-module.html)
+ # in mechanize-module.html, remove "submodules" listing at the top
+ # frames.html (also need to remove link to frameset / non-frameset versions at top)
+ # index.html
+ # toc.html
+ # toc-everything.html
+ # toc-*.html
+ # non-mechanize source code
+ # module-tree.html (also need to hack bar at the top to s/Trees/Tree/)
+ # indices (also need to hack bar at the top to remove Indices link)
+ # help.html (also need to remove help link at the top)
+ # private module names in HTML file names
+ # private module names in class trees
+
+ def __init__(self):
+ self._names = set()
+ add = self._names.add
+ import mechanize
+ private_modules = [m[:-3] for m in
+ os.listdir(os.path.dirname(mechanize.__file__)) if
+ m.startswith("_") and m.endswith(".py")]
+ for name in private_modules:
+ add(name)
+
+ def want_source_code(self, cname):
+ return cname[0] == 'mechanize'
+
+ def private_name(self, cname):
+ try:
+ module_name = cname[1]
+ except IndexError:
+ return False
+ else:
+ return module_name.startswith("_")
+
+ def munge(self, label):
+ # Munge to remove private modules
+ if label.startswith("mechanize."):
+ label = label[len("mechanize."):]
+
+ if not label.startswith("_"):
+ return label
+
+ names = self._names
+ ii = label.find(".")
+ if ii < 0:
+ return label
+
+ first_part = label[:ii]
+ if first_part not in names:
+ return label
+
+ return 'mechanize'+label[ii:]
+munger = MechanizeNameHelper()
+
######################################################################
## Template Compiler
######################################################################
@@ -391,8 +458,9 @@
be included in the index."""
# URL for 'trees' page
- if self.module_list: self._trees_url = 'module-tree.html'
- else: self._trees_url = 'class-tree.html'
+## if self.module_list: self._trees_url = 'module-tree.html'
+## else: self._trees_url = 'class-tree.html'
+ self._trees_url = 'class-tree.html'
# Construct the value for self.indexed_docs.
self.indexed_docs += [d for d in valdocs
@@ -417,7 +485,8 @@
# reporting).
self.modules_with_sourcecode = set()
for doc in self.module_list:
- if isinstance(doc, ModuleDoc) and is_src_filename(doc.filename):
+ if (isinstance(doc, ModuleDoc) and is_src_filename(doc.filename) and
+ munger.want_source_code(doc.canonical_name)):
self.modules_with_sourcecode.add(doc)
self._num_files = (len(self.class_list) + 2*len(self.module_list) +
11 + len(self.METADATA_INDICES))
@@ -526,75 +595,76 @@
for (name, label, label2) in self.METADATA_INDICES:
indices[name] = self.build_metadata_index(name)
- # Write the identifier index. If requested, split it into
- # separate pages for each letter.
- ident_by_letter = self._group_by_letter(indices['ident'])
- if not self._split_ident_index:
- self._write(self.write_link_index, directory,
- 'identifier-index.html', indices,
- 'Identifier Index', 'identifier-index.html',
- ident_by_letter)
- else:
- # Write a page for each section.
- for letter in self.LETTERS:
- filename = 'identifier-index-%s.html' % letter
- self._write(self.write_link_index, directory, filename,
- indices, 'Identifier Index', filename,
- ident_by_letter, [letter],
- 'identifier-index-%s.html')
- # Use the first non-empty section as the main index page.
- for letter in self.LETTERS:
- if letter in ident_by_letter:
- filename = 'identifier-index.html'
- self._write(self.write_link_index, directory, filename,
- indices, 'Identifier Index', filename,
- ident_by_letter, [letter],
- 'identifier-index-%s.html')
- break
-
- # Write the term index.
- if indices['term']:
- term_by_letter = self._group_by_letter(indices['term'])
- self._write(self.write_link_index, directory, 'term-index.html',
- indices, 'Term Definition Index',
- 'term-index.html', term_by_letter)
- else:
- self._files_written += 1 # (skipped)
-
- # Write the metadata indices.
- for (name, label, label2) in self.METADATA_INDICES:
- if indices[name]:
- self._write(self.write_metadata_index, directory,
- '%s-index.html' % name, indices, name,
- label, label2)
- else:
- self._files_written += 1 # (skipped)
-
- # Write the trees file (package & class hierarchies)
- if self.module_list:
- self._write(self.write_module_tree, directory, 'module-tree.html')
- else:
- self._files_written += 1 # (skipped)
+## # Write the identifier index. If requested, split it into
+## # separate pages for each letter.
+## ident_by_letter = self._group_by_letter(indices['ident'])
+## if not self._split_ident_index:
+## self._write(self.write_link_index, directory,
+## 'identifier-index.html', indices,
+## 'Identifier Index', 'identifier-index.html',
+## ident_by_letter)
+## else:
+## # Write a page for each section.
+## for letter in self.LETTERS:
+## filename = 'identifier-index-%s.html' % letter
+## self._write(self.write_link_index, directory, filename,
+## indices, 'Identifier Index', filename,
+## ident_by_letter, [letter],
+## 'identifier-index-%s.html')
+## # Use the first non-empty section as the main index page.
+## for letter in self.LETTERS:
+## if letter in ident_by_letter:
+## filename = 'identifier-index.html'
+## self._write(self.write_link_index, directory, filename,
+## indices, 'Identifier Index', filename,
+## ident_by_letter, [letter],
+## 'identifier-index-%s.html')
+## break
+
+## # Write the term index.
+## if indices['term']:
+## term_by_letter = self._group_by_letter(indices['term'])
+## self._write(self.write_link_index, directory, 'term-index.html',
+## indices, 'Term Definition Index',
+## 'term-index.html', term_by_letter)
+## else:
+## self._files_written += 1 # (skipped)
+
+## # Write the metadata indices.
+## for (name, label, label2) in self.METADATA_INDICES:
+## if indices[name]:
+## self._write(self.write_metadata_index, directory,
+## '%s-index.html' % name, indices, name,
+## label, label2)
+## else:
+## self._files_written += 1 # (skipped)
+
+## # Write the trees file (package & class hierarchies)
+## if self.module_list:
+## self._write(self.write_module_tree, directory, 'module-tree.html')
+## else:
+## self._files_written += 1 # (skipped)
if self.class_list:
self._write(self.write_class_tree, directory, 'class-tree.html')
else:
self._files_written += 1 # (skipped)
# Write the help file.
- self._write(self.write_help, directory,'help.html')
+## self._write(self.write_help, directory,'help.html')
# Write the frames-based table of contents.
- self._write(self.write_frames_index, directory, 'frames.html')
- self._write(self.write_toc, directory, 'toc.html')
- self._write(self.write_project_toc, directory, 'toc-everything.html')
- for doc in self.module_list:
- filename = 'toc-%s' % urllib.unquote(self.url(doc))
- self._write(self.write_module_toc, directory, filename, doc)
+## self._write(self.write_frames_index, directory, 'frames.html')
+## self._write(self.write_toc, directory, 'toc.html')
+## self._write(self.write_project_toc, directory, 'toc-everything.html')
+## for doc in self.module_list:
+## filename = 'toc-%s' % urllib.unquote(self.url(doc))
+## self._write(self.write_module_toc, directory, filename, doc)
# Write the object documentation.
for doc in self.module_list:
- filename = urllib.unquote(self.url(doc))
- self._write(self.write_module, directory, filename, doc)
+ if doc.is_package is True:
+ filename = urllib.unquote(self.url(doc))
+ self._write(self.write_module, directory, filename, doc)
for doc in self.class_list:
filename = urllib.unquote(self.url(doc))
self._write(self.write_class, directory, filename, doc)
@@ -620,9 +690,9 @@
# Write the index.html files.
# (this must be done last, since it might copy another file)
- self._files_written += 1
- log.progress(self._files_written/self._num_files, 'index.html')
- self.write_homepage(directory)
+## self._files_written += 1
+## log.progress(self._files_written/self._num_files, 'index.html')
+## self.write_homepage(directory)
# Report any failed crossreferences
if self._failed_xrefs:
@@ -705,7 +775,7 @@
self.write_standard_fields(out, doc)
# If it's a package, then list the modules it contains.
- if doc.is_package is True:
+ if 0:#doc.is_package is True:
self.write_module_list(out, doc)
# Write summary tables describing the variables that the
@@ -927,7 +997,7 @@
self.write_header(out, title)
self.write_navbar(out, 'trees')
self.write_breadcrumbs(out, 'trees', url)
- if self.class_list and self.module_list:
+ if 0:#self.class_list and self.module_list:
out('<center><b>\n')
out(' [ <a href="module-tree.html">Module Hierarchy</a>\n')
out(' | <a href="class-tree.html">Class Hierarchy</a> ]\n')
@@ -1635,28 +1705,10 @@
<!-- Tree link -->
>>> if context == "trees":
<th bgcolor="#70b0f0" class="navbar-select"
- > Trees </th>
- >>> else:
- <th> <a
- href="$self._trees_url$">Trees</a> </th>
- >>> #endif
-
- <!-- Index link -->
- >>> if context == "indices":
- <th bgcolor="#70b0f0" class="navbar-select"
- > Indices </th>
- >>> else:
- <th> <a
- href="identifier-index.html">Indices</a> </th>
- >>> #endif
-
- <!-- Help link -->
- >>> if context == "help":
- <th bgcolor="#70b0f0" class="navbar-select"
- > Help </th>
+ > Tree </th>
>>> else:
<th> <a
- href="help.html">Help</a> </th>
+ href="$self._trees_url$">Tree</a> </th>
>>> #endif
>>> if self._prj_link:
@@ -1715,10 +1767,6 @@
>>> if self._show_private:
<tr><td align="right">$self.PRIVATE_LINK$</td></tr>
>>> #endif
- <tr><td align="right"><span class="options"
- >[<a href="frames.html" target="_top">frames</a
- >] | <a href="$context_url$"
- target="_top">no frames</a>]</span></td></tr>
</table>
</td>
</tr>
@@ -1744,7 +1792,9 @@
else:
label = self._crumb(container)
name = container.canonical_name
- crumbs.insert(0, self.href(container, label)) # [xx] code=0??
+ #if self.doc_kind(container) != 'Module':
+ if not munger.private_name(name):
+ crumbs.insert(0, self.href(container, label)) # [xx] code=0??
doc = container
def _crumb(self, doc):
@@ -2453,7 +2503,7 @@
else: s = ''
for i in range(len(bases)-1, -1, -1):
base = bases[i]
- label = self.contextual_label(base, context)
+ label = munger.munge(self.contextual_label(base, context))
s = (' '*(width-4-len(label)) + self.href(base, label)
+' --+'+postfix+'\n' +
' '*(width-4) +
@@ -2925,11 +2975,11 @@
# Module: <canonical_name>-module.html
if isinstance(obj, ModuleDoc):
if obj not in self.module_set: return None
- return urllib.quote('%s'%obj.canonical_name) + '-module.html'
+ return urllib.quote(munger.munge('%s'%obj.canonical_name)) + '-module.html'
# Class: <canonical_name>-class.html
elif isinstance(obj, ClassDoc):
if obj not in self.class_set: return None
- return urllib.quote('%s'%obj.canonical_name) + '-class.html'
+ return urllib.quote(munger.munge('%s'%obj.canonical_name)) + '-class.html'
# Variable
elif isinstance(obj, VariableDoc):
val_doc = obj.value
@@ -2991,7 +3041,7 @@
elif isinstance(api_doc, ModuleDoc):
if api_doc in self.modules_with_sourcecode:
return ('%s-pysrc.html' %
- urllib.quote('%s' % api_doc.canonical_name))
+ urllib.quote(munger.munge('%s' % api_doc.canonical_name)))
else:
return None
else:
@@ -3045,6 +3095,7 @@
if label.startswith('??'):
label = '<i>unreachable</i>' + label[2:]
label = re.sub(r'-\d+$', '', label)
+ label = munger.munge(label)
# Get the url for the target.
url = self.url(target)
More information about the wwwsearch-commits
mailing list