Rhedyn is a small static site generator/asset pipeline. It reads a config file,
runs tasks (optionally in parallel per step), and writes outputs to opts.outDir
with caching based on file hashes and state access.
src/index.js is the CLI entrypoint. It loads config (user or defaults),
then iterates through steps in tasks, running each task group in parallel.src/lib.js owns config loading, task expansion (file/state), caching, and
the task runner that calls action functions.src/defaults.js exports tasks and opts used by src/index.js.jobConfig for file/state selection, expansion, output paths, and cachingactionConfig for action-specific optionsaction function and a nameopts controls output/cache dirs, logging, and site meta.readFilesByGlob),
driven by jobConfig.inputFiles.meta.resources, with optional
pagination and auto-built output paths from jobConfig settings.expand: false) to run once with aggregated
inputs.src/cache.js stores cache files per job. Cache keys are based on job IDs,
file hashes, and accessed state paths.createTrackedObject wraps state/config so accessed properties are tracked
and used as cache dependencies.src/actions/ contains built-ins:
compileSass, renderMarkdownToHtml, renderTemplate,
renderMarkdownWithTemplate, renderIndex, optimiseSvg, copy,
imageToWebP, generateFavicons, generateTaxonomy.{ config, jobConfig, meta } and return
{ detail, paths, deps, ref }. The config value maps to actionConfig.ref results are exposed via meta.resources for later tasks.src/util/* provides filesystem helpers, path manipulation, and simple
object/state utilities.src/logging.js formats log output and implements log levels.