# TODO # * Smart CSS things (fill in the processors) * Project global defines, parameters. * pre- and post-scripts that will be run from __main__, either some shipped with heckweasel or project-level. * Library of template modules? ATOM et al. * Some off the shelf website templates and a template manager. * Live refreshing server thing which maps a heckweasel tree into a web server's memory and updates on change. * https://github.com/Python-Markdown/markdown/wiki/Third-Party-Extensions * add markdown_link_attr_modifier extension * add figureAltCaption extension * add qrcode extension * Add support to define macros or whatever for Jinja, or to include generic stanzas in any output so adding macros won't mean repeatedly including them. * It'd be good to generate a dependency tree and only recompile things based on changes, like makefile-like behavior. * Fragments which would be blobs of mechanics like rss feed, thumbnail links, etc. They would be virtual files and other changes to processing chains and project contents. `python -mheckweasel --fragment=rss,config=foo.meta` etc. * Run commands as part of processing chains * Project level processing chain overrides in the .meta or whatever. * Project settings in separate file from .meta that would basically do .meta stuff. Like global meta + config in a top.heck file by default and overridable by a parameter. Maybe a nice default filename that doesn't start with . (whereas .meta or .heck is the current base metadata) * Handle the fact that HECKformat metadata is always a list in a more elegent way. We have some hacks in place where scalar values are expected, but if a project mixes metadata formats it gets a bit messy. * Provide a database-like interface to the global metadata tree, so that metameta page templates could query the database to assemble indexes and whatnot without looping over the actual files.