#----------------------------------------------------------------------
# poohelp2html.py JJS 4/13/97
#
# This module converts POO help files into HTML. It is a stand-
# alone utility, not used or needed by the POO engine.
#
#----------------------------------------------------------------------
import poohelp
import os
from time import *
import string
gTopic = ''
def header(title):
out = "<html><head><title>" + title + '\n' \
"</title></head><body><h2><center>" + title + '\n' \
"</center></h2>"
return out
def footer(surpressLink = 0):
out = ''
if not surpressLink:
out = '<p><a href="index.html">[Top]</a><br>'
out = out + "<hr><i>" + ctime(time()) + "\n</body></html>"
return out
def word(w):
w = string.lstrip(w)
if not w: return ''
prestuff = ''
while w and w[0] in "(),.!?;:":
prestuff = prestuff + w[0]
w = w[1:]
poststuff = ''
while w and w[-1] in "(),.!?;:":
poststuff = w[-1] + poststuff
w = w[:-1]
if w != gTopic and w in poohelp.helpDB.keys():
return prestuff + '<a href="' + w + '.html">' + w + '</a>' + poststuff
return prestuff + w + poststuff
def makesafe(str):
out = string.join(string.split(str,'<'),'<')
out = string.join(string.split(out,'>'),'>')
return out
def body(str):
lines = string.split(str,'\n')
out = ''
intable = 0
for l in lines:
l = makesafe(l)
if l[:3] == ' ':
if not intable:
out = out + '<center><table width=80% align=center>\n'
intable = 1
out = out + '<tr>'
for w in filter( lambda x:x, string.split(l," ")):
out = out + '<td>' + word(w) + '</td>'
out = out + '</tr>\n'
else:
if intable:
out = out + '</table></center>'
intable = 0
if l == '':
out = out + '<p>'
elif l[:7] == "Syntax:":
out = out + '<b>Syntax:</b> <font size=+1><tt>' + \
l[8:] + '</tt></font><p>'
else:
out = out + string.join( map(lambda w:word(w), string.split(l) ))
out = out + '\n'
return out
#---------------------------------------------------------------
# load database
print "Loading database..."
poohelp.hLoad()
print "Creating html files..."
# change directory
#os.mkdir('poohelp')
os.chdir('poohelp')
# create the main file
print "index.html..."
f = open('index.html', 'w')
f.write(header('POO Help'))
f.write(body( poohelp.help()) )
f.write(footer(1))
# create particular topic files
for gTopic in poohelp.helpDB.keys():
filename = gTopic + ".html"
print filename+"..."
f = open(filename, 'w')
f.write(header(gTopic))
f.write(body( poohelp.help(gTopic) ))
f.write(footer())
print "All done!"