__version__ = "$Revision: 1.1 $"[11:-4] from sys import stdout from string import lower, join, replace class Markup: content_model = 1 def __init__(self, name, *content): self.name = name self.dict = {} self.content = list(content) start_tag_string = "\n" def writeto(self, fp=stdout, indent=0, perlevel=0): fp.write(self.start_tag()) for c in self.content: if hasattr(c, 'writeto'): getattr(c, 'writeto')(fp, indent+perlevel, perlevel) else: fp.write(str(c)) fp.write(self.end_tag()) def __str__(self, indent=0, perlevel=0): # we don't actually indent here, it's for later. c = map(str, self.content) return join([self.start_tag()]+c+[self.end_tag()],'') def Comment(*comment): return apply(Markup, ('--',)+comment+(' --',))