49 lines
1.0 KiB
Swift
49 lines
1.0 KiB
Swift
import Foundation
|
|
|
|
final class LocalizedTag: ObservableObject {
|
|
|
|
@Published
|
|
var urlComponent: String
|
|
|
|
/// A custom name, different from the tag id
|
|
@Published
|
|
var name: String
|
|
|
|
@Published
|
|
var subtitle: String?
|
|
|
|
@Published
|
|
var description: String?
|
|
|
|
/// The image id of the thumbnail
|
|
@Published
|
|
var thumbnail: ImageResource?
|
|
|
|
/// The original url in the previous site layout
|
|
let originalUrl: String?
|
|
|
|
init(urlComponent: String,
|
|
name: String,
|
|
subtitle: String? = nil,
|
|
description: String? = nil,
|
|
thumbnail: ImageResource? = nil,
|
|
originalUrl: String? = nil) {
|
|
self.urlComponent = urlComponent
|
|
self.name = name
|
|
self.subtitle = subtitle
|
|
self.description = description
|
|
self.thumbnail = thumbnail
|
|
self.originalUrl = originalUrl
|
|
}
|
|
}
|
|
|
|
extension LocalizedTag {
|
|
|
|
func data() -> FeedEntryData.Tag {
|
|
.init(
|
|
name: name,
|
|
url: "tags/\(urlComponent).html"
|
|
)
|
|
}
|
|
}
|