diff --git a/announce.py b/announce.py index edfd690b..45f123ea 100755 --- a/announce.py +++ b/announce.py @@ -54,7 +54,7 @@ def getText(nodelist): # get the seconds in the Unix era now = int(time.time()) -# READ IN ARGS: +# READ IN ARGS: # # 1. XEP number @@ -167,7 +167,7 @@ else: thesubject = 'UPDATED: XEP-' thesubject = thesubject + xepnum + ' (' + title + ')' -versionline = 'Version ' + version + ' of XEP-' + xepnum + ' (' + title + ') has been released.' +versionline = 'Version ' + version + ' of XEP-' + xepnum + ' (' + title + ') has been released.' abstractline = 'Abstract: ' + abstract changelogline = 'Changelog: ' + remark + ' (' + initials + ')' diffsline = 'Diff: ' + diffs diff --git a/archive.sh b/archive.sh index 95e75cc1..87a8aaf5 100755 --- a/archive.sh +++ b/archive.sh @@ -1,6 +1,6 @@ #!/bin/sh # archive an old version of a XEP (before publishing new version) -# usage: ./archive.sh xepnum version +# usage: ./archive.sh xepnum version ## LICENSE ## # diff --git a/dbupdate.py b/dbupdate.py index a6bfbcd5..68db11cc 100755 --- a/dbupdate.py +++ b/dbupdate.py @@ -6,7 +6,7 @@ # Last Modified: 2006-12-07 # Author: Peter Saint-Andre (stpeter@jabber.org) # License: public domain -# HowTo: ./dbupdate.py dbuser dbpw xepnum +# HowTo: ./dbupdate.py dbuser dbpw xepnum ## LICENSE ## # @@ -54,7 +54,7 @@ def getText(nodelist): # get the seconds in the Unix era now = int(time.time()) -# READ IN ARGS: +# READ IN ARGS: # # 1. XEP number # 2. database user @@ -139,7 +139,7 @@ if xepflag == "new": cursor.execute(theStatement) else: theStatement = "UPDATE jeps SET name='" + title + "', type='" + xeptype + "', status='" + xepstatus + "', notes='" + theNotes + "', version='" + str(version) + "', last_modified='" + str(now) + "', abstract='" + abstract + "', changelog='" + theLog + "' WHERE number='" + str(xepnum) + "';" - cursor.execute(theStatement) + cursor.execute(theStatement) result = cursor.fetchall() # END diff --git a/deferred.py b/deferred.py index b02e5167..2fc603d2 100755 --- a/deferred.py +++ b/deferred.py @@ -54,7 +54,7 @@ def getText(nodelist): # get the seconds in the Unix era now = int(time.time()) -# READ IN ARGS: +# READ IN ARGS: # # 1. XEP number diff --git a/gen.py b/gen.py index 7c5b29d7..efab8ef2 100755 --- a/gen.py +++ b/gen.py @@ -71,10 +71,10 @@ def serializeInlineImage(output_dir, xep_nr, no, attrValue): charset = bit[8:] elif bit == 'base64': b64 = True - + # Do something smart with charset and b64 instead of assuming plaindata = base64.b64decode(data) - + # Do something smart with mime_type if mime_type in ('image/png', 'image/jpeg'): file_ext = mime_type.split('/')[1] @@ -100,13 +100,13 @@ def getText(nodelist): def executeCommand( cmd ): error, desc = commands.getstatusoutput( cmd ) return error, desc + "\n" + "executed cmd: " + cmd - + ## creates a HTML table (for the human reader) and XML table (for bots) class XEPTable: def __init__(self, filename, shortXMLfilename): self.filename = filename self.shortXMLfilename = shortXMLfilename - + try: self.tableFile = parse(filename) except: @@ -117,7 +117,7 @@ class XEPTable: self.tableFile.getElementsByTagName("table")[0].setAttribute("cellspacing", "0") self.tableFile.getElementsByTagName("table")[0].setAttribute("cellpadding", "3") self.tableFile.getElementsByTagName("table")[0].setAttribute("border", "1") - + header = parseString( ''' Number @@ -127,7 +127,7 @@ class XEPTable: Date ''') self.tableFile.getElementsByTagName("table")[0].appendChild(header.getElementsByTagName("tr")[0]) - + try: self.botsFile = parse(shortXMLfilename) except: @@ -139,7 +139,7 @@ class XEPTable: self.tableFile.getElementsByTagName("table")[0].normalize() f.write(self.tableFile.toxml()) f.close() - + f = open(self.shortXMLfilename, "wb") self.botsFile.getElementsByTagName("xeps")[0].normalize() f.write(self.botsFile.toxml()) @@ -153,7 +153,7 @@ class XEPTable: if row.getAttribute("id") == "xep" + info.getNr(): xeprow = row break - + if xeprow == 0: xeprow = self.tableFile.createElement("tr") self.tableFile.getElementsByTagName("table")[0].appendChild(xeprow) @@ -165,22 +165,22 @@ class XEPTable: xeprow.setAttribute("class", "tablebody XEP-" + info.getStatus()) while(xeprow.hasChildNodes()): xeprow.removeChild(xeprow.firstChild) - + col = parseString('''XEP-" + info.getNr() + ''' (PDF)''') xeprow.appendChild(col.getElementsByTagName("td")[0]) - + col = parseString("" + info.getTitle() + "") xeprow.appendChild(col.getElementsByTagName("td")[0]) - + col = parseString("" + info.getType() + "") xeprow.appendChild(col.getElementsByTagName("td")[0]) - + col = parseString("" + info.getStatus() + "") xeprow.appendChild(col.getElementsByTagName("td")[0]) - + col = parseString("" + info.getDate() + "") xeprow.appendChild(col.getElementsByTagName("td")[0]) - + ## set for bots file xeps = self.botsFile.getElementsByTagName("xep") xep = 0 @@ -188,7 +188,7 @@ class XEPTable: if xeps_xep.getElementsByTagName("number")[0].firstChild.data == info.getNr(): xep = xeps_xep break - + if xep == 0: xep = self.botsFile.createElement("xep") self.botsFile.getElementsByTagName("xeps")[0].appendChild(xep) @@ -197,25 +197,25 @@ class XEPTable: else: while(xep.hasChildNodes()): xep.removeChild(xep.firstChild) - + child = parseString("" + info.getNr() + "") xep.appendChild(child.getElementsByTagName("number")[0]) - + child = parseString("" + info.getTitle() + "") xep.appendChild(child.getElementsByTagName("name")[0]) - + child = parseString("" + info.getType() + "") xep.appendChild(child.getElementsByTagName("type")[0]) - + child = parseString("" + info.getStatus() + "") xep.appendChild(child.getElementsByTagName("status")[0]) - + child = parseString("" + info.getDate() + "") xep.appendChild(child.getElementsByTagName("updated")[0]) - + child = parseString("" + info.getShortname() + "") xep.appendChild(child.getElementsByTagName("shortname")[0]) - + child = parseString("" + info.getAbstract() + "") xep.appendChild(child.getElementsByTagName("abstract")[0]) @@ -225,7 +225,7 @@ def filebase( filename ): def checkError( error, desc): global verbose - + if error != 0: if verbose: print "Error: ", desc @@ -233,11 +233,11 @@ def checkError( error, desc): return True def fileHash( filename ): - f = open(filename, "rb") - import hashlib - h = hashlib.sha1() - h.update(f.read()) - hash = h.hexdigest() + f = open(filename, "rb") + import hashlib + h = hashlib.sha1() + h.update(f.read()) + hash = h.hexdigest() f.close() return hash @@ -250,7 +250,7 @@ def loadDict( filename ): except: print "failed loading dict." return {} - + def saveDict( filename, di ): f = open(filename, "w") pickle.dump(di, f) @@ -260,15 +260,15 @@ def buildXHTML( file, nr ): error, desc = executeCommand("xsltproc xep.xsl " + file + " > " + XEPPATH + "/xep-" + nr + ".html") if not checkError(error, desc): return False - + error, desc = executeCommand("xsltproc ref.xsl xep-" + nr + ".xml > " + XEPPATH + "/refs/reference.XSF.XEP-" + nr + ".xml") if not checkError(error, desc): return False - + error, desc = executeCommand("xsltproc examples.xsl xep-" + nr + ".xml > " + XEPPATH + "/examples/" + nr + ".xml") if not checkError(error, desc): return False - + error, desc = executeCommand(" cp xep-" + nr + ".xml " + XEPPATH + "/") if not checkError(error, desc): return False @@ -280,47 +280,47 @@ def buildPDF( file, nr ): error, desc = executeCommand("xsltproc -o /tmp/xepbuilder/xep-" + nr + ".tex.xml xep2texml.xsl " + file) if not checkError(error, desc): return False - + error, desc = executeCommand("texml -e utf8 /tmp/xepbuilder/xep-" + nr + ".tex.xml /tmp/xepbuilder/xep-" + nr + ".tex") if not checkError(error, desc): return False - + #detect http urls and escape them to make them breakable # this should match all urls in free text; not the urls in xml:ns or so..so no " or ' in front. error, desc = executeCommand('''sed -i 's|\([\s"]\)\([^"]http://[^ "]*\)|\1\\path{\2}|g' /tmp/xepbuilder/xep-''' + nr + ".tex") if not checkError(error, desc): return False - + #adjust references error, desc = executeCommand('''sed -i 's|\\hyperref\[#\([^}]*\)\]|\\hyperref\[\1\]|g' /tmp/xepbuilder/xep-''' + nr + ".tex") if error != 0: if verbose == 1: print "Error: ", desc return False - + error, desc = executeCommand('''sed -i 's|\\pageref{#\([^}]*\)}|\\pageref{\1}|g' /tmp/xepbuilder/xep-''' + nr + ".tex") if not checkError(error, desc): return False - + olddir = os.getcwd() os.chdir("/tmp/xepbuilder") - + error, desc = executeCommand("xelatex -interaction=batchmode xep-" + nr + ".tex") #if not checkError(error, desc): # os.chdir(olddir) # return False - + #error, desc = executeCommand("xelatex -interaction=batchmode xep-" + nr + ".tex") #if not checkError(error, desc): # os.chdir(olddir) # return False - + os.chdir(olddir) - + error, desc = executeCommand("cp /tmp/xepbuilder/xep-" + nr + ".pdf " + XEPPATH + "/") if not checkError(error, desc): return False - + return True def buildXEP( filename ): @@ -329,7 +329,7 @@ def buildXEP( filename ): if not xepfilepath: print "getLatestXEPContent (ERROR)" return - + files_to_delete.append(xepfilepath) if not fast: print "Building " + filename + ": ", @@ -337,14 +337,14 @@ def buildXEP( filename ): print "XHTML(OK) / ", else: print "XHTML(ERROR) / ", - + if buildPDF( xepfilepath, nr ): print "PDF(OK)" else: print "PDF(ERROR)" else: print "Building " + filename + " (FAST MODE)" - + x = XEPTable(CONFIGPATH + "/extensions.xml", XEPPATH + "/xeps.xml") xinfo = XEPInfo(xepfilepath, False) x.setXEP( xinfo ) @@ -355,7 +355,7 @@ def buildAll(): files.sort(key=lambda x: x.lower()) for file in files: buildXEP( file ) - + def makeBundle(): print "Creating the bundle...", executeCommand("mkdir /tmp/xepbundle") @@ -382,13 +382,13 @@ def main(argv): global CONFIGPATH global fast buildall = False - + try: options, remainder = getopt.gnu_getopt(argv, "vaf") except getopt.GetoptError: usage() sys.exit(2) - + for opt, arg in options: if opt in ('-v'): verbose = True @@ -396,37 +396,37 @@ def main(argv): buildall = True elif opt in ('-f'): fast = True - + if len(remainder) > 0: try: xep = int(remainder[0]) xep = "xep-%04d.xml" % xep except: xep = remainder[0] - + executeCommand("mkdir /tmp/xepbuilder") executeCommand("cp ../images/xmpp.pdf /tmp/xepbuilder/xmpp.pdf") executeCommand("cp ../images/xmpp-text.pdf /tmp/xepbuilder/xmpp-text.pdf") executeCommand("cp -r deps/* /tmp/xepbuilder/") - + executeCommand("cp xep.ent /tmp/xep.ent") files_to_delete.append("/tmp/xep.ent") - + if buildall: buildAll() else: buildXEP( xep ) - + # remove xep temporary files for filename in files_to_delete: executeCommand("rm " + filename) - + executeCommand("sed -e '1s///' " + CONFIGPATH + "/extensions.xml > " + XEPPATH + "/../includes/xeplist.txt") - + executeCommand("rm -rfd /tmp/xepbuilder") - + makeBundle() - - + + if __name__ == "__main__": main(sys.argv[1:]) diff --git a/lastcall.py b/lastcall.py index 6332aa7d..d14f26f8 100755 --- a/lastcall.py +++ b/lastcall.py @@ -54,7 +54,7 @@ def getText(nodelist): # get the seconds in the Unix era now = int(time.time()) -# READ IN ARGS: +# READ IN ARGS: # # 1. XEP number # 2. end date @@ -115,9 +115,9 @@ remark = getText(remarkNode.childNodes) # # 1. Is this specification needed to fill gaps in the XMPP # protocol stack or to clarify an existing protocol? -# 2. Does the specification solve the problem stated in the +# 2. Does the specification solve the problem stated in the # introduction and requirements? -# 3. Do you plan to implement this specification in your code? +# 3. Do you plan to implement this specification in your code? # If not, why not? # 4. Do you have any security concerns related to this specification? # 5. Is the specification accurate and clearly written? diff --git a/protopage.xsl b/protopage.xsl index 4c6c9d51..aac0fdc2 100644 --- a/protopage.xsl +++ b/protopage.xsl @@ -55,7 +55,7 @@ THE SOFTWARE.

