Copy required files for pages
This commit is contained in:
@@ -20,7 +20,7 @@ struct IndexPageGenerator {
|
||||
|
||||
private let factory: LocalizedSiteTemplate
|
||||
|
||||
init(factory: LocalizedSiteTemplate, imageProcessor: ImageProcessor) {
|
||||
init(factory: LocalizedSiteTemplate) {
|
||||
self.factory = factory
|
||||
}
|
||||
|
||||
|
@@ -3,10 +3,10 @@ import Ink
|
||||
|
||||
struct PageContentGenerator {
|
||||
|
||||
private let imageProcessor: ImageProcessor
|
||||
private let files: FileProcessor
|
||||
|
||||
init(imageProcessor: ImageProcessor) {
|
||||
self.imageProcessor = imageProcessor
|
||||
init(files: FileProcessor) {
|
||||
self.files = files
|
||||
}
|
||||
|
||||
func generate(page: Page, language: String, at url: URL) throws -> String {
|
||||
@@ -71,7 +71,7 @@ struct PageContentGenerator {
|
||||
let size: NSSize
|
||||
let imagePath = page.pathRelativeToRootForContainedInputFile(file)
|
||||
do {
|
||||
size = try imageProcessor.requireImage(
|
||||
size = try files.requireImage(
|
||||
source: imagePath,
|
||||
destination: imagePath,
|
||||
width: pageImageWidth,
|
||||
|
@@ -6,9 +6,9 @@ struct OverviewPageGenerator {
|
||||
|
||||
let outputFolder: URL
|
||||
|
||||
init(factory: LocalizedSiteTemplate, imageProcessor: ImageProcessor) {
|
||||
init(factory: LocalizedSiteTemplate, files: FileProcessor) {
|
||||
self.factory = factory
|
||||
self.outputFolder = imageProcessor.outputFolder
|
||||
self.outputFolder = files.outputFolder
|
||||
}
|
||||
|
||||
func generate(
|
||||
|
@@ -6,15 +6,15 @@ struct OverviewSectionGenerator {
|
||||
|
||||
private let singleSectionsTemplate: OverviewSectionCleanTemplate
|
||||
|
||||
let imageProcessor: ImageProcessor
|
||||
let files: FileProcessor
|
||||
|
||||
private let generator: ThumbnailListGenerator
|
||||
|
||||
init(factory: TemplateFactory, imageProcessor: ImageProcessor) {
|
||||
init(factory: TemplateFactory, files: FileProcessor) {
|
||||
self.multipleSectionsTemplate = factory.overviewSection
|
||||
self.singleSectionsTemplate = factory.overviewSectionClean
|
||||
self.imageProcessor = imageProcessor
|
||||
self.generator = ThumbnailListGenerator(factory: factory, imageProcessor: imageProcessor)
|
||||
self.files = files
|
||||
self.generator = ThumbnailListGenerator(factory: factory, files: files)
|
||||
}
|
||||
|
||||
func generate(sections: [Section], in parent: SiteElement, language: String, sectionItemCount: Int) throws -> String {
|
||||
|
@@ -12,11 +12,11 @@ struct PageGenerator {
|
||||
|
||||
private let factory: LocalizedSiteTemplate
|
||||
|
||||
private let imageProcessor: ImageProcessor
|
||||
private let files: FileProcessor
|
||||
|
||||
init(factory: LocalizedSiteTemplate, imageProcessor: ImageProcessor) {
|
||||
init(factory: LocalizedSiteTemplate, files: FileProcessor) {
|
||||
self.factory = factory
|
||||
self.imageProcessor = imageProcessor
|
||||
self.files = files
|
||||
}
|
||||
|
||||
func generate(page: Page, language: String, backText: String, nextPage: NavigationLink?, previousPage: NavigationLink?) throws {
|
||||
@@ -45,8 +45,8 @@ struct PageGenerator {
|
||||
content[.nextPageUrl] = nextPage?.link
|
||||
content[.footer] = try page.customFooterContent()
|
||||
|
||||
let url = imageProcessor.outputFolder.appendingPathComponent(path)
|
||||
try factory.contentPage.generate(content, to: url)
|
||||
let url = files.outputFolder.appendingPathComponent(path)
|
||||
}
|
||||
|
||||
private func makeContent(page: Page, language: String, url: URL) throws -> String {
|
||||
@@ -55,7 +55,7 @@ struct PageGenerator {
|
||||
return factory.placeholder
|
||||
}
|
||||
print("Generated page \(page.path)")
|
||||
return try PageContentGenerator(imageProcessor: imageProcessor).generate(page: page, language: language, at: url)
|
||||
return try PageContentGenerator(files: files).generate(page: page, language: language, at: url)
|
||||
}
|
||||
|
||||
private func makeHead(page: Page, language: String) throws -> String {
|
||||
|
@@ -30,11 +30,11 @@ struct PageHeadGenerator {
|
||||
|
||||
let template: PageHeadTemplate
|
||||
|
||||
let imageProcessor: ImageProcessor
|
||||
let files: FileProcessor
|
||||
|
||||
init(factory: TemplateFactory, imageProcessor: ImageProcessor) {
|
||||
init(factory: TemplateFactory, files: FileProcessor) {
|
||||
self.template = factory.pageHead
|
||||
self.imageProcessor = imageProcessor
|
||||
self.files = files
|
||||
}
|
||||
|
||||
func generate(page: PageHeadInfoProvider) throws -> String {
|
||||
@@ -47,7 +47,7 @@ struct PageHeadGenerator {
|
||||
// since we don't want a single large image for thumbnails.
|
||||
// Warning: Link preview source path must be relative to root
|
||||
let linkPreviewImagePath = image.insert("-link", beforeLast: ".")
|
||||
try imageProcessor.requireImage(
|
||||
try files.requireImage(
|
||||
source: image,
|
||||
destination: linkPreviewImagePath,
|
||||
width: Site.linkPreviewDesiredImageWidth)
|
||||
|
@@ -6,17 +6,17 @@ struct SiteGenerator {
|
||||
|
||||
let templates: TemplateFactory
|
||||
|
||||
private let imageProcessor: ImageProcessor
|
||||
private let files: FileProcessor
|
||||
|
||||
private var outputFolder: URL {
|
||||
imageProcessor.outputFolder
|
||||
files.outputFolder
|
||||
}
|
||||
|
||||
init(site: Site, imageProcessor: ImageProcessor) throws {
|
||||
init(site: Site, files: FileProcessor) throws {
|
||||
self.site = site
|
||||
let templatesFolder = site.inputFolder.appendingPathComponent("templates")
|
||||
self.templates = try TemplateFactory(templateFolder: templatesFolder)
|
||||
self.imageProcessor = imageProcessor
|
||||
self.files = files
|
||||
}
|
||||
|
||||
func generate() throws {
|
||||
@@ -26,12 +26,12 @@ struct SiteGenerator {
|
||||
factory: templates,
|
||||
language: language,
|
||||
site: site,
|
||||
imageProcessor: imageProcessor)
|
||||
files: files)
|
||||
|
||||
|
||||
// Generate sections
|
||||
let overviewGenerator = OverviewPageGenerator(factory: template, imageProcessor: imageProcessor)
|
||||
let pageGenerator = PageGenerator(factory: template, imageProcessor: imageProcessor)
|
||||
let overviewGenerator = OverviewPageGenerator(factory: template, files: files)
|
||||
let pageGenerator = PageGenerator(factory: template, files: files)
|
||||
let backLinkText = try site.backLinkText(for: language)
|
||||
var elementsToProcess: [(element: SiteElement, backText: String?)] = site.elements.map { ($0, backLinkText) }
|
||||
while let (element, backText) = elementsToProcess.popLast() {
|
||||
@@ -52,12 +52,14 @@ struct SiteGenerator {
|
||||
backText: backText ?? metadata.defaultBackLinkText,
|
||||
nextPage: nil,
|
||||
previousPage: nil)
|
||||
for file in page.metadata.requiredFiles {
|
||||
let relativePath = page.path + "/" + file
|
||||
files.require(file: relativePath)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
let generator = IndexPageGenerator(
|
||||
factory: template,
|
||||
imageProcessor: imageProcessor)
|
||||
let generator = IndexPageGenerator(factory: template)
|
||||
|
||||
// Generate front page
|
||||
let relativeUrl = site.localizedPath(for: language)
|
||||
|
@@ -4,11 +4,11 @@ struct ThumbnailListGenerator {
|
||||
|
||||
private let factory: TemplateFactory
|
||||
|
||||
let imageProcessor: ImageProcessor
|
||||
let files: FileProcessor
|
||||
|
||||
init(factory: TemplateFactory, imageProcessor: ImageProcessor) {
|
||||
init(factory: TemplateFactory, files: FileProcessor) {
|
||||
self.factory = factory
|
||||
self.imageProcessor = imageProcessor
|
||||
self.files = files
|
||||
}
|
||||
|
||||
func generateContent(items: [ThumbnailInfo], style: ThumbnailStyle) throws -> String {
|
||||
@@ -26,7 +26,7 @@ struct ThumbnailListGenerator {
|
||||
factory.largeThumbnail.makeCorner(text: $0)
|
||||
}
|
||||
|
||||
try imageProcessor.requireImage(
|
||||
try files.requireImage(
|
||||
source: thumbnail.imageFilePath,
|
||||
destination: thumbnail.imageFilePath,
|
||||
width: style.width,
|
||||
|
Reference in New Issue
Block a user