From: Fred Drake Date: Tue, 19 Jan 1999 17:10:31 +0000 (+0000) Subject: format_attrs(): Attempt a bit more minimization for SGML output. X-Git-Tag: v1.5.2b2~319 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f82e4ab61733c321b583e049700b10c5375d6781;p=python format_attrs(): Attempt a bit more minimization for SGML output. --- diff --git a/Doc/tools/sgmlconv/esis2sgml.py b/Doc/tools/sgmlconv/esis2sgml.py index d6f3eb920d..07ca57117b 100755 --- a/Doc/tools/sgmlconv/esis2sgml.py +++ b/Doc/tools/sgmlconv/esis2sgml.py @@ -15,15 +15,33 @@ import string from xml.utils import escape -def format_attrs(attrs): +def format_attrs(attrs, xml=0): attrs = attrs.items() attrs.sort() s = '' for name, value in attrs: - s = '%s %s="%s"' % (s, name, escape(value)) + if xml: + s = '%s %s="%s"' % (s, name, escape(value)) + else: + # this is a little bogus, but should do for now + if name == value and isnmtoken(value): + s = "%s %s" % (s, value) + elif istoken(value): + s = "%s %s=%s" % (s, name, value) + else: + s = '%s %s="%s"' % (s, name, escape(value)) return s +_nmtoken_rx = re.compile("[a-z][-._a-z0-9]*", re.IGNORECASE) +def isnmtoken(s): + return _nmtoken_rx.match(s) is not None + +_token_rx = re.compile("[a-z0-9][-._a-z0-9]*", re.IGNORECASE) +def istoken(s): + return _token_rx.match(s) is not None + + def do_convert(ifp, ofp, xml=0): attrs = {} lastopened = None @@ -51,9 +69,9 @@ def do_convert(ifp, ofp, xml=0): ofp.write("