# TODO

today:

- Good Python Interface
- Publish Python Package
- Command-Lines: Attachment, define/set, import?, 
  - Attachment blocks / also in other files
  - document id into context
- Fix lsp id assignment probem
- Detect if footnotes do not start with 1



## MVP

Milestones:

- [x] A great CLI tool
- [ ] Rust, Python, Typescript as Packages installable
- [ ] Documentation

MVP use-cases:

- zettelkasten notes
- jupyter notebook
- a way to edit semi structured data in apps, like flashcards 
- blogging


Features

- document ids
- `python`, `rust`, `js`, `ts`, `swift`, `java`, `lua`?  bindings
- `windows`, `linux`, `web`, `android`, `ios` platforms
- `bash` integration like `jq`
- css selectors
- links for hyper documents 
- metaline
- autoformatting and conversion in both directions
- treesitter, maybe lsp
- document metadata like document id
- output not only sqlite but also sql (as lightweight alternative)
- Project local ids and global ones, maybe match uri ideas

Little bugs / improvments:
- id using quoted string to enable dots and stuff like this
- Test type ."mytype": to see if it is valid
- Use the syntax tests for pgo?  

Interesting / Learning:

- Profiling
- Real world corpus
- convert the internet challenge (markdown / html)
- a dev dashboard with all the commands and reports and stuff like this
  - e.g. how to run profiling, coverage, fuzzing
  - record data to track things over time

## Next

- headlines
- Port over all go-tests
  - `cmd/examples/syntax_examples.wasot``
- close explicitly
- Temp IDs
- levels-management
- headline within block
- Define an AST

## Todos

- [ ] Pipeline, Linting, Fuzzing, etc. -> Fix Linting stuff  + auto-command in Claude.md
- [ ] Python API
- [ ] Bash completions
- [ ] Appendixes / Companion
- [ ] Release Process (incl. deb file, rust crate, python-lib)
- [ ] Processors! (via listener?)
- [ ] Proper ID-Management
- [ ] LSP
- [ ] Treesitter
- [ ] CSS-Like selectors
- [ ] Lua & Kotlin & Swift API

There are existing documents regarding things I wished it had

## Nice to learn

- PGO & reduce binary size
- profiling
- cross compilation
- Postgres Plugin. Would be nice to learn.
- Optimize speed by pipelining. While the OS reads the next line we can parse the current one.

 