import Elementary import Foundation import Infrastructure /// A ``Page`` with fixed content, metadata, and stub assets. struct StubPage: Page { // MARK: Properties /// The version token appended to the page's asset URLs, or `nil` to leave them unversioned. let assetVersion: String? /// The locale the page content is localized to. let locale: Locale // MARK: Initializers /// Creates a stub page. /// - Parameters: /// - locale: the locale the page content is localized to. Defaults to `en`. /// - assetVersion: the version token appended to the page's asset URLs, or `nil` (the /// default) to leave them unversioned. init( locale: Locale = .init(identifier: "en"), assetVersion: String? = nil ) { self.assetVersion = assetVersion self.locale = locale } // MARK: Computed var content: some HTML { p { "Stub content" } } var lang: String { locale.language.languageCode?.identifier ?? "en" } var metadata: some HTML { meta( .name("stub"), .content("marker") ) } var scripts: [any Asset] { [StubAsset( fileExtensions: [.css, .js], fileName: "stub" )] } var stylesheets: [any Asset] { [StubAsset( fileExtensions: [.css, .js], fileName: "stub" )] } var title: String { "Stub Page" } }