Try implementing sidebar generation

This commit is contained in:
Kumi 2021-10-24 17:35:52 +02:00
parent aefcf5dec9
commit 969b63d002
3 changed files with 57 additions and 74 deletions

View file

@ -7,12 +7,31 @@ class NavSection:
def add_item(self, item):
self.items.append(item)
def get_html(self):
pass
def get_html(self, active=None):
html = f"""
<!-- Heading -->
<div class="sidebar-heading">{self.name}</div>
"""
self.items.sort(key=lambda x: x.order)
for item in self.items:
html += f"""
<!-- Nav Item -->
<li class="nav-item """ + ("active" if item.name == active else "") + f""">
<a class="nav-link" href="{item.url}">
<i class="{item.icon}"></i>
<span>{item.name}</span>
</a>
</li>
"""
return html
class NavItem:
def __init__(self, name, url, icon="fas fa-fw fa-smile", title=None):
def __init__(self, name, url, icon="fas fa-fw fa-smile", title=None, order=100):
self.name = name
self.url = url
self.icon = icon
self.title = title or name
self.title = title or name
self.order = order