mirror of
https://github.com/samsonjs/samhuri.net.git
synced 2026-04-27 14:57:40 +00:00
42 lines
833 B
Swift
42 lines
833 B
Swift
//
|
|
// File.swift
|
|
//
|
|
//
|
|
// Created by Sami Samhuri on 2019-12-02.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
struct PageContext {
|
|
let site: Site
|
|
let body: String
|
|
let page: Page
|
|
let metadata: [String: String]
|
|
|
|
var title: String {
|
|
guard !page.title.isEmpty else {
|
|
return site.title
|
|
}
|
|
|
|
return "\(site.title): \(page.title)"
|
|
}
|
|
}
|
|
|
|
extension PageContext: TemplateContext {
|
|
var template: String {
|
|
page.template ?? site.template
|
|
}
|
|
|
|
var dictionary: [String: Any] {
|
|
[
|
|
"site": site,
|
|
"title": title,
|
|
"body": body,
|
|
"page": page,
|
|
"metadata": metadata,
|
|
"styles": site.styles + page.styles,
|
|
"scripts": site.scripts + page.scripts,
|
|
"currentYear": Date.currentYear,
|
|
]
|
|
}
|
|
}
|