Import old content, load from disk
This commit is contained in:
@@ -12,23 +12,25 @@ final class Page: ObservableObject {
|
||||
var isDraft: Bool
|
||||
|
||||
@Published
|
||||
var metadata: [LocalizedPage]
|
||||
var createdDate: Date
|
||||
|
||||
/**
|
||||
All files which may occur in content but is stored externally.
|
||||
|
||||
Missing files which would otherwise produce a warning are ignored when included here.
|
||||
- Note: This property defaults to an empty set.
|
||||
*/
|
||||
@Published
|
||||
var externalFiles: Set<String> = []
|
||||
var startDate: Date
|
||||
|
||||
/**
|
||||
Specifies additional files which should be copied to the destination when generating the content.
|
||||
- Note: This property defaults to an empty set.
|
||||
*/
|
||||
@Published
|
||||
var requiredFiles: Set<String> = []
|
||||
var hasEndDate: Bool
|
||||
|
||||
@Published
|
||||
var endDate: Date
|
||||
|
||||
@Published
|
||||
var german: LocalizedPage
|
||||
|
||||
@Published
|
||||
var english: LocalizedPage
|
||||
|
||||
@Published
|
||||
var tags: [Tag]
|
||||
|
||||
/**
|
||||
Additional images required by the element.
|
||||
@@ -38,36 +40,31 @@ final class Page: ObservableObject {
|
||||
@Published
|
||||
var images: Set<String> = []
|
||||
|
||||
init(id: String, isDraft: Bool, metadata: [LocalizedPage], externalFiles: Set<String> = [], requiredFiles: Set<String> = [], images: Set<String> = []) {
|
||||
init(id: String,
|
||||
isDraft: Bool,
|
||||
createdDate: Date,
|
||||
startDate: Date,
|
||||
endDate: Date?,
|
||||
german: LocalizedPage,
|
||||
english: LocalizedPage,
|
||||
tags: [Tag]) {
|
||||
self.id = id
|
||||
self.isDraft = isDraft
|
||||
self.metadata = metadata
|
||||
self.externalFiles = externalFiles
|
||||
self.requiredFiles = requiredFiles
|
||||
self.images = images
|
||||
self.createdDate = createdDate
|
||||
self.startDate = startDate
|
||||
self.hasEndDate = endDate != nil
|
||||
self.endDate = endDate ?? startDate
|
||||
self.german = german
|
||||
self.english = english
|
||||
self.tags = tags
|
||||
}
|
||||
|
||||
func metadata(for language: ContentLanguage) -> LocalizedPage? {
|
||||
metadata.first { $0.language == language }
|
||||
switch language {
|
||||
case .german: return german
|
||||
case .english: return english
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
struct LocalizedPage {
|
||||
|
||||
let language: ContentLanguage
|
||||
|
||||
/**
|
||||
The string to use when creating the url for the page.
|
||||
|
||||
Defaults to ``id`` if unset.
|
||||
*/
|
||||
var urlString: String?
|
||||
|
||||
/**
|
||||
The headline to use when showing the entry on it's own page
|
||||
*/
|
||||
var headline: String
|
||||
}
|
||||
|
||||
extension Page: Identifiable {
|
||||
|
Reference in New Issue
Block a user