Public/Common/New-BrownserveContentFromTemplate.ps1

function New-BrownserveContentFromTemplate
{
    [CmdletBinding()]
    param
    (
        [Parameter(Mandatory = $true)]
        [string]
        $TemplateDirectory,

        [Parameter(Mandatory = $true)]
        [string]
        $TemplateName,

        [Parameter(Mandatory = $false)]
        [hashtable]
        $Substitutions = @{}
    )
    begin
    {
        try
        {
            $Template = Get-Content (Join-Path $TemplateDirectory $TemplateName) -Raw
        }
        catch
        {
            throw "Failed to import template '$TemplateName'.`n$($_.Exception.Message)"
        }
    }
    process
    {
        foreach ($Key in $Substitutions.Keys)
        {
            $Template = $Template -replace "###${Key}###", $Substitutions[$Key]
        }
        return $Template
    }
    end
    {
    }
}