Module

core.asset

Asset handling for static files (images, CSS, JS, fonts, etc.).

Provides asset discovery, processing (minification, optimization, bundling), fingerprinting for cache-busting, and atomic output writing. Handles CSS nesting transformation, CSS bundling via @import resolution, and image optimization.

Key Concepts:

  • Entry points: CSS/JS files that serve as bundle roots (style.css, bundle.js)
  • Modules: CSS/JS files imported by entry points (bundled, not copied separately)
  • Fingerprinting: Hash-based cache-busting via filename suffixes
  • Atomic writes: Crash-safe file writing using temporary files

Related Modules:

  • bengal.orchestration.asset: Asset discovery and orchestration
  • bengal.utils.css_minifier: CSS minification implementation
  • bengal.utils.atomic_write: Atomic file writing utilities

Package Structure:

  • asset_core.py: Asset dataclass and primary methods
  • css_transforms.py: CSS transformation utilities (nesting, dedup, minify)