First version
Apparently I forgot to commit the actual program when I originally
made this repo, incredible.
author |
Steve Losh <steve@stevelosh.com> |
date |
Thu, 07 Mar 2024 14:42:49 -0500 |
parents |
8880bc047a85 |
children |
90717aee8905 |
# mw
`mw` stands for any/all of the following:
* My Wiki
* Mini Wiki
* Make Wiki
* Markdown Wiki
License: GPLv3.
## Design
Wiki pages are vanilla Markdown files, because writing in any other format is
awful and version control is good. Metadata will be a single Lisp list at the
beginning of the file, read with `safe-read`.
No directories. Just one big list of Markdown files that get transformed into
`.html` files one-by-one. Links should be relative so you can serve them from
a subdirectory and it'll still work.
The home page is special-cased, its metadata includes metadata for the entire
wiki (title, link color, etc).
Linking is special-cased because it's so common. In addition to vanilla
Markdown links, there's an extra layer of postprocessing:
* `[Some Page]()`: looks up the destination by page title.
* `[Some Page](some-slug)`: looks up the destination by page slug.
Pages can have `extra-titles` and `extra-slugs`, so you can alias really common
pages to avoid typing.
The output will be static, vanilla HTML files that can be served with anything.
No Javascript required.
## TODO
* Static files (e.g. images) in a folder should get copied over.
* Maybe an actual CLI?