Show external files in generation

This commit is contained in:
Christoph Hagen 2025-04-29 10:40:15 +02:00
parent 6ba75ab916
commit bbb1143600
2 changed files with 20 additions and 2 deletions

View File

@ -25,6 +25,9 @@ final class GenerationResults: ObservableObject {
@Published
var requiredFiles: Set<FileResource> = []
@Published
var externalFiles: Set<FileResource> = []
@Published
var imagesToGenerate: Set<ImageVersion> = []
@ -113,6 +116,7 @@ final class GenerationResults: ObservableObject {
self.missingPages = []
self.externalLinks = []
self.requiredFiles = []
self.externalFiles = []
self.imagesToGenerate = []
self.invalidCommands = []
self.invalidBlocks = []
@ -143,6 +147,8 @@ final class GenerationResults: ObservableObject {
update { self.externalLinks = externalLinks }
let requiredFiles = cache.values.map { $0.requiredFiles }.union()
update { self.requiredFiles = requiredFiles }
let externalFiles = cache.values.map { $0.requiredFiles.filter { $0.isExternallyStored } }.union()
update { self.externalFiles = externalFiles }
let imagesToGenerate = cache.values.map { $0.imagesToGenerate }.union()
update { self.imagesToGenerate = imagesToGenerate }
let invalidCommands = cache.values.map { $0.invalidCommands.map { $0.markdown }}.union()
@ -195,11 +201,19 @@ final class GenerationResults: ObservableObject {
}
func require(file: FileResource) {
update { self.requiredFiles.insert(file) }
update {
self.requiredFiles.insert(file)
if file.isExternallyStored {
self.externalFiles.insert(file)
}
}
}
func require<S>(files: S) where S: Sequence, S.Element == FileResource {
update { self.requiredFiles.formUnion(files) }
update {
self.requiredFiles.formUnion(files)
self.externalFiles.formUnion(files.filter { $0.isExternallyStored })
}
}
func generate(_ image: ImageVersion) {

View File

@ -58,6 +58,10 @@ struct GenerationContentView: View {
text: "required files",
statusWhenNonEmpty: .nominal,
items: $content.results.requiredFiles) { $0.id }
GenerationStringIssuesView(
text: "external files",
statusWhenNonEmpty: .nominal,
items: $content.results.externalFiles) { $0.id }
GenerationStringIssuesView(
text: "empty pages",
statusWhenNonEmpty: .warning,