eat my own dogfood, subtasks

master
Bel LaPointe 2021-12-31 16:58:08 -05:00
parent 6c83f4197d
commit 141a374441
5 changed files with 40 additions and 6 deletions

10
TODO.md
View File

@ -5,6 +5,14 @@ Goals
* YAML based todo
* because goddamnit a year of this shit isn't significant on disk or in RAM for vim
* ez edit on many platforms, even offline and mobile
* ez start on many platforms
* defer, schedule, looping, details
* let UI be UI and plaintext be plaintext, cause I dont use ledger.scratch.com
* let UI be UI and plaintext be plaintext, cause I dont use ledger.scratch.com anyhow
* of course I can't read ledger from mobile so incomplete example there but w/e
* if mobile, then need view + complete
* else fuckit get a damned keyboard
* tags
## TODO
See todo.yaml

View File

@ -3,10 +3,10 @@ package main
import (
"bytes"
"flag"
"fmt"
"io"
"io/ioutil"
"local/pt-todo-server/pttodo"
"log"
"os"
"gopkg.in/yaml.v2"
@ -48,6 +48,6 @@ func _main() error {
if err != nil {
return err
}
log.Printf("%s", b2)
fmt.Printf("%s\n", b2)
return nil
}

View File

@ -1,6 +1,9 @@
package pttodo
import "time"
import (
"fmt"
"time"
)
type Todo struct {
Todo string
@ -8,6 +11,7 @@ type Todo struct {
TS TS `yaml:",omitempty"`
Schedule Schedule `yaml:",omitempty"`
Tags string `yaml:",omitempty"`
Subtasks []Todo `yaml:",omitempty"`
}
func (todo Todo) Triggered() bool {
@ -17,7 +21,7 @@ func (todo Todo) Triggered() bool {
}
func (todo Todo) MarshalYAML() (interface{}, error) {
if todo == (Todo{Todo: todo.Todo}) {
if fmt.Sprint(todo) == fmt.Sprint(Todo{Todo: todo.Todo}) {
return todo.Todo, nil
}
type Alt Todo

View File

@ -2,6 +2,7 @@ package pttodo
import (
"encoding/json"
"fmt"
"strings"
"testing"
@ -26,7 +27,7 @@ func TestJSONTodo(t *testing.T) {
t.Fatal(err)
} else if err := json.Unmarshal(b, &todo2); err != nil {
t.Fatal(err)
} else if todo != todo2 {
} else if fmt.Sprint(todo) != fmt.Sprint(todo2) {
t.Fatal(todo2)
}
})

21
todo.yaml Normal file
View File

@ -0,0 +1,21 @@
todo:
- todo: ez edit on many platforms, even offline and mobile
subtasks:
- mobile view + complete method
done:
- todo: YAML based todo
detail:
because goddamnit a year of this shit
isn't significant on disk or in RAM for vim
- todo: yaml based todo for plaintext
detail: a year isnt even a mb
- ez edit, start on many platforms
- defer
- schedule
- looping
- details
- todo: let UI be UI for whatever platform
- tags
- todo: sub tasks
subtasks:
- a