|
|
@@ -9,7 +9,7 @@ import Foundation
|
|
|
import SwiftData
|
|
|
|
|
|
enum Status : String, CaseIterable, Identifiable, Codable {
|
|
|
- case Default = ""
|
|
|
+ case Default = " "
|
|
|
case Complete = "V"
|
|
|
case InProgress = "C"
|
|
|
case Hiatus = "H"
|
|
|
@@ -31,6 +31,16 @@ final class SubTask {
|
|
|
init(name: String) {
|
|
|
self.name = name
|
|
|
}
|
|
|
+
|
|
|
+ func yaml(_ indent: Int = 0) -> String {
|
|
|
+ let h1 = String(repeating: " ", count: indent)
|
|
|
+ let h2 = String(repeating: " ", count: indent + 1)
|
|
|
+ var rval = h1 + "[\(status.rawValue)] \(name)\n"
|
|
|
+ if !notes.isEmpty {
|
|
|
+ rval += h2 + "# " + notes.replacingOccurrences(of: "\n", with: "\n" + h2 + "# ")
|
|
|
+ }
|
|
|
+ return rval
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Model
|
|
|
@@ -44,4 +54,15 @@ final class Task {
|
|
|
init(name: String) {
|
|
|
self.name = name
|
|
|
}
|
|
|
+
|
|
|
+ func yaml(_ indent: Int = 0) -> String {
|
|
|
+ let h1 = String(repeating: " ", count: indent)
|
|
|
+ let h2 = String(repeating: " ", count: indent + 1)
|
|
|
+ var rval = " [\(status.rawValue)] \(name) (\(tags.joined(separator: " ")))\n"
|
|
|
+ if !notes.isEmpty {
|
|
|
+ rval += h2 + "# " + notes.replacingOccurrences(of: "\n", with: "\n" + h2 + "# ")
|
|
|
+ }
|
|
|
+ rval += subtasks.map({ $0.yaml(indent + 1) }).joined()
|
|
|
+ return rval
|
|
|
+ }
|
|
|
}
|