Add navigation settings, fix page generation

This commit is contained in:
Christoph Hagen
2025-01-02 11:56:51 +01:00
parent 922ba4ebe7
commit 4d4275e072
43 changed files with 921 additions and 581 deletions

View File

@@ -12,25 +12,29 @@ struct NavigationBar: HtmlProducer {
private let links: [Link]
init(links: [Link]) {
private let languageButton: Link
private let iconUrl: String
init(links: [Link], languageButton: Link, iconUrl: String) {
self.links = links
self.languageButton = languageButton
self.iconUrl = iconUrl
}
func populate(_ result: inout String) {
result += "<nav class='navbar'><div class='navbar-fade'></div><div class='nav-center'>"
let middleIndex = links.count / 2
let leftNavigationItems = links[..<middleIndex]
let rightNavigationItems = links[middleIndex...]
for item in leftNavigationItems {
result += "<a class='nav-animate' href='\(item.url)'>\(item.text)</a>"
result += "<nav class='navbar'>"
result += "<div class='fade'></div>"
result += "<div class='centered'>"
result += "<a class='icon-link' href='\(iconUrl)'><div class='icon'></div></a>"
result += "<div class='buttons'><input type='checkbox' id='menu-toggle'>"
result += "<label for='menu-toggle' class='burger'><div></div><div></div><div></div></label>"
result += "<ul>"
for item in links {
result += "<li><a href='\(item.url)'>\(item.text)</a></li>"
}
result += "<a id='nav-image' href='/'><div class='icon-ch'></div></a>"
for item in rightNavigationItems {
result += "<a class='nav-animate' href='\(item.url)'>\(item.text)</a>"
}
result += "</div></nav>" // Close nav-center, navbar
result += "</ul>"
result += "<a class='lang-button' href='\(languageButton.url)'>\(languageButton.text)</a>"
result += "</div></div></nav>" // Close buttons, centered, navbar
}
}