[DEV] add code parsing and display for ducumentation
This commit is contained in:
parent
47b884d9b2
commit
b02c8b5221
@ -2,6 +2,7 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import codeHL
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
|
||||||
@ -18,7 +19,7 @@ import re
|
|||||||
def transcode(value):
|
def transcode(value):
|
||||||
#value = re.sub(r'\[code(( |\t|\n|\r)+style=(.*))?\](.*?)\[/code\]',
|
#value = re.sub(r'\[code(( |\t|\n|\r)+style=(.*))?\](.*?)\[/code\]',
|
||||||
value = re.sub(r'\[code(( |\t|\n|\r)+style=(.*?))?\](.*?)\[/code\]',
|
value = re.sub(r'\[code(( |\t|\n|\r)+style=(.*?))?\](.*?)\[/code\]',
|
||||||
r'<pre>\4</pre>',
|
replace_code, #r'<pre>\4</pre>',
|
||||||
value,
|
value,
|
||||||
flags=re.DOTALL)
|
flags=re.DOTALL)
|
||||||
|
|
||||||
@ -26,3 +27,11 @@ def transcode(value):
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def replace_code(match):
|
||||||
|
if match.group() == "":
|
||||||
|
return ""
|
||||||
|
#debug.info("plop: " + str(match.groups()))
|
||||||
|
value = codeHL.transcode(match.groups()[2], match.groups()[3])
|
||||||
|
return '<pre>' + value + '</pre>'
|
||||||
|
|
||||||
|
@ -31,6 +31,19 @@ def transcode(value):
|
|||||||
value = re.sub(r'\[lib\[(.*?) \| (.*?)\]\]',
|
value = re.sub(r'\[lib\[(.*?) \| (.*?)\]\]',
|
||||||
r'<a href="../\1">\2</a>',
|
r'<a href="../\1">\2</a>',
|
||||||
value)
|
value)
|
||||||
|
|
||||||
|
value = re.sub(r'\[doc\[(.*?) \| (.*?)\]\]',
|
||||||
|
r'<a href="\1.html">\2</a>',
|
||||||
|
value)
|
||||||
|
|
||||||
|
value = re.sub(r'\[tutorial\[(.*?) \| (.*?)\]\]',
|
||||||
|
r'<a href="tutorial_\1.html">\2</a>',
|
||||||
|
value)
|
||||||
|
|
||||||
|
value = re.sub(r'\[class\[(.*?)\]\]',
|
||||||
|
replace_link_class,
|
||||||
|
value)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
p = re.compile('\[\[(.*?)(|(.*?))\]\])',
|
p = re.compile('\[\[(.*?)(|(.*?))\]\])',
|
||||||
flags=re.DOTALL)
|
flags=re.DOTALL)
|
||||||
@ -51,3 +64,14 @@ def replace_link(match):
|
|||||||
value += "</ul>"
|
value += "</ul>"
|
||||||
return transcode(value)
|
return transcode(value)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
def replace_link_class(match):
|
||||||
|
if match.group() == "":
|
||||||
|
return ""
|
||||||
|
#debug.info("plop: " + str(match.group()))
|
||||||
|
className = match.groups()[0]
|
||||||
|
value = re.sub(':', '_', className)
|
||||||
|
return '<a href="' + value + '.html">' + className + '</a>'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@ import re
|
|||||||
## @return Transformed string.
|
## @return Transformed string.
|
||||||
##
|
##
|
||||||
def transcode(value):
|
def transcode(value):
|
||||||
|
|
||||||
value = re.sub(r'\[b\](.*?)\[/b\]',
|
value = re.sub(r'\[b\](.*?)\[/b\]',
|
||||||
r'<span style="font-weight: bold;">\1</span>',
|
r'<span style="font-weight: bold;">\1</span>',
|
||||||
value,
|
value,
|
||||||
|
@ -7,6 +7,7 @@ import re
|
|||||||
|
|
||||||
##
|
##
|
||||||
## @brief Transcode .
|
## @brief Transcode .
|
||||||
|
## =?=Page Title=?=
|
||||||
## ==Title 1==
|
## ==Title 1==
|
||||||
## ===Title 2===
|
## ===Title 2===
|
||||||
## ====Title 3====
|
## ====Title 3====
|
||||||
@ -17,6 +18,10 @@ import re
|
|||||||
##
|
##
|
||||||
def transcode(value):
|
def transcode(value):
|
||||||
|
|
||||||
|
value = re.sub(r'=\?=(.*?)=\?=',
|
||||||
|
r'<h1><center>\1</center></h1>',
|
||||||
|
value)
|
||||||
|
|
||||||
value = re.sub(r'\n======(.*?)======',
|
value = re.sub(r'\n======(.*?)======',
|
||||||
r'\n<h5>\1</h5>',
|
r'\n<h5>\1</h5>',
|
||||||
value)
|
value)
|
||||||
@ -36,7 +41,8 @@ def transcode(value):
|
|||||||
value = re.sub(r'\n==(.*?)==',
|
value = re.sub(r'\n==(.*?)==',
|
||||||
r'\n<h1>\1</h1>',
|
r'\n<h1>\1</h1>',
|
||||||
'\n' + value)
|
'\n' + value)
|
||||||
# todo : remove \n at the start of the file ...
|
|
||||||
|
value = value[1:]
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import re
|
||||||
import BB_Title
|
import BB_Title
|
||||||
import BB_Text
|
import BB_Text
|
||||||
import BB_IndentAndDot
|
import BB_IndentAndDot
|
||||||
@ -20,6 +21,9 @@ import BB_Specification
|
|||||||
## @return Transformed string.
|
## @return Transformed string.
|
||||||
##
|
##
|
||||||
def transcode(value):
|
def transcode(value):
|
||||||
|
# remove html property
|
||||||
|
value = re.sub(r'<', r'<', value)
|
||||||
|
value = re.sub(r'>', r'>', value)
|
||||||
value = BB_comment.transcode(value)
|
value = BB_comment.transcode(value)
|
||||||
value = BB_Title.transcode(value)
|
value = BB_Title.transcode(value)
|
||||||
value = BB_Text.transcode(value)
|
value = BB_Text.transcode(value)
|
||||||
|
@ -2,3 +2,30 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import codeHLcpp
|
||||||
|
import codeHLBBcode
|
||||||
|
import codeHLJava
|
||||||
|
import codeHLjson
|
||||||
|
import codeHLPython
|
||||||
|
import codeHLXML
|
||||||
|
import codeHLshell
|
||||||
|
|
||||||
|
|
||||||
|
def transcode(type, value):
|
||||||
|
if type == "c++":
|
||||||
|
value = codeHLcpp.transcode(value)
|
||||||
|
elif type == "java":
|
||||||
|
value = codeHLJava.transcode(value)
|
||||||
|
elif type == "bbcode":
|
||||||
|
value = codeHLBBcode.transcode(value)
|
||||||
|
elif type == "python":
|
||||||
|
value = codeHLPython.transcode(value)
|
||||||
|
elif type == "json":
|
||||||
|
value = codeHLjson.transcode(value)
|
||||||
|
elif type == "xml":
|
||||||
|
value = codeHLXML.transcode(value)
|
||||||
|
elif type == "shell":
|
||||||
|
value = codeHLshell.transcode(value)
|
||||||
|
|
||||||
|
return value
|
||||||
|
|
||||||
|
@ -2,3 +2,8 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def transcode(value):
|
||||||
|
return value
|
||||||
|
@ -2,3 +2,8 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def transcode(value):
|
||||||
|
return value
|
||||||
|
@ -2,3 +2,8 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def transcode(value):
|
||||||
|
return value
|
||||||
|
@ -2,3 +2,8 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def transcode(value):
|
||||||
|
return value
|
||||||
|
@ -2,3 +2,62 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import re
|
||||||
|
|
||||||
|
listRegExp = [
|
||||||
|
[ r'/\*\*(.*?)\*/', 'code-doxygen'],
|
||||||
|
[ r'/\*(.*?)\*/', 'code-comment'],
|
||||||
|
[ r'//!(.*?)\n', 'code-doxygen'],
|
||||||
|
[ r'//(.*?)\n', 'code-comment'],
|
||||||
|
[ r'#(.*?)\n', 'code-preproc'],
|
||||||
|
[ r'"((\\"|.)*?)"', 'code-text-quote'],
|
||||||
|
[ r"'(('|.)*?)'", 'code-text-quote'],
|
||||||
|
[ r'(inline|const|class|virtual|private|public|protected|friend|const|extern|auto|register|static|volatile|typedef|struct|union|enum)',
|
||||||
|
'code-storage-keyword'],
|
||||||
|
[ r'(bool|BOOL|char(16_t|32_t)?|double|float|u?int(8|16|32|64|128)?(_t)?|long|short|signed|size_t|unsigned|void|(I|U)(8|16|32|64|128))',
|
||||||
|
'code-type'],
|
||||||
|
[ r'(((0(x|X)[0-9a-fA-F]*)|(\d+\.?\d*|\.\d+)((e|E)(\+|\-)?\d+)?)(L|l|UL|ul|u|U|F|f)?)',
|
||||||
|
'code-number'],
|
||||||
|
[ r'(m_[A-Za-z_0-9])',
|
||||||
|
'code-member'],
|
||||||
|
[ r'(( |\t)_[A-Za-z_0-9]*)',
|
||||||
|
'code-input-function'],
|
||||||
|
[ r'(return|goto|if|else|case|default|switch|break|continue|while|do|for|sizeof)( |\t|\(|\{)',
|
||||||
|
'code-keyword'],
|
||||||
|
[ r'((new|delete|try|catch|memset|fopen|fread|fwrite|fgets|fclose|printf|(f|s|diag_)printf|calloc|malloc|realloc|(cyg|sup)_([a-z]|[A-Z]|[0-9]|_)+)( |\t|\())',
|
||||||
|
'code-function-system'],
|
||||||
|
[ r'((\w|_)+[ \t]*\()',
|
||||||
|
'code-function-name'],
|
||||||
|
[ r'(NULL|MAX|MIN|__LINE__|__DATA__|__FILE__|__func__|__TIME__|__STDC__)',
|
||||||
|
'code-generic-define'],
|
||||||
|
[ r'([A-Z_][A-Z_0-9]{3,500})',
|
||||||
|
'code-macro"'],
|
||||||
|
[ r'(==|>=|<=|!=|>{1,2}|<{1,2}|&&|\{|\})',
|
||||||
|
'code-operator'],
|
||||||
|
[ r'(true|TRUE|false|FALSE)',
|
||||||
|
'<code-operator'],
|
||||||
|
[ r'((\w+::)+\w+)',
|
||||||
|
'code-class']
|
||||||
|
]
|
||||||
|
|
||||||
|
def transcode(value):
|
||||||
|
inValue = value
|
||||||
|
outValue = ""
|
||||||
|
haveFindSomething = False;
|
||||||
|
for reg1, color in listRegExp:
|
||||||
|
result = re.search(reg1, inValue, re.DOTALL)
|
||||||
|
while result != None:
|
||||||
|
haveFindSomething = True
|
||||||
|
# sub parse the start :
|
||||||
|
outValue += transcode(inValue[:result.start()])
|
||||||
|
# transform local
|
||||||
|
outValue += '<span class="' + color + '">'
|
||||||
|
outValue += result.group()
|
||||||
|
outValue += '</span>'
|
||||||
|
|
||||||
|
# change the input value
|
||||||
|
inValue = inValue[result.end():]
|
||||||
|
# Search again ...
|
||||||
|
result = re.search(reg1, inValue, re.DOTALL)
|
||||||
|
outValue += inValue
|
||||||
|
return outValue
|
||||||
|
@ -2,3 +2,9 @@
|
|||||||
import lutinDebug as debug
|
import lutinDebug as debug
|
||||||
import sys
|
import sys
|
||||||
import lutinTools
|
import lutinTools
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
|
def transcode(value):
|
||||||
|
return value
|
||||||
|
|
||||||
|
14
codeHL/codeHLshell.py
Normal file
14
codeHL/codeHLshell.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/python
|
||||||
|
import lutinDebug as debug
|
||||||
|
import sys
|
||||||
|
import lutinTools
|
||||||
|
import re
|
||||||
|
|
||||||
|
listRegExp = [
|
||||||
|
[ r'#(.*?)\n', r'<span class="code-preproc">#\1</span>\n']
|
||||||
|
]
|
||||||
|
|
||||||
|
def transcode(value):
|
||||||
|
for reg1, reg2 in listRegExp:
|
||||||
|
value = re.sub(reg1, reg2, value, flags=re.DOTALL)
|
||||||
|
return value
|
@ -6,6 +6,7 @@ import lutinTools
|
|||||||
sys.path.append(lutinTools.GetCurrentPath(__file__) + "/ply/ply/")
|
sys.path.append(lutinTools.GetCurrentPath(__file__) + "/ply/ply/")
|
||||||
sys.path.append(lutinTools.GetCurrentPath(__file__) + "/cppParser/CppHeaderParser/")
|
sys.path.append(lutinTools.GetCurrentPath(__file__) + "/cppParser/CppHeaderParser/")
|
||||||
sys.path.append(lutinTools.GetCurrentPath(__file__) + "/codeBB/")
|
sys.path.append(lutinTools.GetCurrentPath(__file__) + "/codeBB/")
|
||||||
|
sys.path.append(lutinTools.GetCurrentPath(__file__) + "/codeHL/")
|
||||||
import CppHeaderParser
|
import CppHeaderParser
|
||||||
import lutinDocHtml
|
import lutinDocHtml
|
||||||
import lutinDocMd
|
import lutinDocMd
|
||||||
|
@ -129,3 +129,66 @@ pre {
|
|||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
color:#466cb4;
|
color:#466cb4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.code-doxygen {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#bf3e00;
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-comment {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#b704b5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-preproc {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#ac0000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code-text-quote {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#008e00;
|
||||||
|
}
|
||||||
|
.code-number {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#007b00;
|
||||||
|
}
|
||||||
|
.code-member {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#7c5406;
|
||||||
|
}
|
||||||
|
.code-input-function {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#B80000;
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
.code-function-name {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#09857e;
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
.code-function-system {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#acaa00;
|
||||||
|
}
|
||||||
|
.code-generic-define {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#3c850b;
|
||||||
|
}
|
||||||
|
.code-macro {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#3c850b;
|
||||||
|
}
|
||||||
|
.code-operator {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#1633a3;
|
||||||
|
}
|
||||||
|
.code-keyword {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#466cb4;
|
||||||
|
}
|
||||||
|
.code-class {
|
||||||
|
text-decoration:none;
|
||||||
|
color:#006cb4;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user