49 lines
2.6 KiB
Markdown
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!
|