README.markdown @ 90717aee8905

Add static file copying
author Steve Losh <steve@stevelosh.com>
date Tue, 12 Mar 2024 10:24:34 -0400
parents 1af33b2f2616
children (none)
# 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.

Anything in `static` will be copied over verbatim, e.g. for images and such.

The output will be static, vanilla HTML files that can be served with anything.
No Javascript required.

## TODO

* Check for deleted files and delete them from build directory?
* Maybe an actual CLI?