First version
This commit is contained in:
41
CHDataManagement/Page Elements/FeedEntry.swift
Normal file
41
CHDataManagement/Page Elements/FeedEntry.swift
Normal file
@ -0,0 +1,41 @@
|
||||
import Foundation
|
||||
|
||||
struct FeedEntry {
|
||||
|
||||
let data: FeedEntryData
|
||||
|
||||
init(data: FeedEntryData) {
|
||||
self.data = data
|
||||
}
|
||||
|
||||
func addContent(to result: inout String) {
|
||||
#warning("TODO: Select CSS classes based on existence of link (hover effects, mouse pointer")
|
||||
result += "<div class='card'>"
|
||||
ImageGallery(id: data.entryId, images: data.images)
|
||||
.addContent(to: &result)
|
||||
|
||||
if let url = data.link?.url {
|
||||
result += "<div class=\"card-content\" onclick=\"window.location.href='\(url)'\">"
|
||||
} else {
|
||||
result += "<div class=\"card-content\">"
|
||||
}
|
||||
result += "<h3>\(data.textAboveTitle)</h3>"
|
||||
if let title = data.title {
|
||||
result += "<h2>\(title.htmlEscaped())</h2>"
|
||||
}
|
||||
if !data.tags.isEmpty {
|
||||
result += "<div class=\"tags\">"
|
||||
for tag in data.tags {
|
||||
result += "<a class=\"tag\" href=\"\(tag.url)\">\(tag.name)</a>"
|
||||
}
|
||||
result += "</div>"
|
||||
}
|
||||
for paragraph in data.text {
|
||||
result += "<p>\(paragraph)</p>"
|
||||
}
|
||||
if let url = data.link {
|
||||
result += "<div class=\"link-center\"><div class=\"link\">\(url.text)</div></div>"
|
||||
}
|
||||
result += "</div></div>" // Closes card-content and card
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user