import Foundation extension Content { func generateFeed(for language: ContentLanguage, bookmarkKey: String) { let posts = posts.map { $0.feedEntry(for: language) } DispatchQueue.global(qos: .userInitiated).async { let navigationItems: [FeedNavigationLink] = [ .init(text: .init(en: "Projects", de: "Projekte"), url: .init(en: "/projects", de: "/projekte")), .init(text: .init(en: "Adventures", de: "Abenteuer"), url: .init(en: "/adventures", de: "/abenteuer")), .init(text: .init(en: "Services", de: "Dienste"), url: .init(en: "/services", de: "/dienste")), .init(text: .init(en: "Tags", de: "Kategorien"), url: .init(en: "/tags", de: "/kategorien")), ] let feed = Feed( language: language, title: .init(en: "Blog | CH", de: "Blog | CH"), description: .init(en: "The latests posts, projects and adventures", de: "Die neusten Beiträge, Projekte und Abenteuer"), iconDescription: .init(en: "An icon consisting of the letters C and H in blue and orange", de: "Ein Logo aus den Buchstaben C und H in Blau und Orange"), navigationItems: navigationItems, posts: posts) let fileContent = feed.content Content.accessFolderFromBookmark(key: bookmarkKey) { folder in let outputFile = folder.appendingPathComponent("feed.html", isDirectory: false) do { try fileContent .data(using: .utf8)! .write(to: outputFile) } catch { print("Failed to save: \(error)") } } } } }