SEESenv/scripts/finalhtml.py
author amit@thunder
Sun, 28 Feb 2010 22:02:15 +0530
changeset 39 bc65d8802897
parent 32 de7ac08f237b
child 40 ef147a79b098
permissions -rw-r--r--
Bug fix in myrst .. so that it does not fail at not finding a file

import glob
#import lxml
import re
import os
from BeautifulSoup import BeautifulSoup
import time
temp_dir='/home/hg/repos/SEES-hacks/temp/'


def finalchanges(file_name,html_string):
    """some of the final changes that need to do be done on the html before creating the final usable page in the hgbook project"""	    
#    print html_string    
    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>"""
    reg_obj=re.compile('<head>.*</head>',re.DOTALL)    
    html_string=reg_obj.sub(replace_string, html_string,re.DOTALL)
    html_string=re.sub('><a name',' id', html_string)	
    soup=BeautifulSoup(html_string.decode('ascii','ignore'))    
    ch_name=os.path.split(file_name)[1].split('.')[0]
    print ch_name
    ch_title=re.split('[0-9]*',ch_name)[1]    
    title_string='Chapter. '+ ch_title
    soup.html.head.title.string.replaceWith(title_string) 
    div=soup.html.div
        
    try:
        del(div['title'])
        div['id'] = ch_name
    except TypeError:
        print file_name  
    return soup

if __name__=='__main__':
	file_names=glob.glob(temp_dir+'ch*.html')
	for file_name in file_names:
            file_obj=open(file_name,'r')
            soup=finalchanges(file_name,file_obj.read())
      	    time.sleep(1)
	    file_obj=open(file_name,'w')
	    file_obj.write(soup.prettify())