_lib Directory Structure

This directory contains all JavaScript modules for the Eleventy build system, organized by concern.

Directory Layout

_lib/
├── build/          # Build tooling (esbuild, SCSS compilation)
├── collections/    # Domain collections (products, events, etc.)
├── eleventy/       # Eleventy-specific plugins and config helpers
├── filters/        # URL-based filtering system for products/properties
├── media/          # Image processing and asset handling
├── scripts/        # Standalone CLI utilities
└── utils/          # Pure utility functions (no Eleventy dependencies)

Import Aliases

The project uses Node.js subpath imports (defined in package.json) for clean imports:

import { memoize } from "#utils/memoize.js";
import { configureProducts } from "#collections/products.js";
import { configureImages } from "#media/image.js";
import config from "#data/config.json" with { type: "json" };

Available aliases:

Conventions

Eleventy Plugin Files

Files that register with Eleventy should export a configureX function:

export function configureProducts(eleventyConfig) {
  eleventyConfig.addCollection("products", ...);
  eleventyConfig.addFilter("getProductsByCategory", ...);
}

Directory Details

build/

Build-time tooling that runs during the Eleventy build process:

collections/

Domain-specific collections and their associated filters:

eleventy/

Eleventy-specific configuration helpers:

filters/

URL-based filtering system:

media/

Image and asset processing:

scripts/

Standalone CLI utilities (not part of the build):

utils/

Pure utility functions with no Eleventy dependencies: