Rework storage structs, link preview

This commit is contained in:
Christoph Hagen
2025-01-08 14:59:04 +01:00
parent b99c064d10
commit a7197b9628
75 changed files with 1365 additions and 1454 deletions

View File

@ -58,8 +58,8 @@ final class PageGenerator {
let pageHeader = PageHeader(
language: language,
title: localized.linkPreviewTitle ?? localized.title,
description: localized.linkPreviewDescription,
title: localized.linkPreview.title ?? localized.title,
description: localized.linkPreview.description,
iconUrl: iconUrl,
languageButton: languageButton,
links: content.navigationBar(in: language),

View File

@ -10,7 +10,7 @@ private struct TagData {
init(tag: Tag, language: ContentLanguage) {
let localized = tag.localized(in: language)
self.url = tag.absoluteUrl(in: language)
self.title = localized.linkPreviewTitle ?? localized.name
self.title = localized.linkPreview.title ?? localized.name
self.localized = localized
}
}
@ -81,12 +81,12 @@ final class TagOverviewGenerator {
self.results = results
}
func generatePages(tags: [Tag], overview: TagOverviewPage) {
func generatePages(tags: [Tag], overview: Tag) {
let localized = overview.localized(in: language)
let header = TagHeaderContent(
language: language,
title: localized.linkPreviewTitle ?? localized.title,
description: localized.linkPreviewDescription,
title: localized.linkPreview.title ?? localized.title,
description: localized.linkPreview.description,
iconUrl: content.settings.navigation.localized(in: language).rootUrl,
links: content.navigationBar(in: language),
headers: content.postPageHeaders,
@ -123,8 +123,13 @@ final class TagOverviewGenerator {
additionalFooter: "") { content in
content += "<h1 class='separated-headline'>\(header.title)</h1>"
for tag in tags {
let description = tag.localized.linkPreviewDescription ?? ""
let image = self.makePageImage(item: tag.localized)
let description = tag.localized.linkPreview.description ?? ""
let image = tag.localized.linkPreview.image.map {
let size = self.content.settings.pages.pageLinkImageSize
let imageSet = $0.imageSet(width: size, height: size, language: self.language)
self.results.require(imageSet: imageSet)
return imageSet
}
content += RelatedPageLink(
title: tag.title,
@ -148,13 +153,4 @@ final class TagOverviewGenerator {
return
}
}
private func makePageImage(item: LinkPreviewItem) -> ImageSet? {
item.linkPreviewImage.map { image in
let size = content.settings.pages.pageLinkImageSize
let imageSet = image.imageSet(width: size, height: size, language: language)
results.require(imageSet: imageSet)
return imageSet
}
}
}