Normalized build configuration for an Astral site.
Paths are stored as absolute paths so downstream modules can work without repeatedly resolving them against the site root.
Summary
Functions
Return and clear accumulated top-level configuration options.
Accumulate keyword options in the current process's top-level configuration scope.
Reset all process-local configuration scopes before evaluating a site declaration.
Enable an island framework adapter in the islands block.
Append an allowed remote image URL pattern to the image configuration.
Append a browser entry path, resolved relative to the assets directory.
Set the browser output directory, relative to the site output directory.
Set the public URL prefix used for browser assets.
Use the default assets directory.
Set the directory containing browser assets.
Collect browser build settings for the specified assets directory.
Append a named content collection using its default settings.
Configure a named collection's directory, schema, layout and route settings.
Declare a runtime-selected island component path and its framework adapter.
Set the directory containing local .astral components.
Set the site's default layout from a layouts block.
Choose whether the current collection includes draft entries.
Append a browser entry in an assets block.
Append a schema field with its type, optional default and required flag.
Build a generated route whose renderer evaluates quoted code with route and site bindings.
Declare a generated route whose block renders with site, route, config and assigns bindings.
Enable or disable content hashes in generated browser asset filenames.
Set image processing options directly as a keyword list.
Collect enabled island adapters and explicitly declared browser components.
Set the default layout for the current collection or, outside a collection, the site.
Use the default layouts directory.
Set the directory containing layouts.
Set the layouts directory and evaluate nested layout directives.
Build a normalized config from keyword options.
Set the site output directory, or the browser output directory inside an assets block.
Set the directory containing file-based pages.
Set the current collection's route pattern.
Append middleware for config-generated routes without options.
Append middleware for config-generated routes with options.
Append a site plugin without options.
Append a site plugin with keyword options.
Set the directory of public files copied into static output.
Set the site root against which relative configuration paths are resolved.
Set a collection schema, converting literal map syntax through JSONSpec.
Convert quoted map schemas through JSONSpec; preserve other schema representations.
Declare an Astral site configuration.
Set the browser asset URL prefix in an assets block.
Types
@type t() :: %Astral.Config{ asset_entry: [String.t()], asset_hash: boolean(), asset_outdir: String.t(), asset_url_prefix: String.t(), assets: String.t(), collections: [Astral.Collection.t()], components: String.t(), image: Astral.Image.Config.t() | nil, islands: Astral.Islands.Config.t(), layout: String.t(), layouts: String.t(), outdir: String.t(), pages: String.t(), plugins: [Astral.Plugin.plugin()], public: String.t(), root: String.t() }
Functions
Return and clear accumulated top-level configuration options.
Accumulate keyword options in the current process's top-level configuration scope.
Reset all process-local configuration scopes before evaluating a site declaration.
Enable an island framework adapter in the islands block.
Append an allowed remote image URL pattern to the image configuration.
Append a browser entry path, resolved relative to the assets directory.
Set the browser output directory, relative to the site output directory.
Set the public URL prefix used for browser assets.
Use the default assets directory.
Set the directory containing browser assets.
Collect browser build settings for the specified assets directory.
Append a named content collection using its default settings.
Configure a named collection's directory, schema, layout and route settings.
Declare a runtime-selected island component path and its framework adapter.
Set the directory containing local .astral components.
Set the site's default layout from a layouts block.
Choose whether the current collection includes draft entries.
Append a browser entry in an assets block.
Append a schema field with its type, optional default and required flag.
Build a generated route whose renderer evaluates quoted code with route and site bindings.
Declare a generated route whose block renders with site, route, config and assigns bindings.
Enable or disable content hashes in generated browser asset filenames.
Set image processing options directly as a keyword list.
Collect enabled island adapters and explicitly declared browser components.
Set the default layout for the current collection or, outside a collection, the site.
Use the default layouts directory.
Set the directory containing layouts.
Set the layouts directory and evaluate nested layout directives.
Build a normalized config from keyword options.
Set the site output directory, or the browser output directory inside an assets block.
Set the directory containing file-based pages.
Set the current collection's route pattern.
Append middleware for config-generated routes without options.
Append middleware for config-generated routes with options.
Append a site plugin without options.
Append a site plugin with keyword options.
Set the directory of public files copied into static output.
Set the site root against which relative configuration paths are resolved.
Set a collection schema, converting literal map syntax through JSONSpec.
Convert quoted map schemas through JSONSpec; preserve other schema representations.
Declare an Astral site configuration.
Set the browser asset URL prefix in an assets block.