import Foundation struct FeedEntry { private let data: FeedEntryData init(data: FeedEntryData) { self.data = data } private var cardLinkClassText: String { data.link != nil ? " linked-card" : "" } var content: String { var result = "
" switch data.media { case .images(let images): ImageGallery(id: data.entryId, images: images).populate(&result) case .video(let videos): PostVideo(videos: videos).populate(&result) case .none: break } if let url = data.link?.url { result += "
" } else { result += "
" } result += "

\(data.textAboveTitle)

" if let title = data.title { result += "

\(title.htmlEscaped())

" } result += TagList(tags: data.tags).content for paragraph in data.text { result += "

\(paragraph)

" } if let url = data.link { result += "" } result += "
" // Closes card-content, card, article return result } }