Add labels to posts
This commit is contained in:
@ -1,12 +1,5 @@
|
||||
|
||||
struct ContentLabel {
|
||||
|
||||
let icon: PageIcon
|
||||
|
||||
let value: String
|
||||
}
|
||||
|
||||
struct ContentLabels {
|
||||
struct ContentLabels: HtmlProducer {
|
||||
|
||||
private let labels: [ContentLabel]
|
||||
|
||||
@ -14,15 +7,14 @@ struct ContentLabels {
|
||||
self.labels = labels
|
||||
}
|
||||
|
||||
var content: String {
|
||||
func populate(_ result: inout String) {
|
||||
guard !labels.isEmpty else {
|
||||
return ""
|
||||
return
|
||||
}
|
||||
var result = "<div class='labels-container'>"
|
||||
result += "<div class='labels-container'>"
|
||||
for label in labels {
|
||||
result += "<div><svg><use href='#\(label.icon.icon.name)'></use></svg>\(label.value)</div>"
|
||||
}
|
||||
result += "</div>"
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,15 @@
|
||||
|
||||
protocol HtmlProducer {
|
||||
|
||||
func populate(_ result: inout String)
|
||||
}
|
||||
|
||||
extension HtmlProducer {
|
||||
|
||||
var content: String {
|
||||
var result = ""
|
||||
populate(&result)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
@ -84,6 +84,14 @@ enum PageIcon: String, CaseIterable {
|
||||
case .leftRightArrow:return Icon.LeftRightArrow.self
|
||||
}
|
||||
}
|
||||
|
||||
var svgString: String {
|
||||
icon.content
|
||||
}
|
||||
|
||||
var name: String {
|
||||
icon.name
|
||||
}
|
||||
}
|
||||
|
||||
extension PageIcon: Hashable {
|
||||
|
@ -1,17 +1,3 @@
|
||||
protocol HtmlProducer {
|
||||
|
||||
func populate(_ result: inout String)
|
||||
}
|
||||
|
||||
extension HtmlProducer {
|
||||
|
||||
var content: String {
|
||||
var result = ""
|
||||
populate(&result)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
struct TagList: HtmlProducer {
|
||||
|
||||
let tags: [FeedEntryData.Tag]
|
||||
|
Reference in New Issue
Block a user