diff options
author | Jan Holesovsky <kendy@suse.cz> | 2010-12-03 21:25:32 +0100 |
---|---|---|
committer | Jan Holesovsky <kendy@suse.cz> | 2010-12-03 21:25:32 +0100 |
commit | 603ea085fdd57d62c0d627fa0b76061e027f171c (patch) | |
tree | 6b4d59cad2178ffedfacccf09f6214b91864b94c | |
parent | 75425dcc6f8e64e7226affa90c12a6123bb04ecf (diff) |
wikihelp: Ignore the first level="1" heading.
It is usually (== everywhere but 2 or 3 files) the only level 1 heading in the
file, and additionaly exactly the same as the page title. When we skip that,
we get much nicer table of content, better structure, etc.
-rwxr-xr-x | helpcontent2/to-wiki/wikiconv2.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/helpcontent2/to-wiki/wikiconv2.py b/helpcontent2/to-wiki/wikiconv2.py index acc2b97685..a9fd773845 100755 --- a/helpcontent2/to-wiki/wikiconv2.py +++ b/helpcontent2/to-wiki/wikiconv2.py @@ -281,6 +281,11 @@ class XhpFile(ElementBase): def __init__(self): ElementBase.__init__(self, None, None) + # we want to ignore the 1st level="1" heading, because in most of the + # cases, it is the only level="1" heading in the file, and it is the + # same as the page title + self.ignore_heading = True + def start_element(self, parser, name, attrs): if name == 'body': # ignored, we flatten the structure @@ -301,7 +306,18 @@ class XhpFile(ElementBase): elif name == 'meta': self.parse_child(Meta(attrs, self)) elif name == 'paragraph': - self.parse_child(Paragraph(attrs, self)) + ignore_this = False + try: + if attrs['role'] == 'heading' and int(attrs['level']) == 1 \ + and self.ignore_heading and parser.follow_embed: + self.ignore_heading = False + ignore_this = True + except: + pass + if ignore_this: + self.parse_child(Ignore(attrs, self, 'paragraph')) + else: + self.parse_child(Paragraph(attrs, self)) elif name == 'section': self.parse_child(Section(attrs, self)) elif name == 'sort': |