Inital commit
This commit is contained in:
50
sidemenu.py
Normal file
50
sidemenu.py
Normal file
@@ -0,0 +1,50 @@
|
||||
import yaml
|
||||
|
||||
def parseHTML(item):
|
||||
if(not ('klickable' in item and item['klickable'] is False)):
|
||||
item['lable'] = '<a href="' + item["url"] + '">' + item["lable"] + '</a>'
|
||||
|
||||
if('sub' not in item):
|
||||
return '<li><span class="menuLable">' + item["lable"] + '</span></li>'
|
||||
|
||||
html = '<li><span class="menuLable sub">' + item["lable"] + '</span><ul class="submenu">'
|
||||
html += genHTML(item['sub'], item['url'])
|
||||
|
||||
return html + '</ul></li>'
|
||||
|
||||
def genHTML(items, parentUrl):
|
||||
html = ""
|
||||
for item in items:
|
||||
|
||||
if(type(item) is dict):
|
||||
if('url' not in item):
|
||||
if('lable' not in item):
|
||||
print('url or lable reqired')
|
||||
continue
|
||||
if('klickable' in item and item['klickable'] is False):
|
||||
item["url"] = parentUrl
|
||||
else:
|
||||
item["url"] = parentUrl + '/' + item["lable"]
|
||||
|
||||
if(item["url"][0] != '/'):
|
||||
item["url"] = parentUrl + '/' + item["url"]
|
||||
|
||||
#WARNING: XSS vanrable!
|
||||
if('lable' not in item):
|
||||
item["lable"] = item["url"].split('/')[-1]
|
||||
|
||||
html += parseHTML(item)
|
||||
continue
|
||||
|
||||
|
||||
if(type(item) is str):
|
||||
html += parseHTML({"lable": item, "url": parentUrl + '/' + item})
|
||||
continue
|
||||
|
||||
return html
|
||||
|
||||
def getSidebar(items, parentUrl):
|
||||
html = '<aside><nav><ul id="sidemenu">'
|
||||
html += genHTML(items, parentUrl)
|
||||
html += '</ul></nav></aside>'
|
||||
return html
|
||||
Reference in New Issue
Block a user