webTemplate/sidemenu.py
2021-10-20 17:23:31 +02:00

51 lines
1.3 KiB
Python

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