Allow header selection for pages

This commit is contained in:
Christoph Hagen
2022-09-04 20:36:43 +02:00
parent a7e7bc21fc
commit 1c13f4fc60
6 changed files with 65 additions and 20 deletions

View File

@ -33,9 +33,7 @@ struct PageGenerator {
content[.topBar] = factory.topBar.generate(sectionUrl: sectionUrl, languageButton: nextLanguage, page: page)
content[.contentClass] = "content"
if !page.useCustomHeader {
content[.header] = makeHeader(page: page, metadata: metadata, language: language)
}
content[.header] = makeHeader(page: page, metadata: metadata, language: language)
content[.content] = pageContent
content[.previousPageLinkText] = previousPage.unwrapped { factory.factory.html.makePrevText($0.text) }
content[.previousPageUrl] = previousPage?.link
@ -74,9 +72,16 @@ struct PageGenerator {
}
}
private func makeHeader(page: Element, metadata: Element.LocalizedMetadata, language: String) -> String {
private func makeHeader(page: Element, metadata: Element.LocalizedMetadata, language: String) -> String? {
let content = factory.makeHeaderContent(page: page, metadata: metadata, language: language)
return factory.factory.leftHeader.generate(content)
switch page.headerType {
case .none:
return nil
case .left:
return factory.factory.leftHeader.generate(content)
case .center:
return factory.factory.centeredHeader.generate(content)
}
}
}