README.markdown @ 1af33b2f2616

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?