import Foundation struct GenericPage { let language: ContentLanguage let title: String let description: String let links: [NavigationBar.Link] let headers: [HeaderElement] let additionalFooter: String let insertedContent: (inout String) -> Void init(language: ContentLanguage, title: String, description: String, links: [NavigationBar.Link], headers: Set, additionalFooter: String, insertedContent: @escaping (inout String) -> Void) { self.language = language self.title = title self.description = description self.links = links self.headers = headers.union([.title(title), .description(description)]).sorted() self.additionalFooter = additionalFooter self.insertedContent = insertedContent } var content: String { #warning("Consolidate this code with ContentPage") var result = "" result += "" result += PageHead(items: headers).content result += "" result += NavigationBar(links: links).content result += "
" insertedContent(&result) result += "
" result += additionalFooter result += "" // Close content return result } }