Add tag command
This commit is contained in:
@ -76,6 +76,7 @@ extension Content {
|
||||
|
||||
let tags = tagData.reduce(into: [:]) { (tags, data) in
|
||||
tags[data.key] = Tag(
|
||||
content: self,
|
||||
isVisible: data.value.isVisible,
|
||||
german: convert(data.value.german, images: images),
|
||||
english: convert(data.value.english, images: images))
|
||||
|
@ -1,6 +1,6 @@
|
||||
import Foundation
|
||||
|
||||
final class Tag: ObservableObject {
|
||||
final class Tag: Item {
|
||||
|
||||
var id: String {
|
||||
english.urlComponent
|
||||
@ -15,17 +15,19 @@ final class Tag: ObservableObject {
|
||||
@Published
|
||||
var english: LocalizedTag
|
||||
|
||||
init(id: String) {
|
||||
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)
|
||||
}
|
||||
|
||||
init(isVisible: Bool = true, german: LocalizedTag, english: LocalizedTag) {
|
||||
init(content: Content, isVisible: Bool = true, german: LocalizedTag, english: LocalizedTag) {
|
||||
self.isVisible = isVisible
|
||||
self.german = german
|
||||
self.english = english
|
||||
super.init(content: content)
|
||||
}
|
||||
|
||||
var linkName: String {
|
||||
@ -42,6 +44,20 @@ final class Tag: ObservableObject {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
extension Tag: Identifiable {
|
||||
|
Reference in New Issue
Block a user