Full page content, fixes, cleaner settings

This commit is contained in:
Christoph Hagen
2024-12-13 11:26:34 +01:00
parent efc9234917
commit b3b8c9a610
50 changed files with 1351 additions and 607 deletions

View File

@ -14,27 +14,33 @@ struct ContentPage: HtmlProducer {
private let tags: [FeedEntryData.Tag]
private let navigationBarData: NavigationBarData
private let navigationBarLinks: [NavigationBar.Link]
private let pageContent: String
init(language: ContentLanguage, dateString: String, title: String, tags: [FeedEntryData.Tag], linkTitle: String, description: String, navigationBarData: NavigationBarData, pageContent: String) {
private let headers: String
private let footers: String
init(language: ContentLanguage, dateString: String, title: String, tags: [FeedEntryData.Tag], linkTitle: String, description: String, navigationBarLinks: [NavigationBar.Link], pageContent: String, headers: String, footers: [String]) {
self.language = language
self.dateString = dateString
self.title = title
self.tags = tags
self.linkTitle = linkTitle
self.description = description
self.navigationBarData = navigationBarData
self.navigationBarLinks = navigationBarLinks
self.pageContent = pageContent
self.headers = headers
self.footers = footers.joined()
}
func populate(_ result: inout String) {
// TODO: Add headers and footers from page content
result += "<!DOCTYPE html><html lang=\"\(language.rawValue)\">"
result += PageHead(title: title, description: description, additionalHeaders: "").content
result += PageHead(title: title, description: description, additionalHeaders: headers).content
result += "<body>"
result += NavigationBar(data: navigationBarData).content
result += NavigationBar(links: navigationBarLinks).content
result += "<main><article>"
result += "<div style=\"height: 70px;\"></div>"
@ -45,7 +51,7 @@ struct ContentPage: HtmlProducer {
result += pageContent
result += "</article></main>"
result += "" // TODO: Footer
result += footers
result += "</body></html>" // Close content
}

View File

@ -8,7 +8,7 @@ struct GenericPage {
let description: String
let data: NavigationBarData
let links: [NavigationBar.Link]
let additionalHeaders: String
@ -16,11 +16,11 @@ struct GenericPage {
let insertedContent: (inout String) -> Void
init(language: ContentLanguage, title: String, description: String, data: NavigationBarData, additionalHeaders: String, additionalFooter: String, insertedContent: @escaping (inout String) -> Void) {
init(language: ContentLanguage, title: String, description: String, links: [NavigationBar.Link], additionalHeaders: String, additionalFooter: String, insertedContent: @escaping (inout String) -> Void) {
self.language = language
self.title = title
self.description = description
self.data = data
self.links = links
self.additionalHeaders = additionalHeaders
self.additionalFooter = additionalFooter
self.insertedContent = insertedContent
@ -30,7 +30,7 @@ struct GenericPage {
result += "<!DOCTYPE html><html lang=\"\(language.rawValue)\">"
result += PageHead(title: title, description: description, additionalHeaders: additionalHeaders).content
result += "<body>"
result += NavigationBar(data: data).content
result += NavigationBar(links: links).content
result += "<div class=\"content\"><div style=\"height: 70px;\"></div>"
insertedContent(&result)
result += "</div>"

View File

@ -14,7 +14,7 @@ struct PageInFeed {
let description: String
let navigationBarData: NavigationBarData
let navigationBarLinks: [NavigationBar.Link]
let pageNumber: Int
@ -41,7 +41,7 @@ struct PageInFeed {
language: language,
title: title,
description: description,
data: navigationBarData,
links: navigationBarLinks,
additionalHeaders: headers,
additionalFooter: footer) { content in
if showTitle {