-

This page provides information about the XML namespaces defined in +

This page provides information about the XML namespaces defined in http://xmpp.org/extensions/xep- diff --git a/xep.xsd b/xep.xsd index 65e0cb29..29d38c04 100644 --- a/xep.xsd +++ b/xep.xsd @@ -62,20 +62,20 @@ THE SOFTWARE. - - + + - - + + - - + + @@ -180,7 +180,7 @@ THE SOFTWARE. - + @@ -341,7 +341,7 @@ THE SOFTWARE. - + @@ -351,7 +351,7 @@ THE SOFTWARE. - + @@ -363,7 +363,7 @@ THE SOFTWARE. - + @@ -373,7 +373,7 @@ THE SOFTWARE. - + @@ -401,8 +401,8 @@ THE SOFTWARE. - - + + @@ -412,8 +412,8 @@ THE SOFTWARE. - - + + diff --git a/xepinfo.py b/xepinfo.py index 39b0bad9..f65ea35d 100644 --- a/xepinfo.py +++ b/xepinfo.py @@ -62,48 +62,47 @@ class XEPInfo: revNode = (headerNode.getElementsByTagName("revision")[0]) self.version = getText((revNode.getElementsByTagName("version")[0]).childNodes) self.date = getText((revNode.getElementsByTagName("date")[0]).childNodes) - + titleNode = (headerNode.getElementsByTagName("interim")) if titleNode: self.interim = True; else: self.interim = False; - + depNode = headerNode.getElementsByTagName("dependencies") self.depends = [] if depNode: depNode = depNode[0] for dep in depNode.getElementsByTagName("spec"): self.depends.append(getText(dep.childNodes)) - + def getInterim(self): return self.interim - + def getNr(self): return self.nr - + def getTitle(self): return self.title - + def getShortname(self): return self.shortname - + def getAbstract(self): return self.abstract - + def getStatus(self): return self.status - + def getVersion(self): return self.version - + def getType(self): return self.type - + def getDate(self): return self.date - + def getDepends(self): return self.depends - - \ No newline at end of file + diff --git a/xeputil.py b/xeputil.py index 85e70174..c057e4d6 100644 --- a/xeputil.py +++ b/xeputil.py @@ -1,6 +1,6 @@ # File: xeputil.py # Version: 0.2 -# Description: xep utility functions +# Description: xep utility functions # Last Modified: 2010 # Author: Tobias Markmann (tm@ayena.de) @@ -54,13 +54,13 @@ class XEP: revs = [] for rev in fctx.filelog(): revs.append(fctx.filectx(rev).rev()) - + return sorted(revs) def contentOfRevision(self, revision): repo = hg.repository(ui.ui(), self.BASEDIR) fctx = repo.filectx("xep-" + self.nr + ".xml", revision) - + # load content for that revision file_text = fctx.data() return file_text diff --git a/xmpp.css b/xmpp.css index 4ad02883..048b7ec2 100644 --- a/xmpp.css +++ b/xmpp.css @@ -20,7 +20,7 @@ BODY { #main { border: 0px; color: #000000; - font-weight: normal; + font-weight: normal; margin: 0% 0% 5% 17%; padding: 4px 2% 10px 2%; text-decoration: none; @@ -30,7 +30,7 @@ BODY { clear: both; color: #666666; font-size: x-small; - font-weight: normal; + font-weight: normal; text-align: center; text-decoration: none; } @@ -70,11 +70,11 @@ ul { font-weight: bold; } .box { - border: thin dotted; - padding-bottom: 1em; - padding-left: 2em; - padding-right: 2em; - padding-top: 1em; + border: thin dotted; + padding-bottom: 1em; + padding-left: 2em; + padding-right: 2em; + padding-top: 1em; } .caption { font-weight: bold; @@ -84,11 +84,11 @@ ul { white-space: pre; } .def { - text-indent: -6.3em; - padding-bottom: 1em; - padding-left: 6.5em; - padding-right: 10em; - padding-top: 1em; + text-indent: -6.3em; + padding-bottom: 1em; + padding-left: 6.5em; + padding-right: 10em; + padding-top: 1em; } .em { font-style: italic; @@ -110,26 +110,26 @@ ul { .highlight { color: #336699; } -.nav { +.nav { font-size: small; line-height: 45%; - text-decoration: none; - white-space: nowrap; - } -.navhead { + text-decoration: none; + white-space: nowrap; + } +.navhead { color: #336699; font-size: medium; line-height: 90%; padding-left: 0px; - text-decoration: none; + text-decoration: none; } .pagehead { color: #336699; - text-decoration: none; + text-decoration: none; } A:visited.pagehead { color: #336699; - text-decoration: none; + text-decoration: none; } .ref { font-weight: bold;