28 |
28 |
29 |
29 |
30 def finalchanges(file_name,html_string): |
30 def finalchanges(file_name,html_string): |
31 """some of the final changes that need to do be done on the html before creating the final usable page in the hgbook project""" |
31 """some of the final changes that need to do be done on the html before creating the final usable page in the hgbook project""" |
32 # print html_string |
32 # print html_string |
|
33 |
|
34 |
|
35 #handling the adding of all the javascript stuff |
33 replace_string="""<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Chapter 2. Basic Python</title><link rel="stylesheet" href="/review/support/styles.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.3"><link rel="shortcut icon" type="image/png" href="/review/support/figs/favicon.png"><script type="text/javascript" src="/review/support/jquery-min.js"></script><script type="text/javascript" src="/review/support/form.js"></script><script type="text/javascript" src="/review/support/hsbook.js"></script></head>""" |
36 replace_string="""<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Chapter 2. Basic Python</title><link rel="stylesheet" href="/review/support/styles.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.3"><link rel="shortcut icon" type="image/png" href="/review/support/figs/favicon.png"><script type="text/javascript" src="/review/support/jquery-min.js"></script><script type="text/javascript" src="/review/support/form.js"></script><script type="text/javascript" src="/review/support/hsbook.js"></script></head>""" |
34 ch_name=os.path.split(file_name)[1].split('.')[0] |
37 ch_name=os.path.split(file_name)[1].split('.')[0] |
35 chapter_names_unsorted=glob.glob(os.path.join(repo,'ch*.html')) |
38 chapter_names_unsorted=glob.glob(os.path.join(repo,'ch*.html')) |
36 chapter_names_unsorted.sort() |
39 chapter_names_unsorted.sort() |
37 chapter_names_sorted=chapter_names_unsorted |
40 chapter_names_sorted=chapter_names_unsorted |
38 # print chapter_names_sorted |
41 # print chapter_names_sorted |
|
42 |
|
43 |
|
44 #handling adding the previous and the next chapter |
39 chapter_names_sorted=sort_doubledigit(chapter_names_sorted) |
45 chapter_names_sorted=sort_doubledigit(chapter_names_sorted) |
40 chapter_names=chapter_names_sorted |
46 chapter_names=chapter_names_sorted |
41 previous_string='<<<' |
47 previous_string='<<<' |
42 next_string='>>>' |
48 next_string='>>>' |
43 ch_name_tmp=file_name.split('.')[0] |
49 ch_name_tmp=file_name.split('.')[0] |
64 except: |
70 except: |
65 next_string='' |
71 next_string='' |
66 next_chapter='' |
72 next_chapter='' |
67 |
73 |
68 |
74 |
|
75 #handling adding a title |
|
76 |
69 chapter_xml=ch_name_tmp+'.xml' |
77 chapter_xml=ch_name_tmp+'.xml' |
70 |
78 |
71 |
|
72 try: |
79 try: |
73 xml_file =open(chapter_xml,'r').read() |
80 xml_file =open(chapter_xml,'r').read() |
74 xml_tree=ET.fromstring(xml_file) |
81 xml_tree=ET.fromstring(xml_file) |
75 try: |
82 try: |
76 title_tag=xml_tree.find('title') |
83 title_tag=xml_tree.find('title') |
94 |
101 |
95 body_add_string="""<div><table width="100%%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter %s</th></tr><tr><td width="20%%" align="left"><a accesskey="p" href="%s">%s</a></td><th width="60%%" align="center"> </th><td width="20%%" align="right"> <a accesskey="n" href="%s">%s</a></td></tr></table></div>"""%(current_chapter_title,previous_chapter,previous_string,next_chapter,next_string) |
102 body_add_string="""<div><table width="100%%" summary="Navigation header"><tr><th colspan="3" align="center">Chapter %s</th></tr><tr><td width="20%%" align="left"><a accesskey="p" href="%s">%s</a></td><th width="60%%" align="center"> </th><td width="20%%" align="right"> <a accesskey="n" href="%s">%s</a></td></tr></table></div>"""%(current_chapter_title,previous_chapter,previous_string,next_chapter,next_string) |
96 |
103 |
97 |
104 |
98 |
105 |
99 |
106 |
100 |
107 |
101 reg_obj=re.compile('<head>.*</head>',re.DOTALL) |
108 reg_obj=re.compile('<head>.*</head>',re.DOTALL) |
102 html_string=reg_obj.sub(replace_string, html_string,re.DOTALL) |
109 html_string=reg_obj.sub(replace_string, html_string,re.DOTALL) |
103 html_string=re.sub('><a name',' id', html_string) |
110 html_string=re.sub('><a name',' id', html_string) |
104 soup=BeautifulSoup(html_string.decode('ascii','ignore')) |
111 soup=BeautifulSoup(html_string.decode('ascii','ignore')) |
108 try: |
115 try: |
109 del(div['title']) |
116 del(div['title']) |
110 div['id'] = ch_name |
117 div['id'] = ch_name |
111 except TypeError: |
118 except TypeError: |
112 print file_name |
119 print file_name |
|
120 add_footer_string="""<div class="footer"> |
|
121 © Copyright 2009, Prabhu Ramachandran, Asokan Pichai, Shantanu Choudhary, Puneeth Chaganti, Santosh G. Vattam, Kadambari Devararajan, Madhusudan.C.S.</div>""" |
|
122 |
|
123 position=len(soup.findall('div')) |
113 |
124 |
|
125 |
|
126 |
|
127 |
114 soup.html.body.insert(0,NavigableString(body_add_string)) |
128 soup.html.body.insert(0,NavigableString(body_add_string)) |
115 |
129 |
116 |
130 |
|
131 soup.html.body.insert(position+1,NavigableString(add_footer_string) |
|
132 # handling adding footer |
|
133 |
117 return soup |
134 return soup |
118 |
135 |
119 if __name__=='__main__': |
136 if __name__=='__main__': |
120 file_names=glob.glob(os.path.join(repo,'ch*.html')) |
137 file_names=glob.glob(os.path.join(repo,'ch4strings_dicts.html')) |
121 for file_name in file_names: |
138 for file_name in file_names: |
122 file_obj=open(file_name,'r') |
139 file_obj=open(file_name,'r') |
123 soup=finalchanges(file_name,file_obj.read()) |
140 soup=finalchanges(file_name,file_obj.read()) |
124 time.sleep(1) |
141 time.sleep(1) |
125 file_obj=open(file_name,'w') |
142 file_obj=open(file_name,'w') |
126 print >>file_obj ,soup |
143 print >>file_obj ,soup |
127 print file_name |
144 |
128 |
145 # add_footer_string="""<div class="footer"> |
|
146 # © Copyright 2009, Prabhu Ramachandran, Asokan Pichai, Shantanu Choudhary, Puneeth Chaganti, Santosh G. Vattam, Kadambari Devararajan, Madhusudan.C.S.</div></body>""" |
|
147 |
|
148 # print file_name |
|
149 # file_obj_footer_read=open(file_name,'r') |
|
150 # html_string=file_obj_footer_read.read() |
|
151 # #time.sleep(1) |
|
152 # #print html_string |
|
153 # print len(html_string) |
|
154 # print re.findall("</div>",html_string) |
|
155 # html_string=re.sub('</body>','abshdaskbd',html_string) |
|
156 # file_obj_footer_write=open(file_name,'w') |
|
157 # file_obj_footer_write.write(html_string) |
129 |
158 |
130 |
159 |