Changeset 3248
- Timestamp:
- 07/11/08 13:48:24 (5 years ago)
- Location:
- trac/plugins/tracnav-0.11/tracnav
- Files:
-
- 2 edited
-
__init__.py (modified) (1 diff)
-
tracnav.py (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trac/plugins/tracnav-0.11/tracnav/__init__.py
r3245 r3248 1 __version__ = '4.0pre 6'1 __version__ = '4.0pre7' -
trac/plugins/tracnav-0.11/tracnav/tracnav.py
r3245 r3248 63 63 from trac.wiki.model import WikiPage 64 64 from trac.wiki.formatter import Formatter, OneLinerFormatter 65 from trac.util.html import Markup 66 from genshi.builder import tag 65 67 from StringIO import StringIO 66 68 … … 107 109 class Invocation(object): 108 110 109 def __init__(self, formatter, args , out):111 def __init__(self, formatter, args): 110 112 111 113 # shortcuts … … 114 116 self.ctx = formatter.context 115 117 116 # output117 self.out = out118 self.col = 0119 120 118 # needed several times 121 119 self.preview = self.req.args.get('preview', '') … … 205 203 return toc 206 204 207 def write(self, what):208 self.out.write(' ' * self.col)209 self.out.write(what)210 return self211 212 def indent_more(self):213 self.col += 1214 return self215 216 def indent_less(self):217 self.col -= 1218 return self219 220 205 def run(self): 221 206 """ 222 207 Main routine of the wiki macro. 223 208 """ 209 out = tag.div(class_="wiki-toc trac-nav") 210 224 211 # header 225 self.write('<div class="wiki-toc trac-nav">\n').indent_more() 226 self.write('<h2><a href="%s">TracNav</a> menu</h2>\n' % TRACNAVHOME) 212 out.append(tag.h2(tag.a("TracNav", href=TRACNAVHOME))) 227 213 228 214 # add TOCs … … 233 219 found, filtered = self.filter_toc(toc) 234 220 if (not self.collapse) or (not found): 235 self.display_all(name, toc) 236 else: 237 self.display_all(name, filtered) 238 239 # footer 240 self.indent_less().write('</div>\n') 221 self.display_all(name, toc, out) 222 else: 223 self.display_all(name, filtered, out) 241 224 242 225 # add our stylesheet 243 226 add_stylesheet(self.req, 'tracnav/css/tracnav.css') 227 228 # done 229 return out 244 230 245 231 def filter_toc(self, toc, level = 0): … … 262 248 return found, result 263 249 264 def display_all(self, name, toc ):250 def display_all(self, name, toc, out): 265 251 if (not self.preview) and (self.modify): 266 self.write('<div class="edit"><a href="%s?action=edit">edit</a></div>\n' % \ 267 self.req.href.wiki(name)) 268 self.write('<ul>\n').indent_more() 269 self.display(toc, 0) 270 self.indent_less().write('</ul>\n') 271 272 def display(self, toc, depth): 252 out.append(tag.div( 253 tag.a("edit", href="%s?action=edit" % self.req.href.wiki(name)), 254 class_="edit")) 255 ul = tag.ul() 256 self.display(toc, 0, ul) 257 out.append(ul) 258 259 def display(self, toc, depth, ul): 273 260 for name, title, sub in toc: 274 li_style = ' style="padding-left: %dem;"'% (depth + 1)261 style = "padding-left: %dem;" % (depth + 1) 275 262 if sub == None: 276 if name == self.curpage: 277 cls = ' class="active"' 278 else: 279 cls = '' 280 self.write('<li%s%s>%s</li>\n' % (li_style, cls, title)) 281 else: 282 self.write('<li%s>\n' % li_style).indent_more() 283 if name == None or sub: 284 self.write('<h4>%s</h4>\n' % title) 285 else: 286 self.write('<h4>%s...</h4>\n' % title) 287 self.indent_less().write('</li>\n') 263 ul.append(tag.li( 264 Markup(title), 265 style=style, 266 class_= (name == self.curpage) and "active" or None)) 267 else: 268 ul.append(tag.li( 269 tag.h4(Markup(title), (name == None or sub) and "..." or None), 270 style=style)) 288 271 if len(sub) > 0: 289 self.display(sub, depth + 1 )272 self.display(sub, depth + 1, ul) 290 273 291 274 … … 299 282 300 283 def expand_macro(self, formatter, name, args): 301 out = StringIO() 302 Invocation(formatter, args, out).run() 303 return out.getvalue() 284 return Invocation(formatter, args).run() 304 285 305 286 def get_macro_description(self, name):
Note: See TracChangeset
for help on using the changeset viewer.
