Thread: [Epydoc-commits] SF.net SVN: epydoc: [1185] trunk/epydoc/src/epydoc/docwriter/html_colorize.py
Brought to you by:
edloper
From: <ed...@us...> - 2006-04-07 01:07:06
|
Revision: 1185 Author: edloper Date: 2006-04-06 18:06:52 -0700 (Thu, 06 Apr 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1185&view=rev Log Message: ----------- - Turned on tooltips for linked names Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-04-07 01:06:01 UTC (rev 1184) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-04-07 01:06:52 UTC (rev 1185) @@ -670,7 +670,9 @@ #: add line numbers. ADD_LINE_NUMBERS = True - ADD_TOOLTIPS = False + #: A configuration constant, used to determine whether or not to + #: add tooltips for linked names. + ADD_TOOLTIPS = True def __init__(self, module_filename, module_name, docindex=None, api_docs=None, url_func=None): @@ -978,12 +980,12 @@ if url is None: docs = sorted(self.name_to_docs.get(toktext, [])) if docs: + tooltip='\n'.join(['%s'%d.canonical_name + for d in docs]) if len(docs) == 1: url = self.url_func(docs[0]) - tooltip='%s' % docs[0].canonical_name else: uid, onclick = self.doclink(toktext, docs) - tooltip='*.%s' % toktext # For all other tokens, look up the CSS class to use # based on the token's type. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-04-09 18:12:42
|
Revision: 1195 Author: edloper Date: 2006-04-09 11:12:40 -0700 (Sun, 09 Apr 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1195&view=rev Log Message: ----------- In source code colorizer: - Added GUESS_LINK_TARGETS config var - Added 'none of the above' option for box when you click an ambiguous name Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-04-09 18:11:11 UTC (rev 1194) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-04-09 18:12:40 UTC (rev 1195) @@ -497,8 +497,12 @@ } } -function kill_doclink() { - if (!this.contains(event.toElement)) { +function kill_doclink(id) { + if (id) { + var parent = document.getElementById(id); + parent.removeChild(parent.childNodes.item(0)); + } + else if (!this.contains(event.toElement)) { var parent = document.getElementById(this.parentID); parent.removeChild(parent.childNodes.item(0)); } @@ -553,10 +557,13 @@ //box1.appendChild(box2); box1.appendChild(shadow); shadow.appendChild(box2); - box2.innerHTML = "Which <b>"+name+"</b> do you want to see "+ - "documentation for?" + - "<ul style=\'margin-bottom: 0;\'>" + - links + "</ul>"; + box2.innerHTML = + "Which <b>"+name+"</b> do you want to see documentation for?" + + "<ul style=\'margin-bottom: 0;\'>" + + links + + "<li><a href=\'#\' style=\'text-decoration:none\' " + + "onclick=\'kill_doclink(\\""+id+"\\");return false;\'>"+ + "<i>None of the above</i></a></li></ul>"; } } ''' @@ -677,6 +684,11 @@ #: add tooltips for linked names. ADD_TOOLTIPS = True + #: If true, then try to guess which target is appropriate for + #: linked names; if false, then always open a div asking the + #: user which one they want. + GUESS_LINK_TARGETS = True + def __init__(self, module_filename, module_name, docindex=None, api_docs=None, url_func=None): """ @@ -973,7 +985,7 @@ # a function, then that function is our context, not # the namespace that contains it. [xx] this isn't always # the right thing to do. - if None not in self.context: + if None not in self.context and self.GUESS_LINK_TARGETS: container = DottedName(self.module_name, *self.context) doc = self.docindex.get_vardoc(container+toktext) if doc is not None: @@ -985,7 +997,7 @@ if docs: tooltip='\n'.join(['%s'%d.canonical_name for d in docs]) - if len(docs) == 1: + if len(docs) == 1 and self.GUESS_LINK_TARGETS: url = self.url_func(docs[0]) else: uid, onclick = self.doclink(toktext, docs) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-07-05 20:49:35
|
Revision: 1241 Author: edloper Date: 2006-07-05 13:49:30 -0700 (Wed, 05 Jul 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1241&view=rev Log Message: ----------- HTML output: - put module & class trees on separate pages. - put identifier index, term index, & bug index on separate pgaes. - various CSS changes/markup changes - Improved tree & index pages - Misc code clean-up - Doctest colorization moved to epydoc/markup/doctest.py - Various CSS changes Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-07-05 20:49:23 UTC (rev 1240) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-07-05 20:49:30 UTC (rev 1241) @@ -302,94 +302,6 @@ return u''.join(result) ###################################################################### -## Doctest block colorizer -###################################################################### - -# Regular expressions for colorize_doctestblock -_KEYWORDS = ["del", "from", "lambda", "return", "and", "or", "is", - "global", "not", "try", "break", "else", "if", "elif", - "while", "class", "except", "import", "pass", "raise", - "continue", "finally", "in", "print", "def", "for"] -_KEYWORD = '|'.join([r'(\b%s\b)' % _KW for _KW in _KEYWORDS]) -_STRING = '|'.join([r'("""("""|.*?((?!").)"""))', r'("("|.*?((?!").)"))', - r"('''('''|.*?[^\\']'''))", r"('('|.*?[^\\']'))"]) -_STRING = _STRING.replace('"', '"') # Careful with this! -_COMMENT = '(#.*?$)' -_PROMPT = r'(^\s*(>>>|\.\.\.)(\s|$))' - -_PROMPT_RE = re.compile(_PROMPT, re.MULTILINE | re.DOTALL) -'''The regular expression used to find Python prompts (">>>" and -"...") in doctest blocks.''' - -_DOCTEST_RE = re.compile('|'.join([_STRING, _COMMENT, _KEYWORD]), - re.MULTILINE | re.DOTALL) -'''The regular expression used by L{_doctest_sub} to colorize doctest -blocks.''' - -del _KEYWORDS, _KEYWORD, _STRING, _COMMENT, _PROMPT, _KW - -def colorize_doctestblock(str): - """ - @return: The HTML code for a colorized version of a given doctest - block. In particular, this identifies spans with the - following css classes: - - X{py-src}: The Python source code. - - X{py-prompt}: The ">>>" and "..." prompts. - - X{py-string}: Strings in the Python source code. - - X{py-comment}: Comments in the Python source code. - - X{py-keyword}: Keywords in the Python source code. - - X{py-output}: Python's output (lines without a prompt). - The string that is passed to colorize_doctest should already - have HTML characters escaped (e.g., C{">"} should be encoded - as C{">"}). - @type str: C{string} - @param str: The contents of the doctest block to be colorized. - @rtype: C{string} - """ - pysrc = pyout = '' - outstr = '' - for line in str.split('\n')+['\n']: - if _PROMPT_RE.match(line): - if pyout: - outstr += ('<span class="py-output">%s</span>\n\n' % - pyout.strip()) - pyout = '' - pysrc += line+'\n' - else: - if pysrc: - # Prompt over-rides other colors (incl string) - pysrc = _DOCTEST_RE.sub(_doctest_sub, pysrc) - pysrc = _PROMPT_RE.sub(r'<span class="py-prompt">'+ - r'\1</span>', pysrc) - outstr += ('<span class="py-src">%s</span>\n' - % pysrc.strip()) - pysrc = '' - pyout += line+'\n' - if pyout.strip(): - outstr += ('<span class="py-output">%s</span>\n' % - pyout.strip()) - return outstr.strip() - -def _doctest_sub(match): - """ - This helper function is used by L{colorize_doctestblock} to - add colorization to matching expressions. It is called by - C{_DOCTEST_RE.sub} with an expression that matches - C{_DOCTEST_RE}. - - @return: The HTML code for the colorized expression. - @rtype: C{string} - @see: L{_DOCTEST_RE} - """ - str = match.group() - if str[:1] == "'" or str[:6] == '"': - return '<span class="py-string">%s</span>' % str - elif str[:1] in '#': - return '<span class="py-comment">%s</span>' % str - else: - return '<span class="py-keyword">%s</span>' % str - -###################################################################### ## Python source colorizer ###################################################################### """ @@ -429,7 +341,7 @@ var indent = elt.indent; var pad = elt.pad; - var s = "<span class=\'lineno\'>"; + var s = "<span class=\'py-lineno\'>"; for (var i=0; i<pad.length; i++) { s += " " } s += "</span>"; s += " <span class=\'py-line\'>"; @@ -449,11 +361,11 @@ } function highlight(id) { var elt = document.getElementById(id+"-def"); - if (elt) elt.className = "highlight-hdr"; + if (elt) elt.className = "py-highlight-hdr"; var elt = document.getElementById(id+"-expanded"); - if (elt) elt.className = "highlight"; + if (elt) elt.className = "py-highlight"; var elt = document.getElementById(id+"-collapsed"); - if (elt) elt.className = "highlight"; + if (elt) elt.className = "py-highlight"; } function num_lines(s) { @@ -779,7 +691,7 @@ def lineno_to_html(self): template = '%%%ds' % self.linenum_size n = template % self.lineno - return '<span class="lineno">%s</span>' % n + return '<span class="py-lineno">%s</span>' % n def colorize(self): """ @@ -1119,7 +1031,7 @@ def mark_def(self, s, name): replacement = ('<a name="%s"></a><div id="%s-def">\\1' - '<a class="pysrc-toggle" href="#" id="%s-toggle" ' + '<a class="py-toggle" href="#" id="%s-toggle" ' 'onclick="toggle(\'%s\'); return false;">-</a>\\2' % (name, name, name, name)) return re.sub('(.*) (<span class="py-line">.*)\Z', replacement, s) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-07-05 22:54:43
|
Revision: 1243 Author: edloper Date: 2006-07-05 15:54:40 -0700 (Wed, 05 Jul 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1243&view=rev Log Message: ----------- - Fixed a unicode bug (if the url of a link was unicode, and the source file contained non-ascii characters, then it would fail.) Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-07-05 20:49:46 UTC (rev 1242) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-07-05 22:54:40 UTC (rev 1243) @@ -778,7 +778,10 @@ self.cur_line = [] _next_uid = 0 - + + # [xx] note -- this works with byte strings, not unicode strings! + # I may change it to use unicode eventually, but when I do it + # needs to be changed all at once. def handle_line(self, line): """ Render a single logical line from the module, and write the @@ -809,6 +812,8 @@ # Loop through each token, and colorize it appropriately. for i, (toktype, toktext) in enumerate(line): + assert type(s) is str # *not* unicode! + # For each token, determine its css class and whether it # should link to a url. css_class = None @@ -947,15 +952,22 @@ (uid, css_class_html, tooltip_html, css_class_html, onclick)) elif url: + if isinstance(url, unicode): + url = url.encode('ascii', 'xmlcharrefreplace') s += ('<a%s%s href="%s">' % (tooltip_html, css_class_html, url)) + assert type(s) is str # *not* unicode! elif css_class_html or tooltip_html: s += '<span%s%s>' % (tooltip_html, css_class_html) if i == len(line)-1: s += ' </span>' # Closes <span class="py-line"> s += cgi.escape(toktext) else: - s += self.add_line_numbers(cgi.escape(toktext), css_class) + try: + s += self.add_line_numbers(cgi.escape(toktext), css_class) + except Exception, e: + print (toktext, css_class, toktext.encode('ascii')) + raise if onclick: s += "</a></span>" if url: s += '</a>' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-08-21 05:37:45
|
Revision: 1248 Author: edloper Date: 2006-08-20 22:37:41 -0700 (Sun, 20 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1248&view=rev Log Message: ----------- - Fixed sf bug #1543572, where source code colorization would fail because names & tooltips were added as unicode. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-21 05:34:35 UTC (rev 1247) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-21 05:37:41 UTC (rev 1248) @@ -812,7 +812,14 @@ # Loop through each token, and colorize it appropriately. for i, (toktype, toktext) in enumerate(line): - assert type(s) is str # *not* unicode! + if type(s) is not str: + if type(s) is unicode: + log.error('While colorizing %s -- got unexpected ' + 'unicode string' % self.module_name) + s = s.encode('ascii', 'xmlcharrefreplace') + else: + raise ValueError('Unexpected value for s -- %s' % + type(s).__name__) # For each token, determine its css class and whether it # should link to a url. @@ -912,7 +919,7 @@ if url is None: docs = sorted(self.name_to_docs.get(toktext, [])) if docs: - tooltip='\n'.join(['%s'%d.canonical_name + tooltip='\n'.join([str(d.canonical_name) for d in docs]) if len(docs) == 1 and self.GUESS_LINK_TARGETS: url = self.url_func(docs[0]) @@ -1011,7 +1018,7 @@ return uid, onclick def doc_descr(self, doc, context): - name = doc.canonical_name.contextualize(context) + name = str(doc.canonical_name.contextualize(context)) descr = '%s %s' % (self.doc_kind(doc), name) if isinstance(doc, RoutineDoc): descr += '()' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-08-21 05:53:28
|
Revision: 1249 Author: edloper Date: 2006-08-20 22:53:23 -0700 (Sun, 20 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1249&view=rev Log Message: ----------- - Fixed sf bug #1542936 , where source code colorization would fail because doclink targets were added as unicode. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-21 05:37:41 UTC (rev 1248) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-21 05:53:23 UTC (rev 1249) @@ -963,7 +963,6 @@ url = url.encode('ascii', 'xmlcharrefreplace') s += ('<a%s%s href="%s">' % (tooltip_html, css_class_html, url)) - assert type(s) is str # *not* unicode! elif css_class_html or tooltip_html: s += '<span%s%s>' % (tooltip_html, css_class_html) if i == len(line)-1: @@ -1011,7 +1010,8 @@ container = DottedName(self.module_name, *self.context) else: container = None - targets = ['%s=%s' % (self.doc_descr(d,container), self.url_func(d)) + targets = ['%s=%s' % (str(self.doc_descr(d,container)), + str(self.url_func(d))) for d in docs] onclick = ("doclink('%s', '%s', '%s'); return false;" % (uid, name, ','.join(targets))) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-08-21 08:12:25
|
Revision: 1256 Author: edloper Date: 2006-08-21 01:12:21 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1256&view=rev Log Message: ----------- - Fixed two javascript bugs Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-21 08:11:42 UTC (rev 1255) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-21 08:12:21 UTC (rev 1256) @@ -339,8 +339,8 @@ if (elt) { elt.style.display = "block"; - var indent = elt.indent; - var pad = elt.pad; + var indent = elt.getAttribute("indent"); + var pad = elt.getAttribute("pad"); var s = "<span class=\'py-lineno\'>"; for (var i=0; i<pad.length; i++) { s += " " } s += "</span>"; @@ -393,7 +393,7 @@ function expandto(href) { var start = href.indexOf("#")+1; - if (start != 0) { + if (start != 0 && start != href.length) { if (href.substring(start, href.length) != "-") { collapse_all(4); pos = href.indexOf(".", start); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-08-21 09:06:12
|
Revision: 1257 Author: edloper Date: 2006-08-21 02:06:08 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1257&view=rev Log Message: ----------- - Made a few fixes to expand/collapse code: - functions & classes should be collapseable even if they're inside a top-level control block - functions & classes should *not* be collapseable if they're inside another function. - when finding link targets, a None in self.context should not count as giving a null-context. - When popping up a box to ask the user which of several objects with the same name they want, use full (not contextualized) names. Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-21 08:12:21 UTC (rev 1256) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-21 09:06:08 UTC (rev 1257) @@ -659,6 +659,11 @@ #: class or function definition. self.context = [] + #: A list, corresponding one-to-one with L{self.context}, + #: indicating the type of each entry. Each element of + #: C{context_types} is one of: C{'func'}, C{'class'}, C{None}. + self.context_types = [] + #: A list of indentation strings for each of the current #: block's indents. I.e., the current total indentation can #: be found by taking C{''.join(self.indents)}. @@ -672,6 +677,12 @@ #: logical line was not a class or function definition. self.def_name = None + #: The type of the class or function whose definition started + #: on the previous logical line, or C{None} if the previous + #: logical line was not a class or function definition. + #: Can be C{'func'}, C{'class'}, C{None}. + self.def_type = None + def find_line_offsets(self): """ @@ -702,9 +713,11 @@ self.pos = 0 self.cur_line = [] self.context = [] + self.context_types = [] self.indents = [] self.lineno = 1 self.def_name = None + self.def_type = None # Load the module's text. self.text = open(self.module_filename).read() @@ -795,6 +808,13 @@ # this line; or None if no funciton or class is defined. def_name = None + # def_type is the type of the function or class defined by + # this line; or None if no funciton or class is defined. + def_type = None + + # does this line start a class/func def? + starting_def_block = False + in_base_list = False in_param_list = False in_param_default = 0 @@ -834,10 +854,12 @@ in_base_list = True css_class = self.CSS_CLASSES['DEFNAME'] def_name = toktext - if None not in self.context: - cls_name = '.'.join(self.context+[def_name]) + def_type = 'class' + if 'func' not in self.context_types: + cls_name = self.context_name(def_name) url = self.name2url(cls_name) s = self.mark_def(s, cls_name) + starting_def_block = True # Is this token the function name in a function def? If # so, then make it a link back into the API docs. @@ -845,11 +867,13 @@ in_param_list = True css_class = self.CSS_CLASSES['DEFNAME'] def_name = toktext - if None not in self.context: - cls_name = '.'.join(self.context) - func_name = '.'.join(self.context+[def_name]) + def_type = 'func' + if 'func' not in self.context_types: + cls_name = self.context_name() + func_name = self.context_name(def_name) url = self.name2url(cls_name, def_name) s = self.mark_def(s, func_name) + starting_def_block = True # For each indent, update the indents list (which we use # to keep track of indentation strings) and the context @@ -859,6 +883,7 @@ elif toktype == token.INDENT: self.indents.append(toktext) self.context.append(self.def_name) + self.context_types.append(self.def_type) # When we dedent, pop the last elements off the indents # list and the context list. If the last context element @@ -866,6 +891,7 @@ # block; so write an end-div tag. elif toktype == token.DEDENT: self.indents.pop() + self.context_types.pop() if self.context.pop(): ended_def_blocks += 1 @@ -909,8 +935,9 @@ # a function, then that function is our context, not # the namespace that contains it. [xx] this isn't always # the right thing to do. - if None not in self.context and self.GUESS_LINK_TARGETS: - container = DottedName(self.module_name, *self.context) + if self.GUESS_LINK_TARGETS: + context = [n for n in self.context if n is not None] + container = DottedName(self.module_name, *context) doc = self.docindex.get_vardoc(container+toktext) if doc is not None: url = self.url_func(doc) @@ -989,27 +1016,33 @@ # Write the line. self.out(s) - if def_name and None not in self.context: + if def_name and starting_def_block: self.out('</div>') # Add div's if we're starting a def block. - if (self.ADD_DEF_BLOCKS and def_name and - (line[-2][1] == ':') and None not in self.context): + if (self.ADD_DEF_BLOCKS and def_name and starting_def_block and + (line[-2][1] == ':')): indentation = (''.join(self.indents)+' ').replace(' ', '+') linenum_padding = '+'*self.linenum_size - name='.'.join(self.context+[def_name]) + name=self.context_name(def_name) self.out(self.START_DEF_BLOCK % (name, linenum_padding, indentation, name)) self.def_name = def_name + self.def_type = def_type + def context_name(self, extra=None): + pieces = [n for n in self.context if n is not None] + if extra is not None: pieces.append(extra) + return '.'.join(pieces) + def doclink(self, name, docs): uid = 'link-%s' % self._next_uid self._next_uid += 1 - if None not in self.context: - container = DottedName(self.module_name, *self.context) - else: - container = None + context = [n for n in self.context if n is not None] + container = DottedName(self.module_name, *context) + #else: + # container = None targets = ['%s=%s' % (str(self.doc_descr(d,container)), str(self.url_func(d))) for d in docs] @@ -1018,7 +1051,7 @@ return uid, onclick def doc_descr(self, doc, context): - name = str(doc.canonical_name.contextualize(context)) + name = str(doc.canonical_name) descr = '%s %s' % (self.doc_kind(doc), name) if isinstance(doc, RoutineDoc): descr += '()' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ed...@us...> - 2006-08-23 15:02:19
|
Revision: 1304 Author: edloper Date: 2006-08-23 08:01:24 -0700 (Wed, 23 Aug 2006) ViewCVS: http://svn.sourceforge.net/epydoc/?rev=1304&view=rev Log Message: ----------- - Turned off GUESS_LINK_TARGETS flag in source code colorizer. - Optimized code that guesses link targets, to make it run faster. (Based on a patch provided by Daniel von Dincklage.) Modified Paths: -------------- trunk/epydoc/src/epydoc/docwriter/html_colorize.py Modified: trunk/epydoc/src/epydoc/docwriter/html_colorize.py =================================================================== --- trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-23 14:59:28 UTC (rev 1303) +++ trunk/epydoc/src/epydoc/docwriter/html_colorize.py 2006-08-23 15:01:24 UTC (rev 1304) @@ -598,7 +598,7 @@ #: If true, then try to guess which target is appropriate for #: linked names; if false, then always open a div asking the #: user which one they want. - GUESS_LINK_TARGETS = True + GUESS_LINK_TARGETS = False def __init__(self, module_filename, module_name, docindex=None, url_func=None, name_to_docs=None): @@ -938,15 +938,18 @@ if (self.GUESS_LINK_TARGETS and self.docindex is not None and self.url_func is not None): context = [n for n in self.context if n is not None] - container = DottedName(self.module_name, *context) - doc = self.docindex.get_vardoc(container+toktext) - if doc is not None: - url = self.url_func(doc) + container = self.docindex.get_vardoc( + DottedName(self.module_name, *context)) + if isinstance(container, NamespaceDoc): + doc = container.variables.get(toktext) + if doc is not None: + url = self.url_func(doc) + tooltip = str(doc.canonical_name) # Otherwise, check the name_to_docs index to see what # else this name might refer to. if (url is None and self.name_to_docs is not None and self.url_func is not None): - docs = self.name_to_docs.get(toktext, []) + docs = self.name_to_docs.get(toktext) if docs: tooltip='\n'.join([str(d.canonical_name) for d in docs]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |