def expand_macro(self, formatter, name, content): curpage = formatter.resource.id # scoped TOC (e.g. TranslateRu/TracGuide or 0.11/TracGuide ...) prefix = '' idx = curpage.find('/') if idx > 0: prefix = curpage[:idx+1] ws = WikiSystem(self.env) return tag.div( tag.h4(_('Table of Contents')), tag.ul([tag.li(tag.a(title, href=formatter.href.wiki(prefix+ref), class_=(not ws.has_page(prefix+ref) and 'missing')), class_=(prefix+ref == curpage and 'active')) for ref, title in self.TOC]), class_='wiki-toc')
def expand_macro(self, formatter, name, content): min_depth, max_depth = 1, 6 title = None inline = False numbered = True if content: argv = [arg.strip() for arg in content.split(',')] if len(argv) > 0: depth = argv[0] if '-' in depth: min_depth, max_depth = \ [_arg_as_int(d, min=min_depth, max=max_depth) for d in depth.split('-', 1)] else: min_depth = max_depth = \ _arg_as_int(depth, min=min_depth, max=max_depth) if len(argv) > 1: title = argv[1].strip() for arg in argv[2:]: arg = arg.strip().lower() if arg == 'inline': inline = True elif arg == 'unnumbered': numbered = False # TODO: - integrate the rest of the OutlineFormatter directly here # - use formatter.wikidom instead of formatter.source out = io.StringIO() oformatter = OutlineFormatter(self.env, formatter.context) oformatter.format(formatter.source, out, max_depth, min_depth, shorten=not inline) outline = Markup(out.getvalue()) if title: outline = tag.h4(title, class_='section') + outline if not inline: outline = tag.div(outline, class_='wiki-toc') elif not numbered: outline = tag.div(outline, class_='wiki-toc-un') return outline