Add tag overview, improve assets
This commit is contained in:
@ -2,10 +2,6 @@ import Foundation
|
||||
|
||||
final class Tag: Item {
|
||||
|
||||
var id: String {
|
||||
english.urlComponent
|
||||
}
|
||||
|
||||
@Published
|
||||
var isVisible: Bool
|
||||
|
||||
@ -15,19 +11,19 @@ final class Tag: Item {
|
||||
@Published
|
||||
var english: LocalizedTag
|
||||
|
||||
init(content: Content, id: String) {
|
||||
override init(content: Content, id: String) {
|
||||
self.isVisible = true
|
||||
self.english = .init(urlComponent: id, name: id)
|
||||
let deId = id + "-" + ContentLanguage.german.rawValue
|
||||
self.german = .init(urlComponent: deId, name: deId)
|
||||
super.init(content: content)
|
||||
super.init(content: content, id: id)
|
||||
}
|
||||
|
||||
init(content: Content, isVisible: Bool = true, german: LocalizedTag, english: LocalizedTag) {
|
||||
init(content: Content, id: String, isVisible: Bool = true, german: LocalizedTag, english: LocalizedTag) {
|
||||
self.isVisible = isVisible
|
||||
self.german = german
|
||||
self.english = english
|
||||
super.init(content: content)
|
||||
super.init(content: content, id: id)
|
||||
}
|
||||
|
||||
var linkName: String {
|
||||
@ -38,49 +34,33 @@ final class Tag: Item {
|
||||
"/tags/\(linkName).html"
|
||||
}
|
||||
|
||||
func localized(in language: ContentLanguage) -> LocalizedTag {
|
||||
switch language {
|
||||
case .english: return english
|
||||
case .german: return german
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Paths
|
||||
|
||||
func absoluteUrl(for language: ContentLanguage) -> String {
|
||||
makeCleanAbsolutePath(internalPath(for: language))
|
||||
}
|
||||
|
||||
func filePathRelativeToOutputFolder(for language: ContentLanguage) -> String {
|
||||
makeCleanRelativePath(internalPath(for: language))
|
||||
}
|
||||
|
||||
private func internalPath(for language: ContentLanguage) -> String {
|
||||
content.settings.pages.pageUrlPrefix + "/" + localized(in: language).urlComponent
|
||||
content.settings.paths.tagsOutputFolderPath + "/" + localized(in: language).urlComponent
|
||||
}
|
||||
|
||||
override func absoluteUrl(in language: ContentLanguage) -> String {
|
||||
makeCleanAbsolutePath(internalPath(for: language))
|
||||
}
|
||||
|
||||
override func title(in language: ContentLanguage) -> String {
|
||||
localized(in: language).name
|
||||
}
|
||||
|
||||
override var itemType: ItemType {
|
||||
.tag
|
||||
}
|
||||
|
||||
func contains(urlComponent: String) -> Bool {
|
||||
german.urlComponent == urlComponent || english.urlComponent == urlComponent
|
||||
}
|
||||
}
|
||||
|
||||
extension Tag: Identifiable {
|
||||
|
||||
}
|
||||
|
||||
extension Tag: Equatable {
|
||||
|
||||
static func == (_ lhs: Tag, _ rhs: Tag) -> Bool {
|
||||
lhs.id == rhs.id
|
||||
}
|
||||
}
|
||||
|
||||
extension Tag: Hashable {
|
||||
|
||||
func hash(into hasher: inout Hasher) {
|
||||
hasher.combine(id)
|
||||
}
|
||||
}
|
||||
|
||||
extension Tag: Comparable {
|
||||
|
||||
static func < (lhs: Tag, rhs: Tag) -> Bool {
|
||||
lhs.id < rhs.id
|
||||
}
|
||||
extension Tag: LocalizedItem {
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user