Check for unused files in output folder
This commit is contained in:
@ -47,7 +47,9 @@ struct ImageVersion {
|
||||
}
|
||||
|
||||
func wasNowGenerated() {
|
||||
image.generatedImageVersions.insert(versionId)
|
||||
DispatchQueue.main.async {
|
||||
image.generatedImageVersions.insert(versionId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
import Foundation
|
||||
|
||||
final class PageGenerator {
|
||||
|
||||
private let content: Content
|
||||
@ -50,7 +52,8 @@ final class PageGenerator {
|
||||
url: tag.absoluteUrl(in: language))
|
||||
}
|
||||
|
||||
let headers = makeHeaders(requiredItems: results.requiredHeaders, results: results)
|
||||
let requiredHeaders = DispatchQueue.main.sync { results.requiredHeaders }
|
||||
let headers = makeHeaders(requiredItems: requiredHeaders, results: results)
|
||||
results.require(files: headers.compactMap { $0.requiredFile })
|
||||
|
||||
let iconUrl = content.settings.navigation.localized(in: language).rootUrl
|
||||
@ -60,6 +63,7 @@ final class PageGenerator {
|
||||
url: languageUrl)
|
||||
|
||||
let imageUrl = localized.linkPreview.image?.linkPreviewImage(results: results)
|
||||
let icons = DispatchQueue.main.sync { results.requiredIcons }
|
||||
|
||||
let pageHeader = PageHeader(
|
||||
language: language,
|
||||
@ -71,11 +75,13 @@ final class PageGenerator {
|
||||
languageButton: languageButton,
|
||||
links: content.navigationBar(in: language),
|
||||
headers: headers,
|
||||
icons: results.requiredIcons)
|
||||
icons: icons)
|
||||
|
||||
let footers = DispatchQueue.main.sync { results.requiredFooters }
|
||||
|
||||
let fullPage = GenericPage(
|
||||
header: pageHeader,
|
||||
additionalFooter: results.requiredFooters.sorted().joined()) { content in
|
||||
additionalFooter: footers.sorted().joined()) { content in
|
||||
content += "<article>"
|
||||
if !localized.hideTitle {
|
||||
if !page.hideDate {
|
||||
|
@ -46,6 +46,12 @@ final class GenerationResults: ObservableObject {
|
||||
@Published
|
||||
var emptyPages: Set<LocalizedPageId> = []
|
||||
|
||||
@Published
|
||||
var outputFiles: Set<String> = []
|
||||
|
||||
@Published
|
||||
var unusedFilesInOutput: Set<String> = []
|
||||
|
||||
/**
|
||||
The url redirects to install to prevent broken links.
|
||||
|
||||
@ -114,6 +120,8 @@ final class GenerationResults: ObservableObject {
|
||||
self.unsavedOutputFiles = []
|
||||
self.emptyPages = []
|
||||
self.redirects = [:]
|
||||
self.outputFiles = []
|
||||
self.unusedFilesInOutput = []
|
||||
}
|
||||
for result in cache.values {
|
||||
result.reset()
|
||||
@ -229,6 +237,15 @@ final class GenerationResults: ObservableObject {
|
||||
func redirect(from originalUrl: String, to newUrl: String) {
|
||||
update { self.redirects[originalUrl] = newUrl }
|
||||
}
|
||||
|
||||
func created(outputFile: String) {
|
||||
update { self.outputFiles.insert(outputFile.withLeadingSlashRemoved) }
|
||||
}
|
||||
|
||||
func determineFiles(unusedIn existingFiles: Set<String>) {
|
||||
let unused = existingFiles.subtracting(outputFiles)
|
||||
update { self.unusedFilesInOutput = unused }
|
||||
}
|
||||
}
|
||||
|
||||
private extension Dictionary where Value == Set<LocalizedItemId> {
|
||||
|
Reference in New Issue
Block a user