Create page from post
This commit is contained in:
@ -17,7 +17,7 @@ final class Post: Item, DateItem, LocalizedItem {
|
||||
var hasEndDate: Bool
|
||||
|
||||
@Published
|
||||
var endDate: Date
|
||||
var potentialEndDate: Date
|
||||
|
||||
/**
|
||||
The tags associated with the post
|
||||
@ -52,7 +52,7 @@ final class Post: Item, DateItem, LocalizedItem {
|
||||
self.createdDate = createdDate
|
||||
self.startDate = startDate
|
||||
self.hasEndDate = endDate != nil
|
||||
self.endDate = endDate ?? startDate
|
||||
self.potentialEndDate = endDate ?? startDate
|
||||
self.tags = tags
|
||||
self.german = german
|
||||
self.english = english
|
||||
@ -143,6 +143,34 @@ final class Post: Item, DateItem, LocalizedItem {
|
||||
english.remove(file)
|
||||
german.remove(file)
|
||||
}
|
||||
|
||||
func makePage() -> Page {
|
||||
var id = self.id
|
||||
var number = 2
|
||||
while !content.isNewIdForPage(id) {
|
||||
id += "\(self.id)-\(number)"
|
||||
number += 1
|
||||
}
|
||||
// Move tags to page
|
||||
let tags = self.tags
|
||||
self.tags = []
|
||||
|
||||
let german = english.makePage(urlString: id + "-de")
|
||||
let english = english.makePage(urlString: id + "-en")
|
||||
return Page(
|
||||
content: content,
|
||||
id: id,
|
||||
externalLink: nil,
|
||||
isDraft: true,
|
||||
createdDate: .now,
|
||||
hideDate: false,
|
||||
startDate: startDate,
|
||||
endDate: endDate,
|
||||
german: german,
|
||||
english: english,
|
||||
tags: tags,
|
||||
requiredFiles: [])
|
||||
}
|
||||
}
|
||||
|
||||
extension Post {
|
||||
@ -177,7 +205,7 @@ extension Post {
|
||||
isDraft: isDraft,
|
||||
createdDate: createdDate,
|
||||
startDate: startDate,
|
||||
endDate: hasEndDate ? endDate : nil,
|
||||
endDate: endDate,
|
||||
tags: tags.map { $0.id },
|
||||
german: german.data,
|
||||
english: english.data,
|
||||
|
Reference in New Issue
Block a user