[DEV] generated code is now usable
This commit is contained in:
parent
378ba0b8fa
commit
7d217467dc
@ -83,6 +83,11 @@ def transcode(value):
|
|||||||
value,
|
value,
|
||||||
flags=re.DOTALL)
|
flags=re.DOTALL)
|
||||||
|
|
||||||
|
value = re.sub(r'\[note\](.*?)\[/note\]',
|
||||||
|
r'<br/><b>Note:</b><pre>\1</pre>',
|
||||||
|
value,
|
||||||
|
flags=re.DOTALL)
|
||||||
|
|
||||||
value = re.sub(r'____(.*?)\n',
|
value = re.sub(r'____(.*?)\n',
|
||||||
r'<hr>',
|
r'<hr>',
|
||||||
value,
|
value,
|
||||||
|
@ -4,6 +4,33 @@ import sys
|
|||||||
import monkTools
|
import monkTools
|
||||||
import re
|
import re
|
||||||
|
|
||||||
|
listRegExp = [
|
||||||
|
[ r'<!\-\-!(.*?)\-\->', 'code-doxygen'],
|
||||||
|
[ r'<!\-\-(.*?)\-\->', 'code-comment'],
|
||||||
|
[ r'"((\\"|.)*?)"', 'code-text-quote'],
|
||||||
|
[ r"'(('|.)*?)'", 'code-text-quote'],
|
||||||
|
[ r'</[0-9a-zA-Z_]+|<[0-9a-zA-Z_]+|/>|>',
|
||||||
|
'code-function-name']
|
||||||
|
]
|
||||||
|
|
||||||
def transcode(value):
|
def transcode(value):
|
||||||
return 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
|
||||||
|
153
monkHtml.py
153
monkHtml.py
@ -11,20 +11,27 @@ import monkNode as node
|
|||||||
|
|
||||||
|
|
||||||
def display_doxygen_param(comment, input, output):
|
def display_doxygen_param(comment, input, output):
|
||||||
data = "<b>Parameter"
|
data = '<tr>'
|
||||||
|
data = '<td>'
|
||||||
|
data += "<b>Parameter"
|
||||||
if input == True:
|
if input == True:
|
||||||
data += " [input]"
|
data += " [input]"
|
||||||
if output == True:
|
if output == True:
|
||||||
data += " [output]"
|
data += " [output]"
|
||||||
data += ":</b> "
|
data += ":</b>"
|
||||||
|
data += '</td>'
|
||||||
#extract first element:
|
#extract first element:
|
||||||
val = comment.find(" ")
|
val = comment.find(" ")
|
||||||
var = comment[:val]
|
var = comment[:val]
|
||||||
endComment = comment[val:]
|
endComment = comment[val:]
|
||||||
|
data += '<td>'
|
||||||
# TODO : Check if it exist in the parameter list ...
|
# TODO : Check if it exist in the parameter list ...
|
||||||
data += "<span class=\"code-argument\">" + var + "</span> " + endComment
|
data += "<span class=\"code-argument\">" + var + "</span> "
|
||||||
|
data += '</td>'
|
||||||
data += "<br/>"
|
data += '<td>'
|
||||||
|
data += codeBB.transcode(endComment)
|
||||||
|
data += '</td>'
|
||||||
|
data += '</tr>\n'
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
@ -40,8 +47,8 @@ def parse_doxygen(data) :
|
|||||||
# nothing to do : Nomale case of the first \n
|
# nothing to do : Nomale case of the first \n
|
||||||
None
|
None
|
||||||
elif element[:6] == "brief ":
|
elif element[:6] == "brief ":
|
||||||
data2 += element[6:]
|
data2 += codeBB.transcode(element[6:])
|
||||||
data2 += "<br/>"
|
data2 += '<br/>'
|
||||||
|
|
||||||
for element in streams:
|
for element in streams:
|
||||||
if element[:1] == "\n" \
|
if element[:1] == "\n" \
|
||||||
@ -49,11 +56,12 @@ def parse_doxygen(data) :
|
|||||||
# nothing to do : Nomale case of the first \n
|
# nothing to do : Nomale case of the first \n
|
||||||
None
|
None
|
||||||
elif element[:5] == "note ":
|
elif element[:5] == "note ":
|
||||||
data2 += "<b>Notes:</b> "
|
data2 += '<b>Note:</b> '
|
||||||
data2 += element[5:]
|
data2 += codeBB.transcode(element[5:])
|
||||||
data2 += "<br/> "
|
data2 += '<br/> '
|
||||||
|
|
||||||
data3 = ''
|
data3 = ''
|
||||||
|
dataReturn = ''
|
||||||
for element in streams:
|
for element in streams:
|
||||||
if element[:1] == "\n" \
|
if element[:1] == "\n" \
|
||||||
or element[:2] == "\n\n":
|
or element[:2] == "\n\n":
|
||||||
@ -69,13 +77,22 @@ def parse_doxygen(data) :
|
|||||||
elif element[:6] == "param ":
|
elif element[:6] == "param ":
|
||||||
data3 += display_doxygen_param(element[6:], False, False)
|
data3 += display_doxygen_param(element[6:], False, False)
|
||||||
elif element[:7] == "return ":
|
elif element[:7] == "return ":
|
||||||
data3 += "<b>Return:</b> "
|
if dataReturn != "":
|
||||||
data3 += element[7:]
|
dataReturn += '<br/>'
|
||||||
data3 += "<br/>"
|
dataReturn += element[7:]
|
||||||
if data3 != '':
|
if data3 != '' \
|
||||||
data2 += "<ul>\n"
|
or dataReturn != '':
|
||||||
|
data2 += '<ul>\n'
|
||||||
|
data2 += '<table class="parameter-list">\n'
|
||||||
data2 += data3
|
data2 += data3
|
||||||
data2 += "</ul>\n"
|
if dataReturn != "":
|
||||||
|
data2 += '<tr><td>'
|
||||||
|
data2 += '<b>Return: </b>'
|
||||||
|
data2 += '</td><td></td><td>'
|
||||||
|
data2 += codeBB.transcode(dataReturn)
|
||||||
|
data2 += '</td></tr>'
|
||||||
|
data2 += '</table>\n'
|
||||||
|
data2 += '</ul>\n'
|
||||||
return data2
|
return data2
|
||||||
|
|
||||||
def white_space(size) :
|
def white_space(size) :
|
||||||
@ -135,6 +152,8 @@ def calculate_methode_size(list):
|
|||||||
|
|
||||||
|
|
||||||
def write_methode(element, namespaceStack, displaySize = None, link = True):
|
def write_methode(element, namespaceStack, displaySize = None, link = True):
|
||||||
|
if element['node'].get_request_hidden() == True:
|
||||||
|
return
|
||||||
if displaySize == None:
|
if displaySize == None:
|
||||||
displaySize = calculate_methode_size([element])
|
displaySize = calculate_methode_size([element])
|
||||||
ret = ""
|
ret = ""
|
||||||
@ -337,15 +356,34 @@ def generate_page(outFolder, header, footer, element):
|
|||||||
if len(listBase) != 0:
|
if len(listBase) != 0:
|
||||||
# display all functions :
|
# display all functions :
|
||||||
file.write('<h2>Detail:</h2>\n')
|
file.write('<h2>Detail:</h2>\n')
|
||||||
|
allDetailDoc = ""
|
||||||
|
lastDoc = ""
|
||||||
for subElement in listBase:
|
for subElement in listBase:
|
||||||
file.write('<h3><a id="' + str(subElement['node'].get_uid()) + '">' + subElement['node'].get_name() + '</a></h3>')
|
file.write('<a id="' + str(subElement['node'].get_uid()) + '"/>')
|
||||||
file.write('<pre>\n');
|
if lastDoc != "" \
|
||||||
file.write(write_methode(subElement, namespaceStack, link = False))
|
and subElement['node'].get_request_in_previous() == True:
|
||||||
file.write('</pre>\n');
|
allDetailDoc += write_methode(subElement, namespaceStack, link = False)
|
||||||
#debug.info(str(element['node'].get_doc()));
|
else:
|
||||||
file.write(parse_doxygen(subElement['node'].get_doc()));
|
if lastDoc != "":
|
||||||
file.write('<br/>\n');
|
allDetailDoc += '</pre>\n'
|
||||||
file.write('<hr/>\n');
|
allDetailDoc += lastDoc
|
||||||
|
allDetailDoc += '<br/>\n'
|
||||||
|
allDetailDoc += '<hr/>\n'
|
||||||
|
file.write(allDetailDoc);
|
||||||
|
allDetailDoc = ""
|
||||||
|
lastDoc = ""
|
||||||
|
allDetailDoc += '<h3>' + subElement['node'].get_name() + '</h3>'
|
||||||
|
allDetailDoc += '<pre>\n'
|
||||||
|
allDetailDoc += write_methode(subElement, namespaceStack, link = False)
|
||||||
|
lastDoc = parse_doxygen(subElement['node'].get_doc()) + '\n'
|
||||||
|
if lastDoc != "":
|
||||||
|
allDetailDoc += '</pre>\n'
|
||||||
|
allDetailDoc += lastDoc
|
||||||
|
allDetailDoc += '<br/>\n'
|
||||||
|
allDetailDoc += '<hr/>\n'
|
||||||
|
file.write(allDetailDoc);
|
||||||
|
allDetailDoc = ""
|
||||||
|
lastDoc = ""
|
||||||
|
|
||||||
if element.get_node_type() == 'enum':
|
if element.get_node_type() == 'enum':
|
||||||
myElementList = element.get_enum_list()
|
myElementList = element.get_enum_list()
|
||||||
@ -420,12 +458,71 @@ def generate(myLutinDoc, outFolder) :
|
|||||||
genericHeader += '<body>\n'
|
genericHeader += '<body>\n'
|
||||||
genericHeader += ' <div class="navbar navbar-fixed-top">\n'
|
genericHeader += ' <div class="navbar navbar-fixed-top">\n'
|
||||||
genericHeader += ' <div class="container">\n'
|
genericHeader += ' <div class="container">\n'
|
||||||
genericHeader += ' <h1>' + myDoc.get_name() + ' Library</h1>\n'
|
if myDoc.get_node_type() == 'library':
|
||||||
|
genericHeader += ' <h1><a href="index.html">' + myDoc.get_name() + ' library</a></h1>\n'
|
||||||
|
else:
|
||||||
|
genericHeader += ' <h1><a href="index.html">' + myDoc.get_name() + '</a></h1>\n'
|
||||||
|
genericHeader += '<h3>API:</h3>'
|
||||||
genericHeader += ' <div id="menu">\n'
|
genericHeader += ' <div id="menu">\n'
|
||||||
#genericHeader += ' <h2>' + myDoc.moduleName + '</h2>\n'
|
#genericHeader += ' <h2>' + myDoc.moduleName + '</h2>\n'
|
||||||
genericHeader += generate_menu(myDoc)
|
genericHeader += generate_menu(myDoc)
|
||||||
#genericHeader += ' <h3> </h3>\n'
|
#genericHeader += ' <h3> </h3>\n'
|
||||||
genericHeader += ' </div>\n'
|
genericHeader += ' </div>\n'
|
||||||
|
# TODO : add Generic doc main point.
|
||||||
|
if len(myLutinDoc.listDocFile) > 0:
|
||||||
|
genericHeader += '<h3>Documentation:</h3>'
|
||||||
|
genericHeader += '<div id="menu">\n'
|
||||||
|
for docInputName,outpath in myLutinDoc.listDocFile:
|
||||||
|
outputFileName = outFolder + "/" + outpath.replace('/','_') +".html"
|
||||||
|
outputFileName = outputFileName.split('/')[-1]
|
||||||
|
name = outputFileName.split('_')[-1][:-5]
|
||||||
|
if name == "index":
|
||||||
|
continue
|
||||||
|
genericHeader += '<ul class="niveau1">'
|
||||||
|
genericHeader += '<li><a href="' + outputFileName + '">' + name + '</a></li>\n'
|
||||||
|
genericHeader += '</ul>'
|
||||||
|
genericHeader += '</div>\n'
|
||||||
|
# TODO : add Tutorial doc main point.
|
||||||
|
if len(myLutinDoc.listTutorialFile) > 0:
|
||||||
|
genericHeader += '<h3>Tutorials:</h3>'
|
||||||
|
genericHeader += '<div id="menu">\n'
|
||||||
|
for docInputName,outpath in myLutinDoc.listTutorialFile:
|
||||||
|
outputFileName = outFolder + "/" + outpath+".html"
|
||||||
|
outputFileName = outputFileName.split('/')[-1]
|
||||||
|
name = outputFileName.split('_')[-1][:-5]
|
||||||
|
if name == "index":
|
||||||
|
continue
|
||||||
|
genericHeader += '<ul class="niveau1">'
|
||||||
|
genericHeader += '<li><a href="tutorial_' + outputFileName + '">' + name + '</a></li>\n'
|
||||||
|
genericHeader += '</ul>'
|
||||||
|
genericHeader += '</div>\n'
|
||||||
|
|
||||||
|
|
||||||
|
localWebsite = myLutinDoc.get_website()
|
||||||
|
# add other libs entry point :
|
||||||
|
allModule = module.get_all_module()
|
||||||
|
if len(allModule) != 1:
|
||||||
|
genericHeader += '<br/>'
|
||||||
|
genericHeader += '<h3>Associate libraries:</h3>'
|
||||||
|
genericHeader += '<div id="menu">\n'
|
||||||
|
for modd in allModule:
|
||||||
|
if modd.type == 'application':
|
||||||
|
continue
|
||||||
|
if modd.name == myLutinDoc.name:
|
||||||
|
continue
|
||||||
|
genericHeader += '<ul class="niveau1">'
|
||||||
|
link = node.get_doc_website_page_relative(localWebsite, modd.get_website())
|
||||||
|
if link[-1] != "/":
|
||||||
|
link += "/"
|
||||||
|
genericHeader += '<li><a href="' + link + 'index.html">' + modd.name + '</a></li>\n'
|
||||||
|
genericHeader += '</ul>'
|
||||||
|
genericHeader += '</div>\n'
|
||||||
|
genericHeader += "<br/>\n"
|
||||||
|
genericHeader += "<br/>\n"
|
||||||
|
genericHeader += "<br/>\n"
|
||||||
|
genericHeader += "<br/>\n"
|
||||||
|
genericHeader += "<br/>\n"
|
||||||
|
genericHeader += "<br/>\n"
|
||||||
genericHeader += " </div>\n"
|
genericHeader += " </div>\n"
|
||||||
genericHeader += " </div>\n"
|
genericHeader += " </div>\n"
|
||||||
genericHeader += " <div class=\"container\" id=\"content\">\n"
|
genericHeader += " <div class=\"container\" id=\"content\">\n"
|
||||||
@ -440,7 +537,7 @@ def generate(myLutinDoc, outFolder) :
|
|||||||
# create the namespace index properties :
|
# create the namespace index properties :
|
||||||
generate_page(outFolder, genericHeader, genericFooter, myDoc)
|
generate_page(outFolder, genericHeader, genericFooter, myDoc)
|
||||||
|
|
||||||
for docInputName,outpath in myLutinDoc.listDocFile :
|
for docInputName,outpath in myLutinDoc.listTutorialFile :
|
||||||
debug.print_element("doc", myLutinDoc.name, "<==", docInputName)
|
debug.print_element("doc", myLutinDoc.name, "<==", docInputName)
|
||||||
outputFileName = outFolder + "/" + outpath.replace('/','_') +".html"
|
outputFileName = outFolder + "/" + outpath.replace('/','_') +".html"
|
||||||
debug.debug("output file : " + outputFileName)
|
debug.debug("output file : " + outputFileName)
|
||||||
@ -451,9 +548,9 @@ def generate(myLutinDoc, outFolder) :
|
|||||||
outData = genericHeader + codeBB.transcode(inData) + genericFooter
|
outData = genericHeader + codeBB.transcode(inData) + genericFooter
|
||||||
monkTools.file_write_data(outputFileName, outData)
|
monkTools.file_write_data(outputFileName, outData)
|
||||||
|
|
||||||
for docInputName,outpath in myLutinDoc.listTutorialFile :
|
for docInputName,outpath in myLutinDoc.listDocFile :
|
||||||
debug.print_element("tutorial", myLutinDoc.name, "<==", docInputName)
|
debug.print_element("tutorial", myLutinDoc.name, "<==", docInputName)
|
||||||
outputFileName = outFolder + "/" + outpath+".html"
|
outputFileName = outFolder + outpath + ".html"
|
||||||
debug.debug("output file : " + outputFileName)
|
debug.debug("output file : " + outputFileName)
|
||||||
monkTools.create_directory_of_file(outputFileName)
|
monkTools.create_directory_of_file(outputFileName)
|
||||||
inData = monkTools.file_read_data(docInputName)
|
inData = monkTools.file_read_data(docInputName)
|
||||||
|
@ -126,9 +126,9 @@ class Module:
|
|||||||
debug.verbose(" Find a doc file : '" + fileCompleteName + "'")
|
debug.verbose(" Find a doc file : '" + fileCompleteName + "'")
|
||||||
pathBase = fileCompleteName[len(self.pathGlobalDoc):len(fileCompleteName)-3]
|
pathBase = fileCompleteName[len(self.pathGlobalDoc):len(fileCompleteName)-3]
|
||||||
if fileCompleteName[:len(tutorialPath)] == tutorialPath:
|
if fileCompleteName[:len(tutorialPath)] == tutorialPath:
|
||||||
self.add_file_doc(fileCompleteName, pathBase)
|
|
||||||
else:
|
|
||||||
self.add_tutorial_doc(fileCompleteName, pathBase)
|
self.add_tutorial_doc(fileCompleteName, pathBase)
|
||||||
|
else:
|
||||||
|
self.add_file_doc(fileCompleteName, pathBase)
|
||||||
|
|
||||||
##
|
##
|
||||||
## @brief Add a documentation file at the parsing system
|
## @brief Add a documentation file at the parsing system
|
||||||
|
24
monkNode.py
24
monkNode.py
@ -17,7 +17,7 @@ class Node():
|
|||||||
global genericUID
|
global genericUID
|
||||||
genericUID+=1
|
genericUID+=1
|
||||||
self.uid = genericUID
|
self.uid = genericUID
|
||||||
self.documenatationCode = documentation
|
self.documenatationCode = []
|
||||||
self.nodeType = type
|
self.nodeType = type
|
||||||
self.name = name
|
self.name = name
|
||||||
self.doc = None
|
self.doc = None
|
||||||
@ -28,6 +28,9 @@ class Node():
|
|||||||
# namespace elements : (set when all element are parsed ...
|
# namespace elements : (set when all element are parsed ...
|
||||||
self.namespace = []
|
self.namespace = []
|
||||||
self.moduleLink = None # this is a link on the main application node or library node (usefull to get the website ...)
|
self.moduleLink = None # this is a link on the main application node or library node (usefull to get the website ...)
|
||||||
|
self.hiddenRequest = False # @not-in-doc
|
||||||
|
self.previousRequest = False # @previous
|
||||||
|
self.add_doc(documentation)
|
||||||
|
|
||||||
def to_str(self):
|
def to_str(self):
|
||||||
return ""
|
return ""
|
||||||
@ -41,6 +44,22 @@ class Node():
|
|||||||
def get_name(self):
|
def get_name(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
||||||
|
def add_doc(self, doc):
|
||||||
|
for element in doc:
|
||||||
|
self.documenatationCode.append(element)
|
||||||
|
if element.find("@not-in-doc") != -1 :
|
||||||
|
self.hiddenRequest = True
|
||||||
|
if element.find("@previous") != -1 :
|
||||||
|
self.previousRequest = True
|
||||||
|
|
||||||
|
|
||||||
|
def get_request_hidden(self):
|
||||||
|
return self.hiddenRequest
|
||||||
|
|
||||||
|
def get_request_in_previous(self):
|
||||||
|
return self.previousRequest
|
||||||
|
|
||||||
|
|
||||||
def get_displayable_name(self):
|
def get_displayable_name(self):
|
||||||
ret = ""
|
ret = ""
|
||||||
for namespace in self.namespace:
|
for namespace in self.namespace:
|
||||||
@ -62,7 +81,8 @@ class Node():
|
|||||||
isFirst = False
|
isFirst = False
|
||||||
ret += req
|
ret += req
|
||||||
return ret
|
return ret
|
||||||
|
if self.nodeType not in ['methode']:
|
||||||
|
return ""
|
||||||
#try to get previous element :
|
#try to get previous element :
|
||||||
if len(self.namespace) == 0:
|
if len(self.namespace) == 0:
|
||||||
return ""
|
return ""
|
||||||
|
@ -55,14 +55,15 @@ body {
|
|||||||
text-shadow: 0 1px 0 #ce4213;
|
text-shadow: 0 1px 0 #ce4213;
|
||||||
padding: 10px 20px 10px;
|
padding: 10px 20px 10px;
|
||||||
margin-left: -20px;
|
margin-left: -20px;
|
||||||
//overflow:scroll;
|
overflow:scroll;
|
||||||
//overflow-x:hidden;
|
overflow-y:auto;
|
||||||
|
overflow-x:hidden;
|
||||||
}
|
}
|
||||||
/*
|
.navbar-fixed-top a {
|
||||||
.navbar ul {
|
text-decoration: none;
|
||||||
font-size: 15px;
|
color: #000000;
|
||||||
};
|
}
|
||||||
*/
|
|
||||||
h1, h2, h3, h4, h5, h6 {
|
h1, h2, h3, h4, h5, h6 {
|
||||||
display: block;
|
display: block;
|
||||||
margin: 10px 0;
|
margin: 10px 0;
|
||||||
@ -100,6 +101,11 @@ pre {
|
|||||||
padding-right:10px;
|
padding-right:10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.parameter-list td {
|
||||||
|
padding-left:5px;
|
||||||
|
padding-right:5px;
|
||||||
|
}
|
||||||
|
|
||||||
.code-function {
|
.code-function {
|
||||||
text-decoration:none;
|
text-decoration:none;
|
||||||
color:#09857e;
|
color:#09857e;
|
||||||
|
121
theme/menu.css
121
theme/menu.css
@ -1,147 +1,62 @@
|
|||||||
/* CSS Document */
|
/* CSS Document */
|
||||||
|
|
||||||
/*----------------MENU-----------------*/
|
/*----------------MENU-----------------*/
|
||||||
div#menu div{
|
div#menu {
|
||||||
margin-top: 0px;
|
border-left: 4px solid #8d2d0d;
|
||||||
background: #6699FF;
|
border-bottom: 4px solid #8d2d0d;
|
||||||
|
padding-left: 4px;
|
||||||
|
padding-bottom: 4px;
|
||||||
}
|
}
|
||||||
/* permet l'affichage du haut du menu*/
|
|
||||||
div#menu h2{
|
div#menu h2{
|
||||||
color: #000000;
|
color: #000000;
|
||||||
FONT-FAMILY: Arial;
|
|
||||||
FONT-SIZE: 9pt;
|
|
||||||
text-align:left;
|
text-align:left;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
padding-left: 6px;
|
padding-left: 6px;
|
||||||
background: #1a62db;
|
background: #d44413;
|
||||||
}
|
}
|
||||||
div#menu h3{
|
div#menu h3{
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 6px;
|
padding: 6px;
|
||||||
background: #6699FF;
|
background: #d44413;
|
||||||
}
|
}
|
||||||
|
|
||||||
div#menu a{
|
div#menu a{
|
||||||
color: #000000;
|
color: #000000;
|
||||||
bgcolor=#6699FF;
|
bgcolor=#d44413;
|
||||||
FONT-FAMILY: Arial;
|
FONT-FAMILY: Arial;
|
||||||
FONT-SIZE: 9pt;
|
FONT-SIZE: 9pt;
|
||||||
}
|
}
|
||||||
div#menu li {
|
div#menu li {
|
||||||
position: relative;
|
|
||||||
list-style:none;
|
list-style:none;
|
||||||
margin:0px;
|
width:160px;
|
||||||
border-bottom: 1px solid #0008ab;
|
border-top: 1px solid #d44413;
|
||||||
}
|
|
||||||
div#menu li.sousmenu {
|
|
||||||
background: url(sous_menu.gif) 95% 50% no-repeat;
|
|
||||||
}
|
|
||||||
div#menu li:hover {
|
|
||||||
background: #0008ab;
|
|
||||||
}
|
|
||||||
div#menu li.sousmenu:hover {
|
|
||||||
background: #0008ab;
|
|
||||||
}
|
|
||||||
div#menu ul ul {
|
|
||||||
position: absolute;
|
|
||||||
top: 0px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*TAILLE PREMIERE COLONNE*/
|
|
||||||
div#menu {
|
|
||||||
float: center;
|
|
||||||
width: 200px;
|
|
||||||
text-align:left;
|
|
||||||
}
|
|
||||||
div#menu ul {
|
div#menu ul {
|
||||||
|
left: 30px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
width: 200px;
|
|
||||||
background: #6699FF;
|
|
||||||
border: 0px solid;
|
|
||||||
}
|
|
||||||
div#menu ul ul {
|
|
||||||
left: 199px;
|
|
||||||
display:none;
|
|
||||||
background: #FFFFFF;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
div#menu li a {
|
div#menu li a {
|
||||||
display: block;
|
|
||||||
padding: 2px 0px 2px 4px;
|
padding: 2px 0px 2px 4px;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
width: 191px;
|
width:160px;
|
||||||
border-left: 3px solid #6699FF;
|
border-left: 4px solid #8d2d0d;
|
||||||
}
|
|
||||||
div#menu form {
|
|
||||||
border-left: 8px solid #6699FF;
|
|
||||||
background: #6699FF;
|
|
||||||
FONT-FAMILY: Arial;
|
|
||||||
margin:0px;
|
|
||||||
FONT-SIZE: 8pt;
|
|
||||||
}
|
|
||||||
div#menu texte {
|
|
||||||
border-left: 8px solid #6699FF;
|
|
||||||
FONT-FAMILY: Arial;
|
|
||||||
FONT-SIZE: 9pt;
|
|
||||||
font-weight:bold;
|
|
||||||
border-bottom: 1px solid #6699FF;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*TAILLE DEUXIEME COLONE*/
|
|
||||||
|
|
||||||
div#menu ul.niveau1 ul {
|
div#menu ul.niveau1 ul {
|
||||||
left: 200px;
|
border-left: 20px solid #d44413;
|
||||||
height: 500px;
|
|
||||||
border: 1px solid #0008ab;
|
|
||||||
background: #1a62db;
|
background: #1a62db;
|
||||||
/*
|
|
||||||
overflow:scroll;
|
|
||||||
overflow-y:auto;
|
|
||||||
overflow-x:hidden;
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
div#menu ul.niveau1 li {
|
div#menu ul.niveau1 li {
|
||||||
background: #6699FF;
|
background: #b43a10;
|
||||||
}
|
|
||||||
div#menu ul.niveau1 li.sousmenu:hover ul.niveau2 {
|
|
||||||
width:219px;
|
|
||||||
display:block;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*TAILLE TROISIEME COLONNE*/
|
|
||||||
div#menu ul.niveau2 ul {
|
|
||||||
left: 219px;
|
|
||||||
height: 500px;
|
|
||||||
}
|
|
||||||
div#menu ul.niveau2 li a {
|
|
||||||
width: 200px;
|
|
||||||
}
|
|
||||||
div#menu ul.niveau2 li.sousmenu:hover ul.niveau3 {
|
|
||||||
width:10em;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*TAILLE Quatrieme COLONNE*/
|
|
||||||
div#menu ul.niveau3 ul {
|
|
||||||
left: 369px;
|
|
||||||
height: 500px;
|
|
||||||
}
|
|
||||||
div#menu ul.niveau3 li a {
|
|
||||||
width: 200px;
|
|
||||||
}
|
|
||||||
div#menu ul.niveau3 li.sousmenu:hover ul.niveau4 {
|
|
||||||
width:10em;
|
|
||||||
display:block;
|
|
||||||
}
|
|
||||||
/*TAILLE DEUXIEME COLONE BIS????*/
|
|
||||||
|
|
||||||
/*COULEUR DES BORDURES*/
|
|
||||||
div#menu li a:hover {
|
div#menu li a:hover {
|
||||||
border-left-color: #000ADE;
|
border-left-color: #ff3800;
|
||||||
background: #6699FF;
|
|
||||||
font-weight:bold;
|
font-weight:bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
147
theme/menu_dynamic.css
Normal file
147
theme/menu_dynamic.css
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
/* CSS Document */
|
||||||
|
|
||||||
|
/*----------------MENU-----------------*/
|
||||||
|
div#menu div{
|
||||||
|
margin-top: 0px;
|
||||||
|
background: #6699FF;
|
||||||
|
}
|
||||||
|
/* permet l'affichage du haut du menu*/
|
||||||
|
div#menu h2{
|
||||||
|
color: #000000;
|
||||||
|
FONT-FAMILY: Arial;
|
||||||
|
FONT-SIZE: 9pt;
|
||||||
|
text-align:left;
|
||||||
|
margin: 0;
|
||||||
|
padding: 3px;
|
||||||
|
padding-left: 6px;
|
||||||
|
background: #1a62db;
|
||||||
|
}
|
||||||
|
div#menu h3{
|
||||||
|
margin: 0;
|
||||||
|
padding: 6px;
|
||||||
|
background: #6699FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#menu a{
|
||||||
|
color: #000000;
|
||||||
|
bgcolor=#6699FF;
|
||||||
|
FONT-FAMILY: Arial;
|
||||||
|
FONT-SIZE: 9pt;
|
||||||
|
}
|
||||||
|
div#menu li {
|
||||||
|
position: relative;
|
||||||
|
list-style:none;
|
||||||
|
margin:0px;
|
||||||
|
border-bottom: 1px solid #0008ab;
|
||||||
|
}
|
||||||
|
div#menu li.sousmenu {
|
||||||
|
background: url(sous_menu.gif) 95% 50% no-repeat;
|
||||||
|
}
|
||||||
|
div#menu li:hover {
|
||||||
|
background: #0008ab;
|
||||||
|
}
|
||||||
|
div#menu li.sousmenu:hover {
|
||||||
|
background: #0008ab;
|
||||||
|
}
|
||||||
|
div#menu ul ul {
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*TAILLE PREMIERE COLONNE*/
|
||||||
|
div#menu {
|
||||||
|
float: center;
|
||||||
|
width: 200px;
|
||||||
|
text-align:left;
|
||||||
|
}
|
||||||
|
div#menu ul {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 200px;
|
||||||
|
background: #6699FF;
|
||||||
|
border: 0px solid;
|
||||||
|
}
|
||||||
|
div#menu ul ul {
|
||||||
|
left: 199px;
|
||||||
|
display:none;
|
||||||
|
background: #FFFFFF;
|
||||||
|
}
|
||||||
|
div#menu li a {
|
||||||
|
display: block;
|
||||||
|
padding: 2px 0px 2px 4px;
|
||||||
|
text-decoration: none;
|
||||||
|
width: 191px;
|
||||||
|
border-left: 3px solid #6699FF;
|
||||||
|
}
|
||||||
|
div#menu form {
|
||||||
|
border-left: 8px solid #6699FF;
|
||||||
|
background: #6699FF;
|
||||||
|
FONT-FAMILY: Arial;
|
||||||
|
margin:0px;
|
||||||
|
FONT-SIZE: 8pt;
|
||||||
|
}
|
||||||
|
div#menu texte {
|
||||||
|
border-left: 8px solid #6699FF;
|
||||||
|
FONT-FAMILY: Arial;
|
||||||
|
FONT-SIZE: 9pt;
|
||||||
|
font-weight:bold;
|
||||||
|
border-bottom: 1px solid #6699FF;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*TAILLE DEUXIEME COLONE*/
|
||||||
|
|
||||||
|
div#menu ul.niveau1 ul {
|
||||||
|
left: 200px;
|
||||||
|
height: 500px;
|
||||||
|
border: 1px solid #0008ab;
|
||||||
|
background: #1a62db;
|
||||||
|
/*
|
||||||
|
overflow:scroll;
|
||||||
|
overflow-y:auto;
|
||||||
|
overflow-x:hidden;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
div#menu ul.niveau1 li {
|
||||||
|
background: #6699FF;
|
||||||
|
}
|
||||||
|
div#menu ul.niveau1 li.sousmenu:hover ul.niveau2 {
|
||||||
|
width:219px;
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*TAILLE TROISIEME COLONNE*/
|
||||||
|
div#menu ul.niveau2 ul {
|
||||||
|
left: 219px;
|
||||||
|
height: 500px;
|
||||||
|
}
|
||||||
|
div#menu ul.niveau2 li a {
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
div#menu ul.niveau2 li.sousmenu:hover ul.niveau3 {
|
||||||
|
width:10em;
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*TAILLE Quatrieme COLONNE*/
|
||||||
|
div#menu ul.niveau3 ul {
|
||||||
|
left: 369px;
|
||||||
|
height: 500px;
|
||||||
|
}
|
||||||
|
div#menu ul.niveau3 li a {
|
||||||
|
width: 200px;
|
||||||
|
}
|
||||||
|
div#menu ul.niveau3 li.sousmenu:hover ul.niveau4 {
|
||||||
|
width:10em;
|
||||||
|
display:block;
|
||||||
|
}
|
||||||
|
/*TAILLE DEUXIEME COLONE BIS????*/
|
||||||
|
|
||||||
|
/*COULEUR DES BORDURES*/
|
||||||
|
div#menu li a:hover {
|
||||||
|
border-left-color: #000ADE;
|
||||||
|
background: #6699FF;
|
||||||
|
font-weight:bold;
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user