From d3d93a54f0c8eab661e4ff43450fb5b04ffb1f05 Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Wed, 26 May 2010 19:29:44 +0200 Subject: [PATCH] Test the viewcode extension; decode the source files before highlighting them. --- sphinx/ext/viewcode.py | 9 ++++++--- tests/root/conf.py | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/sphinx/ext/viewcode.py b/sphinx/ext/viewcode.py index ac2a957fe..d8b649da9 100644 --- a/sphinx/ext/viewcode.py +++ b/sphinx/ext/viewcode.py @@ -31,7 +31,7 @@ def doctree_read(app, doctree): env._viewcode_modules[modname] = False return analyzer.find_tags() - entry = analyzer.code, analyzer.tags, {} + entry = analyzer.code.decode(analyzer.encoding), analyzer.tags, {} env._viewcode_modules[modname] = entry elif entry is False: return @@ -41,7 +41,7 @@ def doctree_read(app, doctree): return True for objnode in doctree.traverse(addnodes.desc): - if objnode['domain'] != 'py': + if objnode.get('domain') != 'py': continue names = set() for signode in objnode: @@ -87,7 +87,10 @@ def collect_pages(app): app.builder.info(' (%d module code pages)' % len(env._viewcode_modules), nonl=1) - for modname, (code, tags, used) in env._viewcode_modules.iteritems(): + for modname, entry in env._viewcode_modules.iteritems(): + if not entry: + continue + code, tags, used = entry # construct a page name for the highlighted source pagename = '_modules/' + modname.replace('.', '/') # highlight the source using the builder's highlighter diff --git a/tests/root/conf.py b/tests/root/conf.py index 0a08076db..2b6d6a9af 100644 --- a/tests/root/conf.py +++ b/tests/root/conf.py @@ -7,7 +7,7 @@ sys.path.append(os.path.abspath('.')) extensions = ['sphinx.ext.autodoc', 'sphinx.ext.jsmath', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.autosummary', 'sphinx.ext.doctest', 'sphinx.ext.extlinks', - 'sphinx.ext.oldcmarkup', 'ext'] + 'sphinx.ext.viewcode', 'sphinx.ext.oldcmarkup', 'ext'] jsmath_path = 'dummy.js'