Reorganize headers, page templates
This commit is contained in:
@ -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 {
|
||||
|
32
WebsiteGenerator/Templates/Pages/HeaderTemplate.swift
Normal file
32
WebsiteGenerator/Templates/Pages/HeaderTemplate.swift
Normal 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"
|
||||
}
|
@ -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"
|
||||
}
|
@ -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"
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user