2006-06-16 10:52:01 +02:00
#!/usr/bin/env python
''' gets a latex2html file and returns the file with a css tag
and stuff '''
import string
import sys
import re
def writeFile ( data , filename ) :
"""
write data to the given filename
@param filename String : name of file to write to
"""
try :
f = open ( filename , " w " ) #oeffnen und schliessen =>
f . close ( ) #datei ist jetzt genullt
f = open ( filename , " a " ) #anhaengend oeffnen
f . write ( data )
f . close ( )
return " "
except :
print " (WW)[ %s ]: \" %s \" is not writeable! " % ( __name__ , filename )
return filename
### start of code
try :
f = open ( sys . argv [ 1 ] , " r " )
content = f . read ( )
f . close ( )
# zu_manipulierende_variable=string.replace(zu_manipulierende_variable,alter_string,neuer_string)
# recently switched to latex2html, now cutting of headers
# dieser abschnitt muss ueberarbeitet werden!
startoffset = string . find ( content , " <HR> \n <ADDRESS> " )
endoffset = string . find ( content , " </ADDRESS> " , startoffset ) + len ( " </ADDRESS> " )
if ( startoffset > 10 ) and ( endoffset > startoffset ) :
footer = content [ startoffset : endoffset ]
content = string . replace ( content , footer , " " )
#put whole content into div tags
content = string . replace ( content , " <BR><HR> \n \n </BODY> " , ' </div> ' )
content = string . replace ( content , " </HTML> " , ' <!-- end of main --> ' )
#remove empty image subtitles
content = string . replace ( content , " <STRONG>Abbildung:</STRONG> " , " " )
2006-07-25 10:50:06 +02:00
#Bereich "author_info": Entfernen der Formatierung
startoffset = string . find ( content , ' <DIV CLASS= " author_info " ' )
endoffset = string . find ( content , " </STRONG> " , startoffset ) + len ( " </STRONG> " )
if ( startoffset > 10 ) and ( endoffset > startoffset ) :
content = string . replace ( content , ' <P ALIGN= " CENTER " > ' , " <P> " )
content = string . replace ( content , " <STRONG> " , " " )
content = string . replace ( content , " </STRONG> " , " " )
2006-08-01 20:22:03 +02:00
#TOC formatieren - Der Abschnitt <A NAME="SECTION00001000000000000000"> muss noch allgemeiner werden
content = string . replace ( content , ' <BR> \n \n <H2><A NAME= " SECTION00001000000000000000 " > \n Inhalt</A> \n </H2> \n <!--Table of Contents--> ' , ' \n <div id= " toc " > \n <div id= " toctitle " >Auf dieser Seite:</div> ' )
content = string . replace ( content , " <!--End of Table of Contents--> " , " </div> " )
2006-07-25 10:50:06 +02:00
2006-06-16 10:52:01 +02:00
# replace "./filename.png" references with "filename.png"
# (this avoids validation warnings)
content = string . replace ( content , ' HREF= " ./ ' , ' HREF= " ' )
# Fussnoten finden und Ende ersetzen
fussnoten = string . find ( content , " <BR><HR><H4>Fußnoten</H4> " )
startoffset = string . find ( content , " </DL> " , fussnoten )
endoffset = startoffset + len ( " </DL> " )
if startoffset > 10 and endoffset > 10 :
content = content [ : startoffset ] + " </DL> \n </div> " + content [ endoffset : ]
# Linie vor Fussnoten wird entfernt
# Fussnoten bekommen id, damit sie per css formatierbar sind
2006-08-04 18:22:07 +02:00
content = string . replace ( content , ' <HR><H4>Fußnoten</H4> ' , ' \n <div id= " footnotes " > \n <div id= " fntitle " >Fußnoten</div> ' )
2006-06-16 10:52:01 +02:00
# Sonderzeichen in Fussnoten werden ersetzt (Hotfix fuer einen latex2html-Bug)
content = string . replace ( content , ' <EFBFBD> ' , ' ä ' )
content = string . replace ( content , ' <EFBFBD> ' , ' Ä ' )
content = string . replace ( content , ' <EFBFBD> ' , ' ö ' )
content = string . replace ( content , ' <EFBFBD> ' , ' Ö ' )
content = string . replace ( content , ' <EFBFBD> ' , ' ü ' )
content = string . replace ( content , ' <EFBFBD> ' , ' Ü ' )
content = string . replace ( content , ' <EFBFBD> ' , ' ß ' )
# externe Links innerhalb von <div id="main"> erhalten eine class
2006-08-04 14:51:18 +02:00
content = string . replace ( content , ' HREF= " http: ' , ' class= " externalLink " href= " http: ' )
content = string . replace ( content , ' HREF= " https: ' , ' class= " externalLink " href= " https: ' )
2006-06-16 10:52:01 +02:00
#all done, writing tuned files
writeFile ( content , sys . argv [ 1 ] )
except : #read/write/whatever failed,
# BOESE: unklare Fehlerbehandlung
print " an defined error occured - but i ' m too lame to fix that "
print " usage: " , sys . argv [ 0 ] , " <file_to_modify> "
sys . exit ( 1 )
sys . exit ( 0 )