python Library
makeDoc
Keine Erläuterungen gefunden.
import os import glob #look for alls files with a specific extension import re #regular expressions #============================================== def fontHighlighting(src): """ Apply syntax high-lighting on source code """ #special HTML characters src = src.replace("'","'") src = src.replace("\\","\") src = src.replace("/","/") src = src.replace("\"",""") src = src.replace("<","<") src = src.replace(">",">") #highlight php, xml src = src.replace("<?php","<span class='php'><?php</span>") src = src.replace("?>","<span class='php'>?></span>") src = src.replace("<?xml","<span class='php'><?xml</span>") #highlight comments 1 hashPos = src.find(" #") ampHashPos = src.find("") if hashPos==0: newLine = "<span class='comment'>" newLine = newLine+src[hashPos:]+"</span>" src = newLine elif(hashPos>0 and hashPos!=ampHashPos+1): newLine = src[0:hashPos-1]+" <span class='comment'>" newLine = newLine+src[hashPos:]+"</span>" src = newLine #highlight mysql src = src.replace("mysql_connect","<span class='mysql'>mysql_connect</span>") src = src.replace("mysql_select_db","<span class='mysql'>mysql_select_db</span>") src = src.replace("mysql_query","<span class='mysql'>mysql_query</span>") src = src.replace("mysql_fetch_row","<span class='mysql'>mysql_fetch_row") src = src.replace("mysql_error","<span class='mysql'>mysql_error</span>") src = src.replace("mysql_close","<span class='mysql'>mysql_close</span>") #highlight loops, key phrases src = src.replace("for(","for(") src = src.replace("for(","<span class='structure'>for</span>(") src = src.replace("for ","<span class='structure'>for </span> ") src = src.replace("def ","<span class='structure'>def </span> ") src = src.replace("import ","<span class='structure'>import </span> ") src = src.replace(" as ","<span class='structure'> as </span> ") src = src.replace(":","<span class='structure'>:</span>") src = src.replace("if(","<span class='structure'>if</span>(") src = src.replace("else","<span class='structure'>else</span>") src = src.replace("else","<span class='structure'>else</span>") src = src.replace("case","<span class='structure'>case</span>") src = src.replace("default","<span class='structure'>default</span>") src = src.replace("switch","<span class='structure'>switch</span>") src = src.replace("while","<span class='structure'>while</span>") src = src.replace("function","<span class='function'>function</span>") src = src.replace("include(","<span class='function'>include</span>(") src = src.replace("include_once(","<span class='function'>include_once</span>(") src = src.replace("return","<span class='function'>return</span>") src = src.replace("(","<span class='paren'>(</span>") src = src.replace(")","<span class='paren'>)</span>") src = src.replace("{","<span class='paren'>{</span>") src = src.replace("}","<span class='paren'>}</span>") #highlight comments 2 src = src.replace("/*","<span class='comment'>/*") src = src.replace("*/","*/</span>") #src = src.replace("","") return src #============================================== def markPythonComments(source): """ In python, there are alternating 3 quotes, that need to be identified. """ marker = """"" markLen = len(marker) i=-1 for ln,srcLine in enumerate(source): commentPos = srcLine.find(marker) if commentPos>0: i=i+1 if (i % 2) == 0: #comment start #print(i,ln,"start") source[ln] = srcLine[0:commentPos]+"<span class='comment'>"+srcLine[commentPos:] else: #comment end #print(i,ln,"end") source[ln] = srcLine[0:commentPos+markLen]+"</span>"+srcLine[commentPos+markLen:] return source #=======================================# if __name__ == "__main__": fnames = [] fnames = glob.glob("./*.py") fnames.sort() myIndex = "" for f in fnames: thisFile = f.replace(".\\",""); thisFile = thisFile.replace("./",""); myIndex = myIndex+thisFile+";" with open ("./Doc/index", "w") as indexFile: indexFile.write(myIndex) for f in fnames: print(f) with open (f, "r") as srcfile: sourceHL = [] source = srcfile.readlines() for s in source: sourceHL.append( fontHighlighting(s) ) sourceHL = markPythonComments(sourceHL) filename = "./Doc/"+f[0:f.rfind(".")]+".txt" filename = filename.replace("../","./") docFile = open(filename, "wt") for shl in sourceHL: docFile.write(shl) docFile.close() print(" --> "+filename)
Index of Library
Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.