Add tag command

This commit is contained in:
Christoph Hagen
2024-12-14 19:02:01 +01:00
parent cdaaa36303
commit 657f8c4ef4
8 changed files with 77 additions and 14 deletions

View File

@ -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))

View File

@ -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 {