comparison markup/template.py @ 185:8e5a3048b359

Fix for #34: `py:def` macros can now be invoked from within expressions in attribute values.
author cmlenz
date Tue, 22 Aug 2006 14:52:44 +0000
parents e27a48802987
children f0b32f1c478c
comparison
equal deleted inserted replaced
184:e27a48802987 185:8e5a3048b359
908 for name, substream in attrib: 908 for name, substream in attrib:
909 if isinstance(substream, basestring): 909 if isinstance(substream, basestring):
910 value = substream 910 value = substream
911 else: 911 else:
912 values = [] 912 values = []
913 for subkind, subdata, subpos in substream: 913 for subkind, subdata, subpos in self._eval(substream,
914 if subkind is EXPR: 914 ctxt):
915 values.append(subdata.evaluate(ctxt)) 915 if subkind is TEXT:
916 else:
917 values.append(subdata) 916 values.append(subdata)
918 value = [unicode(x) for x in values if x is not None] 917 value = [x for x in values if x is not None]
919 if not value: 918 if not value:
920 continue 919 continue
921 new_attrib.append((name, u''.join(value))) 920 new_attrib.append((name, u''.join(value)))
922 yield kind, (tag, Attrs(new_attrib)), pos 921 yield kind, (tag, Attrs(new_attrib)), pos
923 922
Copyright (C) 2012-2017 Edgewall Software