From 35cedcfdb52286fe6b367f108bd6b433eded0bc1 Mon Sep 17 00:00:00 2001 From: glondu Date: Sun, 30 Apr 2006 10:36:26 +0200 Subject: [PATCH] Les appels au formatter doivent etre faits dans l'ordre. darcs-hash:20060430083626-68412-559822bc312cab9018661b42d23a8bf835c65697.gz --- wiki/macro/TableOfContents.py | 40 +++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/wiki/macro/TableOfContents.py b/wiki/macro/TableOfContents.py index 0e208306..3242c7d4 100644 --- a/wiki/macro/TableOfContents.py +++ b/wiki/macro/TableOfContents.py @@ -70,6 +70,18 @@ class TableOfContents: return self.pre_re.sub('',apply(self.include_macro, args, kwargs)).split('\n') def run(self): + f = self.macro.formatter + r = self.result + try: + # Wikipedia-style table of contents + r.append(f.open('div', True, {'id': 'tableOfContents'})) + r.append(f.open('h2', False, {'id': 'toctitle'})) + r.append(f.text(u'Sommaire')) + r.append(f.close('h2', True)) + r.append(f.open('div', True, {'id': 'tableOfContentsList'})) + except: + pass + self.process_lines(self.pre_re.sub('',self.macro.parser.raw).split('\n'), self.macro.formatter.page.page_name) # Close pending lists @@ -78,26 +90,18 @@ class TableOfContents: self.result.append(self.macro.formatter.number_list(0)) try: - html = [ - self.macro.formatter.open('div', True, {'id': 'tableOfContents'}), - self.macro.formatter.open('h2', False, {'id': 'toctitle'}), - self.macro.formatter.text(u'Sommaire'), - self.macro.formatter.close('h2', True), - self.macro.formatter.open('div', True, {'id': 'tableOfContentsList'}), - ''.join(self.result), - self.macro.formatter.close('div', True), - self.macro.formatter.close('div', True), - self.macro.formatter.open('div', False, {'class': 'visualClear'}), - self.macro.formatter.close('div', True), - self.macro.formatter.open('script', False, - {'type': 'text/javascript', - 'src': '/wiki/common/toc/toc.js'}), - self.macro.formatter.close('script', True), - ] - return u''.join(html) + r.append(f.close('div', True)) + r.append(f.close('div', True)) + r.append(f.open('div', False, {'class': 'visualClear'})) + r.append(f.close('div', True)) + r.append(f.open('script', False, + {'type': 'text/javascript', + 'src': '/wiki/common/toc/toc.js'})) + r.append(f.close('script', True)) except: - return ''.join(self.result) + pass + return u''.join(r) def process_lines(self, lines, pagename): for line in lines: