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 * YAML based todo
* because goddamnit a year of this shit isn't significant on disk or in RAM for vim * 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 edit on many platforms, even offline and mobile
* ez start on many platforms
* defer, schedule, looping, details * 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 * tags
## TODO
See todo.yaml

View File

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

View File

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

View File

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