1 __version__ = "$Revision: 1.1 $"[11:-4]
4 from string import lower, join, replace
10 def __init__(self, name, *content):
13 self.content = list(content)
15 start_tag_string = "<!%s "
17 def append(self, *items): map(self.content.append, items)
19 def start_tag(self): return self.start_tag_string % self.name
21 def end_tag(self): return ">\n"
23 def writeto(self, fp=stdout, indent=0, perlevel=0):
24 fp.write(self.start_tag())
25 for c in self.content:
26 if hasattr(c, 'writeto'):
27 getattr(c, 'writeto')(fp, indent+perlevel, perlevel)
30 fp.write(self.end_tag())
32 def __str__(self, indent=0, perlevel=0):
33 # we don't actually indent here, it's for later.
34 c = map(str, self.content)
35 return join([self.start_tag()]+c+[self.end_tag()],'')
38 def Comment(*comment): return apply(Markup, ('--',)+comment+(' --',))