From: Graeme M. <ma...@us...> - 2005-08-29 17:03:17
|
Update of /cvsroot/mailmanager/mailmanager/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16322/scripts Modified Files: Tag: UI_MARK_2 validate.py Log Message: scripts/validate.py: - Give in and add a bit to ignore some invalid elements ... namely <tal:span>. It's inelegant, but sometimes there's no other way to do things. www/*: - Fix validation errors, use tal:span instead of invalid nesting of HTML elements. Index: validate.py =================================================================== RCS file: /cvsroot/mailmanager/mailmanager/scripts/Attic/validate.py,v retrieving revision 1.1.2.3 retrieving revision 1.1.2.4 diff -u -d -r1.1.2.3 -r1.1.2.4 --- validate.py 16 Aug 2005 16:09:54 -0000 1.1.2.3 +++ validate.py 29 Aug 2005 17:03:10 -0000 1.1.2.4 @@ -43,12 +43,14 @@ page templates. """ attr_not_declared = re.compile(r"^Attribute '(?P<attr>[^']+)' not declared$") + elem_not_declared = re.compile(r"^Element '(?P<elem>[^']+)' not (declared|allowed here)$") namespaces = {'tal' : ['define', 'attributes', 'condition', 'content', 'replace', 'repeat', 'on-error', 'omit-tag'], 'metal': ['define-macro', 'use-macro', 'define-slot', 'fill-slot'], 'xmlns': ['tal', 'metal', 'i18n'], 'i18n' : ['translate', 'domain', 'name', 'attributes']} + allowed_elems = ['tal:span'] def error(self, exception): msg = exception.getMessage() result = self.attr_not_declared.match(msg) @@ -63,6 +65,16 @@ logmsg('DEBUG', 'Attribute %s (in namespace %s) found', exception, localname, ns) return + result = self.elem_not_declared.match(msg) + if result: + # We have an undeclared element, or one that's not really allowed + # in this context. Let's allow the single element tal:span away + # with it, since ZPTs do happen to drop stuff that's in its + # namespace but not recognised. And we do occasionally have need + # for it where we'd otherwise wind up with having to abuse an + # HTML tag... + if result.group('elem') in self.allowed_elems: + return logmsg('ERROR', '', exception) def parseCommandLine(argv = None): |