Metadata-Version: 2.4
Name: warhol
Version: 0.0.1
Summary: Website Assembler Requiring Hardly any Other Libraries -- a minimal static-site builder
Author-email: Andy Buckley <andy@insectnation.org>
License-Expression: Apache-2.0
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

# Warhol -- Website Assembler Requiring Hardly any Other Libraries

## Make a website from Markdown and HTML snippets

Current popular static-website generators are complex beasts, with
advanced templating languages, and complicated, fragile and
(e.g. Node) dependency-heavy example styles. This package is the
antidote: a simple, minimal-dependency package for wrapping HTML and
Markdown content pages in site-standard header/footer/etc HTML
snippets. It's HTML, not rocket science.

The `build` command merges pages from the `content/` directory with
headers, footers, and box "asides" loaded from the `include/`
directory. Any Markdown `.md` files in the content directory tree are
converted to HTML, staged in the `.build` directory. The final stage
is injection of includes and template parameters, which augment the
cache contents and write out to the `public/` directory.

Parameters are mostly defined as URL-regex maps in the `config.toml`
config file. The default behaviour is for the build step to create a
directory and `index.html` file in place of each (non-index) HTML
file, so the webpage URLs do not have `.html` suffixes; this can be
disabled via a regex match in the config file.

The `public` directory can be viewed directly with a web browser, but
as URLs are internally specified relative to the HTTP server root,
it's best to run a local web server. The `serve` command does this.

TODO:
 - test and early-exit for either markdown or pandoc if .md's found
 - add a global no-extensions on/off flag in config?
 - allow regex capture-group injection into templates... needs subst map?!?
 - parallel processing for MD -> HTML
 - unify build and serve modes behind a single command?
 - use for JustHTML or BeautifulSoup?
 - use inotify to auto-trigger updates?
