mirror of
https://github.com/opencv/opencv.git
synced 2024-12-02 07:39:57 +08:00
Improved javadoc generation scripts
This commit is contained in:
parent
b165997e22
commit
50009e1546
@ -1,5 +1,5 @@
|
|||||||
import os, sys, re, string, glob
|
import os, sys, re, string, glob
|
||||||
allmodules = ["core", "flann", "imgproc", "ml", "highgui", "video", "features2d", "calib3d", "objdetect", "legacy", "contrib", "gpu", "androidcamera", "haartraining", "java", "python", "stitching", "traincascade", "ts", "photo"]
|
allmodules = ["core", "flann", "imgproc", "ml", "highgui", "video", "features2d", "calib3d", "objdetect", "legacy", "contrib", "gpu", "androidcamera", "haartraining", "java", "python", "stitching", "traincascade", "ts", "photo", "videostab"]
|
||||||
verbose = False
|
verbose = False
|
||||||
show_warnings = True
|
show_warnings = True
|
||||||
show_errors = True
|
show_errors = True
|
||||||
@ -67,14 +67,47 @@ class JavadocGenerator(object):
|
|||||||
inf.close()
|
inf.close()
|
||||||
outf.close()
|
outf.close()
|
||||||
|
|
||||||
|
def FinishParagraph(self, text):
|
||||||
|
return text[:-1] + "</p>\n"
|
||||||
|
|
||||||
def ReformatForJavadoc(self, s):
|
def ReformatForJavadoc(self, s):
|
||||||
out = ""
|
out = ""
|
||||||
|
in_paragraph = False
|
||||||
|
in_list = False
|
||||||
for term in s.split("\n"):
|
for term in s.split("\n"):
|
||||||
if term.startswith("*") or term.startswith("#."):
|
in_list_item = False
|
||||||
term = " " + term
|
if term.startswith("*"):
|
||||||
|
in_list_item = True
|
||||||
|
if in_paragraph:
|
||||||
|
out = self.FinishParagraph(out)
|
||||||
|
in_paragraph = False
|
||||||
|
if not in_list:
|
||||||
|
out += " * <ul>\n"
|
||||||
|
in_list = True
|
||||||
|
term = " <li>" + term[1:]
|
||||||
|
|
||||||
|
if term.startswith("#."):
|
||||||
|
in_list_item = True
|
||||||
|
if in_paragraph:
|
||||||
|
out = self.FinishParagraph(out)
|
||||||
|
in_paragraph = False
|
||||||
|
if not in_list:
|
||||||
|
out += " * <ul>\n"
|
||||||
|
in_list = True
|
||||||
|
term = " <li>" + term[2:]
|
||||||
|
|
||||||
if not term:
|
if not term:
|
||||||
|
if in_paragraph:
|
||||||
|
out = self.FinishParagraph(out)
|
||||||
|
in_paragraph = False
|
||||||
out += " *\n"
|
out += " *\n"
|
||||||
else:
|
else:
|
||||||
|
if in_list and not in_list_item:
|
||||||
|
in_list = False
|
||||||
|
if out.endswith(" *\n"):
|
||||||
|
out = out[:-3] + " * </ul>\n *\n"
|
||||||
|
else:
|
||||||
|
out += " * </ul>\n"
|
||||||
pos_start = 0
|
pos_start = 0
|
||||||
pos_end = min(77, len(term)-1)
|
pos_end = min(77, len(term)-1)
|
||||||
while pos_start < pos_end:
|
while pos_start < pos_end:
|
||||||
@ -91,12 +124,22 @@ class JavadocGenerator(object):
|
|||||||
pos_end += 1
|
pos_end += 1
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
out += " * " + term[pos_start:pos_end+1].rstrip() + "\n"
|
if in_paragraph or term.startswith("@") or in_list_item:
|
||||||
|
out += " * "
|
||||||
|
else:
|
||||||
|
in_paragraph = True
|
||||||
|
out += " * <p>"
|
||||||
|
out += term[pos_start:pos_end+1].rstrip() + "\n"
|
||||||
pos_start = pos_end + 1
|
pos_start = pos_end + 1
|
||||||
pos_end = min(pos_start + 77, len(term)-1)
|
pos_end = min(pos_start + 77, len(term)-1)
|
||||||
|
|
||||||
|
if in_paragraph:
|
||||||
|
out = self.FinishParagraph(out)
|
||||||
|
if in_list:
|
||||||
|
out += " * </ul>\n"
|
||||||
return out
|
return out
|
||||||
|
|
||||||
def getJavaName(self, decl):
|
def getJavaName(self, decl, methodSeparator = "."):
|
||||||
name = "org.opencv."
|
name = "org.opencv."
|
||||||
name += decl["module"]
|
name += decl["module"]
|
||||||
if "class" in decl:
|
if "class" in decl:
|
||||||
@ -104,11 +147,11 @@ class JavadocGenerator(object):
|
|||||||
else:
|
else:
|
||||||
name += "." + decl["module"].capitalize()
|
name += "." + decl["module"].capitalize()
|
||||||
if "method" in decl:
|
if "method" in decl:
|
||||||
name += "." + decl["method"]
|
name += methodSeparator + decl["method"]
|
||||||
return name
|
return name
|
||||||
|
|
||||||
def getDocURL(self, decl):
|
def getDocURL(self, decl):
|
||||||
url = "http://opencv.itseez.com/modules/"
|
url = "http://docs.opencv.org/modules/"
|
||||||
url += decl["module"]
|
url += decl["module"]
|
||||||
url += "/doc/"
|
url += "/doc/"
|
||||||
url += os.path.basename(decl["file"]).replace(".rst",".html")
|
url += os.path.basename(decl["file"]).replace(".rst",".html")
|
||||||
@ -168,7 +211,7 @@ class JavadocGenerator(object):
|
|||||||
for see in decl["seealso"]:
|
for see in decl["seealso"]:
|
||||||
seedecl = self.definitions.get(see,None)
|
seedecl = self.definitions.get(see,None)
|
||||||
if seedecl:
|
if seedecl:
|
||||||
doc += prefix + " * @see " + self.getJavaName(seedecl) + "\n"
|
doc += prefix + " * @see " + self.getJavaName(seedecl, "#") + "\n"
|
||||||
else:
|
else:
|
||||||
doc += prefix + " * @see " + see.replace("::",".") + "\n"
|
doc += prefix + " * @see " + see.replace("::",".") + "\n"
|
||||||
prefix = " *\n"
|
prefix = " *\n"
|
||||||
|
@ -499,7 +499,8 @@ class RstParser(object):
|
|||||||
def normalizeText(self, s):
|
def normalizeText(self, s):
|
||||||
if s is None:
|
if s is None:
|
||||||
return s
|
return s
|
||||||
s = re.sub(r"\.\. math::[ ]*\n+(.*?)(\n[ ]*\n|$)", mathReplace2, s)
|
|
||||||
|
s = re.sub(r"\.\. math::[ \r]*\n+((.|\n)*?)(\n[ \r]*\n|$)", mathReplace2, s)
|
||||||
s = re.sub(r":math:`([^`]+?)`", mathReplace, s)
|
s = re.sub(r":math:`([^`]+?)`", mathReplace, s)
|
||||||
s = re.sub(r" *:sup:", "^", s)
|
s = re.sub(r" *:sup:", "^", s)
|
||||||
|
|
||||||
@ -574,6 +575,7 @@ class RstParser(object):
|
|||||||
s = re.sub(r"[\n ]+\.", ".", s)
|
s = re.sub(r"[\n ]+\.", ".", s)
|
||||||
|
|
||||||
s = s.replace("**", "")
|
s = s.replace("**", "")
|
||||||
|
s = re.sub(r"``([^\n]+?)``", "<code>\\1</code>", s)
|
||||||
s = s.replace("``", "\"")
|
s = s.replace("``", "\"")
|
||||||
s = s.replace("`", "\"")
|
s = s.replace("`", "\"")
|
||||||
s = s.replace("\"\"", "\"")
|
s = s.replace("\"\"", "\"")
|
||||||
@ -688,7 +690,7 @@ def mathReplace(match):
|
|||||||
m = m.replace("}", ")")
|
m = m.replace("}", ")")
|
||||||
|
|
||||||
#print "%s ===> %s" % (match.group(0), m)
|
#print "%s ===> %s" % (match.group(0), m)
|
||||||
return m
|
return "<em>" + m + "</em>"
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if len(sys.argv) < 2:
|
if len(sys.argv) < 2:
|
||||||
|
Loading…
Reference in New Issue
Block a user