Skip to content
Snippets Groups Projects
Commit 325fe58f authored by Adam Edward Barton's avatar Adam Edward Barton Committed by Emil Obreshkov
Browse files

Link Doxygen Front Page to GITLab

parent a48b66b4
No related branches found
No related tags found
No related merge requests found
<html>
<head>
<title></title>
<link rel="stylesheet" href="tree/screen.css">
<link rel="stylesheet" href="tree/jquery.treeview.css">
<script src="tree/jquery.js" type="text/javascript"></script>
<script src="tree/jquery.cookie.js" type="text/javascript"></script>
<script src="tree/jquery.treeview.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$("#browser").treeview({
control: "#tree_control_",
collapsed: true,
animated: 100
});
});
</script>
<style>
body{margin:4px 8px;}
a { text-decoration: none;}
a:link, a:visited {color: blue;}
a:hover {color: red;}
</style>
</head>
<body>
<table border="0" cellspacing="0" style="font-size: 11px;">
<tr>
<td>
<div id="tree_control_" style="padding:5px">
<a title="Collapse the entire tree below" href="#"> Collapse All</a>
<a title="Expand the entire tree below" href="#"> Expand All</a>
</div>
</td>
<!-- <td><a target="_blank" href="" id="twiki" style="vertical-align: middle;"><img src="tree/twiki.gif" /></a></td> -->
</tr>
</table>
<!-- Tree -->
<ul id="browser" class="filetree treeview">
%s
</ul>
<!-- Tree -->
</body>
</html>
import os
indexfile = "html/index.html"
docsfile = "html/doxygen.css"
rootdir = os.path.abspath('./')
rootdir+='/'
print rootdir
path = rootdir + '/docs/'
def ReadFile(fileName, pathFlag = True):
# """This method reads file directly or from path."""
if pathFlag:
print("Read:", path+fileName)
f = open(path+fileName)
else:
f = open(path+fileName)
print("Read:", path+fileName)
data = f.read()
f.close()
return data
def HTMLTreeBegin( title, links = {}):
html = '\n<li>\n<div class="hitarea expandable-hitarea"></div>\n'
html = html + '<span class="folder">%s\n' % title
for i in links.keys():
html = html + '<a target="_blank" href="%s">[%s]</a> \n' % (links[i], i)
html = html + '</span>\n'
html = html + '<ul style="display: block;">\n'
return html
def WriteFile( fileName, data):
# This method writes data
print("Write:", path + fileName)
f = open(path + fileName, "w")
f.write(data)
f.close()
def HTMLTreeEnd():
return '</li></ul>\n\n'
def Fixcssfile( filename ):
addition = """/** atlas insert **/
.doxyTable{
border-collapse:collapse;
border:1px solid lightBlue;
width: 70%;
margin:0 auto;
}
.doxyTable tr:not(:first-child) {
background: #eeeeff;
border-spacing: 0px;
padding: 0px;
border-bottom: 1px solid #c1c1dc;
}
.doxyTable tr:hover {
background: #cde4ec;
}
.doxyTable td {
padding:8px;
cursor:pointer;
}
.accordion {
display: none;
width: 100%;
}
div.content {}
div.content h1, h2 {
text-align: center;
}
"""
text = ReadFile(filename)
if("/** atlas insert **/" in text):
print "Skipping rewriting css"
return
text += addition
WriteFile(filename, text)
def __NewTreePage( domain, package):
content = ''
content += HTMLTreeBegin(domain)
for i in package[domain]:
content += HTMLTreeAddItem(i, 'https://gitlab.cern.ch/atlas/athena/tree/master/' + domain + '/'+ i, folder = True)
content += HTMLTreeEnd()
temp = treePageTamplate % (content)
WriteFile("html/iframes/%s.html" % domain.lower().replace(' ', '_'), temp)
def CreateNewMainPage(outputFileName, packagemap):
contents = """
<script>function changeState(item) {
item.slideToggle("slow");
}
$( document ).ready(function() {
$(".doxyTable > tbody > tr").each(function(){
var row = $(this);
// skip first row (header), you dont need to assing it accordion
// trigger function. it is also the same for rows which doesn't have
// id attribute. if a row doesn't have id attr, that means it is
// accordion row
if(row.attr('id') == 'header' || !row.attr('id')) return;
// if it has id attribute, assign trigger function
row.click(function(){
$('div#'+row.attr('id')).slideToggle(256);
// we dont want to load whole iframes before they are showed
var iframe = $('div#'+row.attr('id')).find('iframe');
// no need to set the source again again if already set
if(iframe.attr('src')) return;
iframe.attr('src', iframe.attr('data-src'));
});
});
});</script>
<table class="doxyTable" border="0" cellpadding="0" cellspacing="0">
<tr class="top" valign="top">
<th class="domain">Domain</th>
</tr>
"""
keysI = sorted(packagemap.keys())
for i in keysI:
if i=='': continue
# contents = contents + '\n<tr class="DCRow">\n' ######### TAG: TR1
# contents = contents + """<td width="50%%" style="padding:8px;cursor:pointer" onclick="toggleHoba('hoba_%s', 'iframes/%s.html')" id="hoba_%s"><a>%s</a></td>\n""" % (i.replace(' ', '_'), i.lower().replace(' ', '_'), i.replace(' ', '_'), i)
# contents = contents + '</td>\n'
# contents = contents + '</tr>\n\n' ######### TAG: TR1
# contents = contents + """<tr><td colspan="2" style="background:#d7dbe3">
# <div style="display:none;" id="hoba_%s_div"><iframe width="100%%" frameborder="0"></iframe></div>
# </td></tr>""" % (i.replace(' ', '_'))
tagsafe = i.replace(' ', '_')
tagsafelc = i.lower().replace(' ', '_')
basic = """<tr id="{0}"><td width="50%">{0}</td></tr><tr style="padding:0"><td colspan="2" style="padding:0">
<div class="accordion" id="{0}">
<iframe width="100%" height="250px" frameborder="0" data-src="iframes/{1}.html"> </iframe>
</div></td></tr>"""
basic = basic.format(tagsafe, tagsafelc)
contents += basic
contents += "</table>"
stamp = "</div></div><!-- contents -->"
contents += stamp
mainPageTemplate = ReadFile(indexfile)
# print mainPageTemplate
WriteFile(outputFileName, mainPageTemplate.replace(stamp, contents))
def HTMLTreeAddItem( title, links = None, endNode = False, folder = False):
if endNode: html = '\t<li class="last">'
else: html = '\t<li>'
if isinstance(links, str) or isinstance(links, type(u'')):
if folder:
html = html + '\t<a href="%s" target="_blank" class=""><span class="emptyFolder">%s</span></a>\n' % (links, title)
else:
html = html + '\t<a href="%s" target="_blank" class=""><span class="file">%s</span></a>\n' % (links, title)
elif isinstance(links, dict):
if folder:
html = html + '<span class="emptyFolder">%s ' % title
else:
html = html + '<span class="file">%s ' % title
for i in links.keys():
html = html + '<a target="_blank" href="%s">[%s]</a> \n' % (links[i], i)
html = html + '</span>'
else:
html = html + '\t<span class="file">%s</span>\n' % title
return html + '\t</li>\n'
#packagelist=[]
packagemap ={}
for subdir, dirs, files in os.walk(rootdir):
if 'CMakeLists.txt' in files :
# packagelist.append(subdir);
package = subdir[len(rootdir):]
i = package.find('/')
if i<0 : i=0
category = package[0: i ]
if category in packagemap:
packagemap[category].append(package[i+1:])
else:
packagemap[category] = [package[i+1:]]
# print package
#for st in packagelist:
# print st;
#print packagemap
#print treePageTamplate
framesdir = path+ 'html/iframes'
if not os.path.exists(framesdir):
os.makedirs(framesdir)
#category =
treePageTamplate=ReadFile("TreeViewTemplate.html", pathFlag = True)
for k in packagemap.keys():
__NewTreePage(str(k), packagemap);
CreateNewMainPage(indexfile, packagemap)
Fixcssfile(docsfile)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment