Integrate tag overview into settings file

This commit is contained in:
Christoph Hagen 2025-01-06 11:01:02 +01:00
parent 48cfa204e2
commit 96c0a75c2f
5 changed files with 7 additions and 20 deletions

View File

@ -76,9 +76,6 @@ extension Content {
let externalFiles = storage.loadExternalFileList() ?? []
if externalFiles.isEmpty { print("No external files loaded") }
let tagOverviewData = storage.loadTagOverview()
if tagOverviewData == nil { print("No tag overview loaded") }
print("Loaded data from disk, processing...")
// All data loaded from storage, start constructing the data model
@ -134,7 +131,7 @@ extension Content {
linkedPage: linkedPage)
}
let tagOverview = tagOverviewData.map { file in
let tagOverview = settings.tagOverview.map { file in
TagOverviewPage(
content: self,
german: .init(content: self, file: file.german, image: file.german.linkPreviewImage.map { files[$0] }),

View File

@ -12,7 +12,7 @@ extension Content {
failedSaves += pages.count { !storage.save(pageMetadata: $0.pageFile, for: $0.id) }
failedSaves += posts.count { !storage.save(post: $0.postFile, for: $0.id) }
failedSaves += tags.count { !storage.save(tagMetadata: $0.file, for: $0.id) }
failedSaves.increment(!storage.save(settings: settings.file))
failedSaves.increment(!storage.save(settings: settings.file(tagOverview: tagOverview)))
let fileDescriptions: [FileDescriptions] = files.sorted().compactMap { file in
guard !file.english.isEmpty || !file.german.isEmpty else {
@ -25,7 +25,6 @@ extension Content {
}
failedSaves.increment(!storage.save(fileDescriptions: fileDescriptions))
failedSaves.increment(!storage.save(tagOverview: tagOverview?.file))
let externalFileList = files.filter { $0.isExternallyStored }.map { $0.id }
failedSaves.increment(!storage.save(externalFileList: externalFileList))

View File

@ -60,13 +60,14 @@ final class Settings: ObservableObject {
self.english = .init(file: file.english)
}
var file: SettingsFile {
func file(tagOverview: TagOverviewPage?) -> SettingsFile {
.init(
paths: paths.file,
navigation: navigation.file,
posts: posts.file,
pages: pages.file,
audioPlayer: audioPlayer.file,
tagOverview: tagOverview?.file,
german: german.file,
english: english.file)
}

View File

@ -13,6 +13,8 @@ struct SettingsFile {
let audioPlayer: AudioPlayerSettingsFile
let tagOverview: TagOverviewFile?
let german: LocalizedPostSettingsFile
let english: LocalizedPostSettingsFile
@ -29,6 +31,7 @@ extension SettingsFile {
posts: .default,
pages: .default,
audioPlayer: AudioPlayerSettings.default.file,
tagOverview: nil,
german: .default,
english: .default
)

View File

@ -34,8 +34,6 @@ final class Storage: ObservableObject {
private let settingsDataFileName = "settings.json"
private let tagOverviewFileName = "tag-overview.json"
private let contentPathBookmarkKey = "contentPathBookmark"
// MARK: Properties
@ -227,17 +225,6 @@ final class Storage: ObservableObject {
return contentScope.encode(fileDescriptions, to: fileDescriptionFilename)
}
// MARK: Tag overview
func loadTagOverview() -> TagOverviewFile? {
contentScope?.decode(at: tagOverviewFileName)
}
func save(tagOverview: TagOverviewFile?) -> Bool {
guard let contentScope else { return false }
return contentScope.encode(tagOverview, to: tagOverviewFileName)
}
// MARK: Files
func size(of file: String) -> Int? {