SEESenv/scripts/finalhtml.py
changeset 49 3b5f1341d6c6
parent 45 b5bff924ef69
child 51 8af288a4c1a9
equal deleted inserted replaced
48:c9990f63505d 49:3b5f1341d6c6
    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 &copy; 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 # &copy; 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