This directory contains all JavaScript modules for the Eleventy build system, organized by concern.
_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)
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:
#data/* - ./src/_data/*#lib/* - ./src/_lib/*#collections/* - ./src/_lib/collections/*#filters/* - ./src/_lib/filters/*#eleventy/* - ./src/_lib/eleventy/*#build/* - ./src/_lib/build/*#media/* - ./src/_lib/media/*#utils/* - ./src/_lib/utils/*Files that register with Eleventy should export a configureX function:
export function configureProducts(eleventyConfig) {
eleventyConfig.addCollection("products", ...);
eleventyConfig.addFilter("getProductsByCategory", ...);
}
build/Build-time tooling that runs during the Eleventy build process:
esbuild.js - JavaScript bundlingscss.js - SCSS compilation with dynamic importsscss-files.js - Determines which optional SCSS files to includetheme-compiler.js - Compiles theme SCSS files for theme-switchercollections/Domain-specific collections and their associated filters:
products.js - Products, reviews, SKUsproperties.js - Property listingsevents.js - Event categorization (upcoming/past/recurring)categories.js - Category management with inherited imagesguides.js - Guide categories and pagesmenus.js - Restaurant menu systemlocations.js - Location/area handlingnavigation.js - Site navigationsearch.js - Product keyword searchtags.js - Tag extractioneleventy/Eleventy-specific configuration helpers:
cache-buster.js - URL cache busting for productionexternal-links.js - External link handling (target="_blank")feed.js - RSS feed configurationfile-utils.js - File existence checks, snippet renderingical.js - iCal generation for eventslayout-aliases.js - Auto-registers layout aliasesopening-times.js - Opening times shortcode/filterrecurring-events.js - Recurring events shortcode/filterfilters/URL-based filtering system:
item-filters.js - Generic filtering factory (used by products and properties)product-filters.js - Product-specific filter configurationproperty-filters.js - Property-specific filter configurationmedia/Image and asset processing:
image.js - Responsive images, lazy loading, blurry placeholdersinline-asset.js - Inline SVG and images into HTMLunused-images.js - Reports unused images after buildscripts/Standalone CLI utilities (not part of the build):
add-skus.js - Add unique SKUs to product optionsutils/Pure utility functions with no Eleventy dependencies:
memoize.js - Caching wrappersorting.js - Collection sorting utilitiesslug-utils.js - Slug normalization and permalink buildingschema-helper.js - Schema.org/structured data helpers