Reorganize headers, page templates

This commit is contained in:
Christoph Hagen
2022-08-16 12:27:13 +02:00
parent 02a3dd4007
commit c8a70a3d42
10 changed files with 111 additions and 62 deletions

View File

@ -46,12 +46,8 @@ struct LocalizedSiteTemplate {
// MARK: Pages
var overviewPage: OverviewPageTemplate {
factory.overviewPage
}
var contentPage: ContentPageTemplate {
factory.contentPage
var page: PageTemplate {
factory.page
}
init(factory: TemplateFactory, language: String, site: Site, files: FileProcessor) throws {

View File

@ -0,0 +1,32 @@
import Foundation
protocol HeaderTemplate {
func generate(_ content: [ThumbnailKey : String], shouldIndent: Bool) throws -> String
}
enum HeaderKey: String, CaseIterable {
case backLink = "BACK_LINK"
case title = "TITLE"
case subtitle = "SUBTITLE"
case titleText = "TITLE_TEXT"
case date = "DATE"
}
struct CenteredHeaderTemplate: Template {
typealias Key = HeaderKey
let raw: String
static let templateName = "header-center.html"
}
struct LeftHeaderTemplate: Template {
typealias Key = HeaderKey
let raw: String
static let templateName = "header-left.html"
}

View File

@ -1,19 +0,0 @@
import Foundation
struct OverviewPageTemplate: Template {
enum Key: String, CaseIterable {
case head = "HEAD"
case topBar = "TOP_BAR"
case backLink = "BACK_LINK"
case title = "TITLE"
case subtitle = "SUBTITLE"
case titleText = "TITLE_TEXT"
case sections = "SECTIONS"
case footer = "FOOTER"
}
let raw: String
static let templateName = "overview-page.html"
}

View File

@ -1,14 +1,12 @@
import Foundation
struct ContentPageTemplate: Template {
struct PageTemplate: Template {
enum Key: String, CaseIterable {
case head = "HEAD"
case topBar = "TOP_BAR"
case backLink = "BACK_LINK"
case title = "TITLE"
case subtitle = "SUBTITLE"
case date = "DATE"
case contentClass = "CONTENT_CLASS"
case header = "HEADER"
case content = "CONTENT"
case previousPageLinkText = "PREV_TEXT"
case previousPageUrl = "PREV_LINK"

View File

@ -37,11 +37,15 @@ final class TemplateFactory {
}
}
// MARK: Headers
let leftHeader: LeftHeaderTemplate
let centeredHeader: CenteredHeaderTemplate
// MARK: Pages
let overviewPage: OverviewPageTemplate
let contentPage: ContentPageTemplate
let page: PageTemplate
// MARK: Init
@ -56,7 +60,8 @@ final class TemplateFactory {
self.largeThumbnail = try .init(in: templateFolder)
self.squareThumbnail = try .init(in: templateFolder)
self.smallThumbnail = try .init(in: templateFolder)
self.overviewPage = try .init(in: templateFolder)
self.contentPage = try .init(in: templateFolder)
self.leftHeader = try .init(in: templateFolder)
self.centeredHeader = try .init(in: templateFolder)
self.page = try .init(in: templateFolder)
}
}