Add title suffix, extract HTML elements

Fix header calls
This commit is contained in:
Christoph Hagen
2022-08-28 11:14:11 +02:00
parent 9c74f76650
commit 4036452d2c
8 changed files with 49 additions and 34 deletions

View File

@ -0,0 +1,12 @@
import Foundation
struct HTMLElementsGenerator {
init() {
}
func make(title: String, suffix: String) -> String {
"\(title)<span class=\"suffix\">\(suffix)</span>"
}
}

View File

@ -20,7 +20,7 @@ struct IndexPageGenerator {
content[.head] = factory.pageHead.generate(page: site, language: language)
content[.topBar] = factory.topBar.generate(sectionUrl: nil, languageButton: languageButton)
content[.contentClass] = "overview"
content[.header] = makeHeader(localized: localized)
content[.header] = makeHeader(page: site, metadata: localized, language: language)
content[.content] = factory.overviewSection.generate(
sections: site.elements,
in: site,
@ -33,12 +33,8 @@ struct IndexPageGenerator {
log.add(info: "Generated \(url.lastPathComponent)", source: site.path)
}
private func makeHeader(localized: Element.LocalizedMetadata) -> String {
var content = [HeaderKey : String]()
content[.title] = localized.title
#warning("Add title suffix")
content[.subtitle] = localized.subtitle
content[.titleText] = localized.description
private func makeHeader(page: Element, metadata: Element.LocalizedMetadata, language: String) -> String {
let content = factory.makeHeaderContent(page: page, metadata: metadata, language: language)
return factory.factory.centeredHeader.generate(content)
}
}

View File

@ -24,7 +24,7 @@ struct OverviewPageGenerator {
sectionUrl: section.sectionUrl(for: language),
languageButton: languageButton)
content[.contentClass] = "overview"
content[.header] = makeHeader(metadata: metadata, language: language, backText: backLinkText)
content[.header] = makeHeader(page: section, metadata: metadata, language: language)
content[.content] = makeContent(section: section, language: language)
content[.footer] = section.customFooterContent()
guard factory.page.generate(content, to: url) else {
@ -45,15 +45,8 @@ struct OverviewPageGenerator {
}
}
private func makeHeader(metadata: Element.LocalizedMetadata,
language: String,
backText: String?) -> String {
var content = [HeaderKey : String]()
content[.title] = metadata.title
#warning("Add title suffix")
content[.subtitle] = metadata.subtitle
content[.titleText] = metadata.description
content[.backLink] = backText.unwrapped { factory.makeBackLink(text: $0, language: language) }
private func makeHeader(page: Element, metadata: Element.LocalizedMetadata, language: String) -> String {
let content = factory.makeHeaderContent(page: page, metadata: metadata, language: language)
return factory.factory.centeredHeader.generate(content)
}
}

View File

@ -61,21 +61,8 @@ struct PageGenerator {
}
private func makeHeader(page: Element, metadata: Element.LocalizedMetadata, language: String) -> String {
let backText = page.backLinkText(for: language)
var content = [HeaderKey : String]()
content[.backLink] = factory.makeBackLink(text: backText, language: language)
if let suffix = metadata.titleSuffix {
content[.title] = make(title: metadata.title, suffix: suffix)
} else {
content[.title] = metadata.title
}
content[.subtitle] = metadata.subtitle
content[.date] = factory.makeDateString(start: page.date, end: page.endDate)
let content = factory.makeHeaderContent(page: page, metadata: metadata, language: language)
return factory.factory.leftHeader.generate(content)
}
private func make(title: String, suffix: String) -> String {
"\(title)<span class=\"suffix\">\(suffix)</span>"
}
}

View File

@ -16,7 +16,7 @@ struct ThumbnailListGenerator {
private func itemContent(_ item: Element, parent: Element, language: String, style: ThumbnailStyle) -> String {
let fullThumbnailPath = item.thumbnailFilePath(for: language)
let relativeImageUrl = parent.relativePathToFileWithPath(fullThumbnailPath)
let metadata = item.localized(for: language)
var content = [ThumbnailKey : String]()
if item.state.hasThumbnailLink {
@ -27,8 +27,11 @@ struct ThumbnailListGenerator {
}
content[.image] = relativeImageUrl
content[.title] = item.title(for: language)
#warning("Generate thumbnail suffix")
if style == .large, let suffix = metadata.thumbnailSuffix {
content[.title] = factory.html.make(title: metadata.title, suffix: suffix)
} else {
content[.title] = metadata.title
}
content[.image2x] = relativeImageUrl.insert("@2x", beforeLast: ".")
content[.corner] = item.cornerText(for: language).unwrapped {
factory.largeThumbnail.makeCorner(text: $0)