[Synopsis-changes] Synopsis/Synopsis/Synopsis/Formatters/HTML/Pages DirBrowse.py,1.11,1.12 FileSource.py,1.7,1.8 FileTreeJS.py,1.10,1.11 FramesIndex.py,1.10,1.11 InheritanceGraph.py,1.27,1.28 InheritanceTree.py,1.13,1.14 JSTree.py,1.6,1.7 ModuleIndexer.py,1.16,1.17 ModuleListing.py,1.14,1.15 ModuleListingJS.py,1.12,1.13 NameIndex.py,1.13,1.14 RawFilePages.py,1.9,1.10 ScopePages.py,1.23,1.24 XRefPages.py,1.13,1.14
Stefan Seefeld stefan at synopsis.fresco.orgSat Nov 15 19:01:55 UTC 2003
- Previous message: [Synopsis-changes] Synopsis/Synopsis/Synopsis/Formatters/HTML ASTFormatter.py,1.35,1.36 Formatter.py,1.5,1.6
- Next message: [Synopsis-changes] Synopsis/Synopsis/Synopsis/Formatters/HTML/Pages RawFilePages.py,1.10,1.11
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages
In directory frida:/tmp/cvs-serv3771/Synopsis/Formatters/HTML/Pages
Modified Files:
DirBrowse.py FileSource.py FileTreeJS.py FramesIndex.py
InheritanceGraph.py InheritanceTree.py JSTree.py
ModuleIndexer.py ModuleListing.py ModuleListingJS.py
NameIndex.py RawFilePages.py ScopePages.py XRefPages.py
Log Message:
more work to get rid of core.py
Index: DirBrowse.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/DirBrowse.py,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -p -d -r1.11 -r1.12
--- DirBrowse.py 14 Nov 2003 17:39:04 -0000 1.11
+++ DirBrowse.py 15 Nov 2003 19:01:53 -0000 1.12
@@ -48,7 +48,6 @@ class DirBrowse(Page):
self.__filename = self.processor.file_layout.nameOfSpecial('dir')
self.__title = 'Directory Listing'
self.__start = self.__base = processor.output
- #if not self.__base: return
processor.set_main_page(self.__filename)
self.processor.addRootPage(self.__filename, 'Files', 'main', 2)
Index: FileSource.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/FileSource.py,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -p -d -r1.7 -r1.8
--- FileSource.py 14 Nov 2003 17:39:04 -0000 1.7
+++ FileSource.py 15 Nov 2003 19:01:53 -0000 1.8
@@ -110,7 +110,7 @@ class FileSource(Page):
f_link = self.linkpath%source
#print "file: %s link: %s out: %s"%(f_in, f_link, f_out)
try:
- link.link(toclist, f_in, f_out, f_link, self.scope) #, config.types)
+ link.link(toclist, f_in, f_out, f_link, self.scope)
except link.error, msg:
print "An error occurred:",msg
try:
Index: FileTreeJS.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/FileTreeJS.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -p -d -r1.10 -r1.11
--- FileTreeJS.py 14 Nov 2003 14:51:09 -0000 1.10
+++ FileTreeJS.py 15 Nov 2003 19:01:53 -0000 1.11
@@ -7,23 +7,23 @@
# see the file COPYING for details.
#
+from Synopsis import config
from Synopsis.Processor import Parameter
from Synopsis import AST, Util
from JSTree import JSTree
-from Synopsis.Formatters.HTML.core import config
from Synopsis.Formatters.HTML.Tags import *
import os
class FileTree(JSTree):
+ link_to_pages = Parameter(False, 'some docs...')
+
def register(self, processor):
JSTree.register(self, processor)
filename = self.processor.file_layout.nameOfSpecial('FileTree')
self.processor.addRootPage(filename, 'File Tree', 'contents', 2)
- myconfig = config.obj.FileTree
- self._link_pages = myconfig.link_to_pages
def filename(self):
"""since FileTree generates a whole file hierarchy, this method returns the current filename,
@@ -50,10 +50,10 @@ class FileTree(JSTree):
self.start_file(filename, 'File Tree')
self.write(self.processor.formatHeader(filename, 2))
# recursively visit all nodes
- self.processFileTreeNode(config.fileTree.root())
+ self.processFileTreeNode(self.processor.fileTree.root())
self.end_file()
# recursively create all node pages
- self.processFileTreeNodePage(config.fileTree.root())
+ self.processFileTreeNodePage(self.processor.fileTree.root())
def _node_sorter(self, a, b):
a_leaf = hasattr(a, 'decls')
@@ -99,7 +99,7 @@ class FileTree(JSTree):
self.start_file()
self.write(entity('b', string.join(name, os.sep))+'<br>')
- if self._link_pages:
+ if self.link_to_pages:
link = self.processor.file_layout.nameOfScopedSpecial('page', name)
self.write(href(link, '[Source]', target="main")+'<br>')
for name, decl in node.decls.items():
Index: FramesIndex.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/FramesIndex.py,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -p -d -r1.10 -r1.11
--- FramesIndex.py 14 Nov 2003 14:51:09 -0000 1.10
+++ FramesIndex.py 15 Nov 2003 19:01:53 -0000 1.11
@@ -8,7 +8,6 @@
#
from Synopsis.Formatters.HTML.Page import Page
-from Synopsis.Formatters.HTML.core import config
from Synopsis.Formatters.HTML.Tags import *
import os
@@ -19,7 +18,7 @@ class FramesIndex(Page):
def register(self, processor):
Page.register(self, processor)
- config.set_main_page(self.filename())
+ processor.set_main_page(self.filename())
def filename(self): return self.processor.file_layout.nameOfIndex()
@@ -31,8 +30,8 @@ class FramesIndex(Page):
me = self.filename()
# TODO use project name..
self.start_file(body='')
- fcontents = rel(me, config.page_contents)
- findex = rel(me, config.page_index)
+ fcontents = rel(me, self.processor.contents_page)
+ findex = rel(me, self.processor.index_page)
# Find something to link to
fglobal = findex
decls = [start]
Index: InheritanceGraph.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/InheritanceGraph.py,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -p -d -r1.27 -r1.28
--- InheritanceGraph.py 14 Nov 2003 14:51:09 -0000 1.27
+++ InheritanceGraph.py 15 Nov 2003 19:01:53 -0000 1.28
@@ -10,18 +10,22 @@
from Synopsis.Processor import Parameter
from Synopsis import AST, Type, Util
from Synopsis.Formatters.HTML.Page import Page
-from Synopsis.Formatters.HTML.core import config
from Synopsis.Formatters.HTML.Tags import *
import os
-class ToDecl(Type.Visitor):
+class DeclarationFinder(Type.Visitor):
+ def __init__(self, types, verbose):
+
+ self.types = types
+ self.verbose = verbose
+
def __call__(self, name):
try:
- typeobj = config.types[name]
+ typeobj = self.types[name]
except KeyError:
# Eg: Unknown parent which has been NameMapped
- #if config.verbose: print "Warning: %s not found in types dict."%(name,)
+ if self.verbose: print "Warning: %s not found in type dict."%(name,)
return None
self.__decl = None
typeobj.accept(self)
@@ -58,7 +62,7 @@ class InheritanceGraph(Page):
def register(self, processor):
Page.register(self, processor)
- self.__todecl = ToDecl()
+ self.decl_finder = DeclarationFinder(processor.ast.types(), processor.verbose)
self.processor.addRootPage(self.filename(), 'Inheritance Graph', 'main', 1)
def filename(self): return self.processor.file_layout.nameOfSpecial('InheritanceGraph')
@@ -116,7 +120,7 @@ class InheritanceGraph(Page):
# Create a toc file for Dot to use
toc_file = filename + "-dot.toc"
self.processor.toc.store(toc_file)
- graphs = config.classTree.graphs()
+ graphs = self.processor.classTree.graphs()
count = 0
# Consolidate the graphs, and sort to make the largest appear first
lensorter = lambda a, b: cmp(len(b),len(a))
@@ -130,21 +134,22 @@ class InheritanceGraph(Page):
self.write('<div class="inheritance-group">')
scoped_name = string.split(name,'::')
type_str = ''
- if core.config.types.has_key(scoped_name):
- type = core.config.types[scoped_name]
- if isinstance(type, Type.Declared):
- type_str = type.declaration().type() + ' '
+ types = self.processor.ast.types()
+ type = types.get(scoped_name, None)
+ if isinstance(type, Type.Declared):
+ type_str = type.declaration().type() + ' '
self.write('Graphs in '+type_str+name+':<br>')
for graph in graphs:
try:
if core.verbose: print "Creating graph #%s - %s classes"%(count,len(graph))
# Find declarations
- declarations = map(self.__todecl, graph)
+ declarations = map(self.decl_finder, graph)
declarations = filter(lambda x: x is not None, declarations)
# Call Dot formatter
- output = os.path.join(config.basename, os.path.splitext(self.filename())[0]) + '-%s'%count
+ output = os.path.join(self.processor.output,
+ os.path.splitext(self.filename())[0]) + '-%s'%count
dot = Dot.Formatter()
- ast = AST.AST({}, declarations, config.types)
+ ast = AST.AST({}, declarations, self.processor.ast.types())
dot.process(ast,
output=output,
format='html',
Index: InheritanceTree.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/InheritanceTree.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -d -r1.13 -r1.14
--- InheritanceTree.py 14 Nov 2003 14:51:09 -0000 1.13
+++ InheritanceTree.py 15 Nov 2003 19:01:53 -0000 1.14
@@ -10,7 +10,6 @@
from Synopsis.Processor import Parameter
from Synopsis import Util
from Synopsis.Formatters.HTML.Page import Page
-from Synopsis.Formatters.HTML.core import config
from Synopsis.Formatters.HTML.Tags import *
import os
@@ -29,7 +28,7 @@ class InheritanceTree(Page):
def process(self, start):
"""Creates a file with the inheritance tree"""
- roots = config.classTree.roots()
+ roots = self.processor.classTree.roots()
self.start_file()
self.write(self.processor.formatHeader(self.filename()))
self.write(entity('h1', "Inheritance Tree"))
@@ -42,10 +41,10 @@ class InheritanceTree(Page):
name, rel_name = args
self.write('<li>')
self.write(self.reference(name, rel_name))
- parents = config.classTree.superclasses(name)
+ parents = self.processor.classTree.superclasses(name)
if parents:
self.write(' <i>(%s)</i>'%string.join(map(Util.ccolonName, parents), ", "))
- subs = config.classTree.subclasses(name)
+ subs = self.processor.classTree.subclasses(name)
if subs:
self.write('<ul>')
map(self.process_class_inheritance, map(lambda a,b=name:(a,b), subs))
Index: JSTree.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/JSTree.py,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -p -d -r1.6 -r1.7
--- JSTree.py 14 Nov 2003 14:51:09 -0000 1.6
+++ JSTree.py 15 Nov 2003 19:01:53 -0000 1.7
@@ -8,9 +8,8 @@
#
from Synopsis.Processor import Parameter
-from Page import Page
-from core import config
-from Tags import *
+from Synopsis.Formatter.HTML.Page import Page
+from Synopsis.Formatter.HTML.Tags import *
#The javascript that goes up the top
top_js = """<script language="JavaScript1.2"><!--
Index: ModuleIndexer.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/ModuleIndexer.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -p -d -r1.16 -r1.17
--- ModuleIndexer.py 14 Nov 2003 14:51:09 -0000 1.16
+++ ModuleIndexer.py 15 Nov 2003 19:01:53 -0000 1.17
@@ -10,7 +10,6 @@
from Synopsis.Processor import Parameter
from Synopsis import AST, Util
from Synopsis.Formatters.HTML.Page import Page
-from Synopsis.Formatters.HTML.core import config
from Synopsis.Formatters.HTML.Tags import *
import os
@@ -24,9 +23,9 @@ class ModuleIndexer(Page):
"""Register first page as index page"""
Page.register(self, processor)
- config.set_using_module_index()
+ processor.set_using_module_index()
self.__filename = self.processor.file_layout.nameOfModuleIndex(())
- config.set_index_page(self.__filename)
+ processor.set_index_page(self.__filename)
def filename(self): return self.__filename
@@ -36,7 +35,7 @@ class ModuleIndexer(Page):
"""Creates indexes for all modules"""
start_file = self.processor.file_layout.nameOfModuleIndex(start.name())
- config.set_index_page(start_file)
+ self.processor.set_index_page(start_file)
self.__namespaces = [start]
while self.__namespaces:
ns = self.__namespaces.pop(0)
@@ -60,9 +59,10 @@ class ModuleIndexer(Page):
def processNamespaceIndex(self, ns):
"Index one module"
- config.sorter.set_scope(ns)
- config.sorter.sort_section_names()
- config.sorter.sort_sections()
+ sorter = self.processor.sorter
+ sorter.set_scope(ns)
+ sorter.sort_section_names()
+ sorter.sort_sections()
self.__filename = self.processor.file_layout.nameOfModuleIndex(ns.name())
self.__title = Util.ccolonName(ns.name()) or 'Global Namespace'
@@ -87,12 +87,12 @@ class ModuleIndexer(Page):
self.write(entity('script', load_script, type='text/javascript'))
# Loop throught all the types of children
- for section in config.sorter.sections():
+ for section in sorter.sections():
if section[-1] == 's': heading = section+'es'
else: heading = section+'s'
heading = '<br>'+entity('i', heading)+'<br>'
# Get a list of children of this type
- for child in config.sorter.children(section):
+ for child in sorter.children(section):
# Print out summary for the child
if not isinstance(child, AST.Scope):
continue
@@ -117,6 +117,6 @@ class ModuleIndexer(Page):
self.end_file()
# Queue child namespaces
- for child in config.sorter.children():
+ for child in sorter.children():
if isinstance(child, AST.Module):
self.__namespaces.append(child)
Index: ModuleListing.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/ModuleListing.py,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -p -d -r1.14 -r1.15
--- ModuleListing.py 14 Nov 2003 14:51:09 -0000 1.14
+++ ModuleListing.py 15 Nov 2003 19:01:53 -0000 1.15
@@ -10,7 +10,6 @@
from Synopsis.Processor import Parameter
from Synopsis import AST, Util
from Synopsis.Formatters.HTML.Page import Page
-from Synopsis.Formatters.HTML.core import config
from Synopsis.Formatters.HTML.Tags import *
import os
@@ -19,14 +18,14 @@ class ModuleListing(Page):
"""Create an index of all modules."""
short_title = Parameter('Modules', 'short title')
+ child_types = Parameter(None, 'the types of children to include')
def register(self, processor):
Page.register(self, processor)
- self.child_types = None
self._children_cache = {}
filename = self.filename()
- config.set_contents_page(filename)
+ processor.set_contents_page(filename)
self.processor.addRootPage(filename, self.short_title, 'contents', 2)
self._link_target = 'index'
@@ -39,9 +38,6 @@ class ModuleListing(Page):
# Init tree
self.tree = self.processor.tree_formatter
self.tree.register(self)
- # Init list of module types to display
- try: self.child_types = config.obj.ModuleListing.child_types
- except AttributeError: pass
# Create the file
self.start_file()
self.write(self.processor.formatHeader(self.filename(), 2))
@@ -69,9 +65,11 @@ class ModuleListing(Page):
try: return self._children_cache[decl]
except KeyError: pass
- config.sorter.set_scope(decl)
- config.sorter.sort_sections()
- children = config.sorter.children()
+
+ sorter = self.processor.sorter
+ sorter.set_scope(decl)
+ sorter.sort_sections()
+ children = sorter.children()
children = filter(self._child_filter, children)
self._children_cache[decl] = children
return children
Index: ModuleListingJS.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/ModuleListingJS.py,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -p -d -r1.12 -r1.13
--- ModuleListingJS.py 14 Nov 2003 14:51:09 -0000 1.12
+++ ModuleListingJS.py 15 Nov 2003 19:01:53 -0000 1.13
@@ -7,10 +7,10 @@
# see the file COPYING for details.
#
+from Synopsis import config
from Synopsis import AST, Util
-from JSTree import JSTree
-from Synopsis.Formatters.HTML.core import config
from Synopsis.Formatters.HTML.Tags import *
+from JSTree import JSTree
import os
@@ -28,7 +28,7 @@ class ModuleListingJS(JSTree):
"Sets _filename and registers the page with the manager"
filename = self.processor.file_layout.nameOfSpecial('ModuleTree')
- config.set_contents_page(filename)
+ self.processor.set_contents_page(filename)
self.manager.addRootPage(filename, 'Modules', 'contents', 2)
self._link_target = 'index'
@@ -62,9 +62,10 @@ class ModuleListingJS(JSTree):
try: return self._children_cache[decl]
except KeyError: pass
- config.sorter.set_scope(decl)
- config.sorter.sort_sections()
- children = config.sorter.children()
+ sorter = self.processor.sorter
+ sorter.set_scope(decl)
+ sorter.sort_sections()
+ children = sorter.children()
children = filter(self._child_filter, children)
self._children_cache[decl] = children
return children
Index: NameIndex.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/NameIndex.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -d -r1.13 -r1.14
--- NameIndex.py 14 Nov 2003 14:51:09 -0000 1.13
+++ NameIndex.py 15 Nov 2003 19:01:53 -0000 1.14
@@ -12,13 +12,14 @@ from Synopsis import AST, Type
from Synopsis.Formatters.HTML import core, Tags
from Synopsis.Formatters.HTML.Page import Page
from Synopsis.Formatters.HTML.Tags import *
-from Synopsis.Formatters.HTML.core import config
import os
class NameIndex(Page):
"""Creates an index of all names on one page in alphabetical order"""
+ columns = Parameter(2, 'the number of columns for the listing')
+
def register(self, processor):
Page.register(self, processor)
@@ -41,20 +42,19 @@ class NameIndex(Page):
dict = self._makeDict()
keys = dict.keys()
keys.sort()
- columns = 2 # TODO set from config
linker = lambda key: '<a href="#%s">%s</a>'%(ord(key),key)
self.write(div('nameindex-index', string.join(map(linker, keys))))
for key in keys:
self.write('<a name="%s">'%ord(key)+'</a>')
self.write(entity('h2', key))
self.write('<table border=0 width="100%" summary="table of names">')
- self.write('<col width="*">'*columns)
+ self.write('<col width="*">'*self.columns)
self.write('<tr>')
items = dict[key]
numitems = len(items)
start = 0
- for column in range(columns):
- end = numitems * (column+1) / columns
+ for column in range(self.columns):
+ end = numitems * (column + 1) / self.columns
self.write('<td valign=top>')
for item in items[start:end]:
self._processItem(item)
@@ -86,7 +86,7 @@ class NameIndex(Page):
if dict.has_key(key): dict[key].append(type)
else: dict[key] = [type]
# Fill the dict
- map(hasher, filter(decl_filter, config.types.values()))
+ map(hasher, filter(decl_filter, self.processor.ast.types().values()))
# Now sort the dict
for items in dict.values():
items.sort(name_cmp)
Index: RawFilePages.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/RawFilePages.py,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -d -r1.9 -r1.10
--- RawFilePages.py 14 Nov 2003 14:51:09 -0000 1.9
+++ RawFilePages.py 15 Nov 2003 19:01:53 -0000 1.10
@@ -9,23 +9,22 @@
from Synopsis.Processor import Parameter
from Synopsis import AST, Util
-from Part import Page
-import ASTFormatter
-from core import config
-from Tags import *
+from Synopsis.Formatters.HTML.Part import Page
+from Synopsis.Formatters.HTML import ASTFormatter
+from Synopsis.Formatters.HTML.Tags import *
import time, os, stat, os.path, string
class RawFilePages(Page):
"""A module for creating a page for each file with hyperlinked source"""
+ exclude = Parameter([], 'TODO: define an exclusion mechanism (glob based ?)')
+
def register(self, processor):
Page.register(self, processor)
- self.__base = config.base_dir
- self.__start = config.start_dir
+ self.__start = self.__base = processor.output
self.__files = None
- self.__exclude_globs = config.exclude_globs
def filename(self):
"""since RawFilePages generates a whole file hierarchy, this method returns the current filename,
@@ -49,19 +48,20 @@ class RawFilePages(Page):
dir = dirs.pop(0)
for entry in os.listdir(os.path.abspath(dir)):
# Check if entry is in exclude list
- exclude = 0
- for re in self.__exclude_globs:
- if re.match(entry):
- exclude = 1
- if exclude:
- continue
- entry_path = os.path.join(dir, entry)
- info = os.stat(entry_path)
- if stat.S_ISDIR(info[stat.ST_MODE]):
- dirs.append(entry_path)
- else:
- filename = self.processor.file_layout.nameOfFileSource(entry_path)
- self.__files.append( (entry_path, filename) )
+ #exclude = 0
+ #for re in self.__exclude_globs:
+ # if re.match(entry):
+ # exclude = 1
+ #if exclude:
+ # continue
+ #entry_path = os.path.join(dir, entry)
+ #info = os.stat(entry_path)
+ #if stat.S_ISDIR(info[stat.ST_MODE]):
+ # dirs.append(entry_path)
+ #else:
+ # filename = self.processor.file_layout.nameOfFileSource(entry_path)
+ # self.__files.append( (entry_path, filename) )
+ pass
return self.__files
def process(self, start):
Index: ScopePages.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/ScopePages.py,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -p -d -r1.23 -r1.24
--- ScopePages.py 14 Nov 2003 14:51:09 -0000 1.23
+++ ScopePages.py 15 Nov 2003 19:01:53 -0000 1.24
@@ -7,16 +7,16 @@
# see the file COPYING for details.
#
+from Synopsis import config
from Synopsis.Processor import Parameter
from Synopsis import AST
from Synopsis.Formatters.TOC import TOC
from Synopsis.Formatters.HTML.Page import Page
-from Synopsis.Formatters.HTML.core import config
from Synopsis.Formatters.HTML.Tags import *
-
+from Synopsis.Formatters.HTML.ASTFormatter import *
import time, os
-class ScopePages(Page):
+class Scope(Page):
"""A module for creating a page for each Scope with summaries and
details. This module is highly modular, using the classes from
ASTFormatter to do the actual formatting. The classes to use may be
@@ -24,6 +24,11 @@ class ScopePages(Page):
@see ASTFormatter The ASTFormatter module
@see Config.Formatters.HTML.ScopePages Config for ScopePages
"""
+
+ parts = Parameter([Heading(),
+ Summary(),
+ Detail()],
+ '')
def register(self, processor):
@@ -31,24 +36,13 @@ class ScopePages(Page):
share = config.datadir
self.syn_logo = 'synopsis200.jpg'
self.processor.file_layout.copyFile(os.path.join(share, 'synopsis200.jpg'),
- os.path.join(config.basename, self.syn_logo))
- self.__parts = []
- self._get_parts()
+ os.path.join(processor.output, self.syn_logo))
+
+ for part in self.parts: part.register(self)
+
self.__namespaces = []
self.__toc = None
- def _get_parts(self):
- "Loads the list of parts from config"
-
- try:
- parts = config.obj.ScopePages.parts
- except AttributeError:
- parts = ['Heading', 'Summary', 'Detail']
- base = 'Synopsis.Formatters.HTML.ASTFormatter.'
- for part in parts:
- obj = core.import_object(part, basePackage=base)(self)
- self.__parts.append(obj)
-
def get_toc(self, start):
"""Returns the TOC for the whole AST starting at start"""
Index: XRefPages.py
===================================================================
RCS file: /cvs/synopsis/Synopsis/Synopsis/Formatters/HTML/Pages/XRefPages.py,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -p -d -r1.13 -r1.14
--- XRefPages.py 14 Nov 2003 14:51:09 -0000 1.13
+++ XRefPages.py 15 Nov 2003 19:01:53 -0000 1.14
@@ -27,31 +27,30 @@ class XRefLinker(Linker):
return file
-class XRefPages(Page):
+class XRef(Page):
"""A module for creating pages full of xref infos"""
+ xref_file = Parameter('', '')
+ link_to_scope = Parameter(True, '')
+
def register(self, processor):
Page.register(self, processor)
- self.xref = config.xref
self.__filename = None
self.__title = None
self.__toc = None
- self.__link_to_scopepages = 0
- if hasattr(config.obj, 'XRefPages'):
- if hasattr(config.obj.XRefPages, 'xref_file'):
- self.xref.load(config.obj.XRefPages.xref_file)
- if hasattr(config.obj.XRefPages, 'link_to_scopepages'):
- self.__link_to_scopepages = config.obj.XRefPages.link_to_scopepages
+ if self.xref_file:
+ processor.xref.load(self.xref_file)
def get_toc(self, start):
- """Returns the toc for XRefPages"""
+ """Returns the toc for XRef"""
if self.__toc: return self.__toc
self.__toc = TOC(None)
# Add an entry for every xref
- for name in self.xref.get_all_names():
- page = self.xref.get_page_for(name)
+ xref = self.processor.xref
+ for name in xref.get_all_names():
+ page = xref.get_page_for(name)
file = self.processor.file_layout.nameOfSpecial('xref%d'%page)
file = file + '#' + Util.quote(string.join(name,'::'))
self.__toc.insert(TOC.Entry(name, file, 'C++', 'xref'))
@@ -72,7 +71,7 @@ class XRefPages(Page):
def process(self, start):
"""Creates a page for every bunch of xref infos"""
- page_info = self.xref.get_page_info()
+ page_info = self.processor.xref.get_page_info()
if not page_info: return
for i in range(len(page_info)):
self.__filename = self.processor.file_layout.nameOfSpecial('xref%d'%i)
@@ -89,7 +88,7 @@ class XRefPages(Page):
def register_filenames(self, start):
"""Registers each page"""
- page_info = self.xref.get_page_info()
+ page_info = self.processor.xref.get_page_info()
if not page_info: return
for i in range(len(page_info)):
filename = self.processor.file_layout.nameOfSpecial('xref%d'%i)
@@ -133,7 +132,7 @@ class XRefPages(Page):
def process_name(self, name):
"""Outputs the info for a given name"""
- target_data = self.xref.get_info(name)
+ target_data = self.processor.xref.get_info(name)
if not target_data: return
jname = string.join(name, '::')
@@ -147,12 +146,12 @@ class XRefPages(Page):
desc = self.describe_decl(decl)
self.write(entity('h2', desc + jname) + '<ul>\n')
- if self.__link_to_scopepages:
- if config.types.has_key(name):
- type = config.types[name]
- if isinstance(type, Type.Declared):
- link = self.processor.file_layout.link(type.declaration())
- self.write('<li>'+href(rel(self.__filename, link), 'Documentation')+'</li>')
+ if self.link_to_scope:
+ types =
+ type = self.processor.ast.types().get(name, None)
+ if isinstance(type, Type.Declared):
+ link = self.processor.file_layout.link(type.declaration())
+ self.write('<li>'+href(rel(self.__filename, link), 'Documentation')+'</li>')
if target_data[0]:
self.write('<li>Defined at:<ul>\n')
for file, line, scope in target_data[0]:
- Previous message: [Synopsis-changes] Synopsis/Synopsis/Synopsis/Formatters/HTML ASTFormatter.py,1.35,1.36 Formatter.py,1.5,1.6
- Next message: [Synopsis-changes] Synopsis/Synopsis/Synopsis/Formatters/HTML/Pages RawFilePages.py,1.10,1.11
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Synopsis-changes mailing list