Public/New-LiquidExtensionRegistry.ps1
|
<#
.SYNOPSIS Creates a Liquid extension registry. .DESCRIPTION Creates the registry object used to register host-provided custom tags and filters. PowerLiquid keeps extensions separate by dialect so a host can opt in to different behavior for core Liquid and Jekyll-style Liquid without loading plugins directly. .OUTPUTS System.Collections.Hashtable .EXAMPLE $registry = New-LiquidExtensionRegistry #> function New-LiquidExtensionRegistry { [CmdletBinding(SupportsShouldProcess = $true, ConfirmImpact = 'Low')] [OutputType([hashtable])] param() if (-not $PSCmdlet.ShouldProcess('Liquid extension registry', 'Create')) { return } Write-Verbose "Creating new Liquid extension registry" # Each dialect keeps separate custom tags and filters so extensions can stay dialect-specific. $registry = @{ TrustedTypes = New-Object 'System.Collections.Generic.HashSet[string]' ([System.StringComparer]::OrdinalIgnoreCase) Dialects = @{ Liquid = @{ Tags = @{} Filters = @{} } JekyllLiquid = @{ Tags = @{} Filters = @{} } } } Write-Verbose "Extension registry created with support for Liquid and JekyllLiquid dialects" return $registry } |