Improve settings, sidebars

This commit is contained in:
Christoph Hagen
2024-12-04 22:54:05 +01:00
parent b3cc4a57db
commit c3309197c0
36 changed files with 968 additions and 426 deletions

View File

@ -15,7 +15,7 @@ extension Content {
for tag in tags {
storage.save(tagMetadata: tag.tagFile, for: tag.id)
}
storage.save(websiteData: websiteData.dataFile)
storage.save(settings: settings.file)
do {
try storage.deletePostFiles(notIn: posts.map { $0.id })
@ -113,21 +113,48 @@ private extension LocalizedTag {
}
}
private extension WebsiteData {
private extension NavigationBarSettings {
var dataFile: WebsiteDataFile {
var file: NavigationBarSettingsFile {
.init(navigationIconPath: iconPath,
navigationTags: tags.map { $0.id })
}
}
extension Settings {
var file: SettingsFile {
.init(
navigationTags: navigationTags.map { $0.id },
german: german.dataFile,
english: english.dataFile)
outputDirectoryPath: outputDirectoryPath,
navigationBar: navigationBar.file,
posts: posts.file,
german: german.file,
english: english.file)
}
}
private extension LocalizedWebsiteData {
private extension PostSettings {
var dataFile: LocalizedWebsiteDataFile {
.init(title: title,
description: description,
iconDescription: iconDescription)
var file: PostSettingsFile {
.init(postsPerPage: postsPerPage,
contentWidth: contentWidth)
}
}
private extension LocalizedSettings {
var file: LocalizedSettingsFile {
.init(navigationBarIconDescription: navigationBarIconDescription,
posts: posts.file)
}
}
private extension LocalizedPostSettings {
var file: LocalizedPostSettingsFile {
.init(
feedTitle: title,
feedDescription: description,
feedUrlPrefix: feedUrlPrefix)
}
}