doc: Sanitize latex2html output by using python lib BeautifulSoup
[charm.git] / doc / markupSanitizer.py
1 #!/usr/bin/python
2
3 from bs4 import BeautifulSoup
4 import sys
5 import os
6
7 # Accept filename as user input
8 argc = len( sys.argv )
9 if (argc < 2): raise Exception
10 fileName = sys.argv[1];
11
12 # Construct a DOM object
13 soup = BeautifulSoup(open(fileName), "lxml")
14
15 # Assuming, tt tags are not spewed recklessly by latex2html,
16 # replace them with code tags
17 for t in soup('tt'):
18     t.wrap( soup.new_tag('code') )
19     t.unwrap()
20
21 # Rewrap all div class=alltt blocks in pre tags
22 for d in soup('div','alltt'):
23     d.wrap( soup.new_tag('pre') )
24     d.unwrap()
25
26 # Remove br tags required within pre sections
27 for p in soup('pre'):
28     for b in p('br'):
29         b.extract()
30
31 # Print cleaned up markup to stdout
32 print( soup.prettify(formatter="html") )
33