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)