zona-go/TODO.md
2025-04-11 15:56:26 -04:00

49 lines
2.6 KiB
Markdown

# TO-DO
- Refactor the directory structure processing
- Implement zola-style structure instead
- `zona init` command to populate the required files, _with_ defaults
(unlike zola)
- Interactive for setting values, also an option to create `.gitignore`
with `public` in it.
- `zona.yml` is **required** and should mark the root:
- `templates`, `content`, `static`, `zona.yml`
- multiple `zona.yml` files should be an error
- if the folder containing `zona.yml` doesn't contain _exactly_ the
expected directories and files, it's an error
- Paths in page metadata should start at these folders
- i.e. `(template|footer|header): name.html``root/templates/name.html`
- `(style|icon): name.ext``root/static/name.ext`
- Traverse `content` and `static` separately, applying different rules
- everything in `static/**` should be directly copied
- `content/**` should be processed
- `*.md` converted, everything else copied directly
- `./name.md` → ./name/index.html
- Either `./name.md` or `./name/index.md` are valid, _together_ they
cause an error!
- What about markdown links to internal pages?
- Relative links should be supported to play nice with LSP
- in case of relative link, zona should attempt to resolve it, figuring
out which file it's pointing to, and convert it to a `/` prefixed link
pointing to appropriate place
- so `../blog/a-post.md``/blog/a-post` where `/blog/a-post/index.html`
exists
- links from project root should also be supported
- check link validity at build time and supply warning
- _tl;dr_ all links should be resolved to the absolute path to that resource
starting from the website root. that's the link that should actually be
written to the HTML.
- Re-consider what `zona.yml` should have in it.
- Set syntax highlighting theme here
- a string that's not a file path: name of any built-in theme in
[chroma](https://github.com/alecthomas/chroma)
- path to `xml` _or_ `yml` file: custom theme for passing to chroma
- if `xml`, pass directly
- if `yml`, parse and convert into expected `xml` format before passing
- Set website root URL here
- toggle option for zona's custom image label expansion, image container div,
etc, basically all the custom rendering stuff
- Syntax highlighting for code blocks
- Add `zona serve` command with local dev server to preview the site
- Both `zona build` and `zona serve` should output warning and error
- Write actual unit tests!