diff --git a/Commands/Languages/Razor/Razor-Language.ps.ps1 b/Commands/Languages/Razor/Razor-Language.ps.ps1 new file mode 100644 index 000000000..483e9a4dc --- /dev/null +++ b/Commands/Languages/Razor/Razor-Language.ps.ps1 @@ -0,0 +1,28 @@ +Language function Razor { +<# +.SYNOPSIS + Razor Template Transpiler. +.DESCRIPTION + Allows PipeScript to generate Razor. + + Multiline comments blocks like this `````` will be treated as blocks of PipeScript. + + JavaScript/CSS comment blocks like ```/*{}*/``` will also be treated as blocks of PipeScript. + + Razor comment blocks like ```@*{}*@``` will also be treated as blocks of PipeScript. +#> +[ValidatePattern('\.(cshtml|razor)$')] +param( +) + + + # We start off by declaring a number of regular expressions: + $startComment = '(?><\!--|/\*|\@\*)' + $endComment = '(?>-->|\*/|\*@)' + $Whitespace = '[\s\n\r]{0,}' + # * StartPattern ```$StartComment + '{' + $Whitespace``` + $startPattern = "(?${startComment}\{$Whitespace)" + # * EndPattern ```$whitespace + '}' + $EndComment``` + $endPattern = "(?$Whitespace\}${endComment}\s{0,})" + +} diff --git a/Transpilers/Templates/Razor.Template.psx.ps1 b/Transpilers/Templates/Razor.Template.psx.ps1 deleted file mode 100644 index e56a12a7b..000000000 --- a/Transpilers/Templates/Razor.Template.psx.ps1 +++ /dev/null @@ -1,69 +0,0 @@ -<# -.SYNOPSIS - Razor Template Transpiler. -.DESCRIPTION - Allows PipeScript to generate Razor. - - Multiline comments blocks like this `````` will be treated as blocks of PipeScript. - - JavaScript/CSS comment blocks like ```/*{}*/``` will also be treated as blocks of PipeScript. - - Razor comment blocks like ```@*{}*@``` will also be treated as blocks of PipeScript. -#> -[ValidatePattern('\.(cshtml|razor)$')] -param( -# The command information. This will include the path to the file. -[Parameter(Mandatory,ValueFromPipeline,ParameterSetName='TemplateFile')] -[Management.Automation.CommandInfo] -$CommandInfo, - -# If set, will return the information required to dynamically apply this template to any text. -[Parameter(Mandatory,ParameterSetName='TemplateObject')] -[switch] -$AsTemplateObject, - -# A dictionary of parameters. -[Collections.IDictionary] -$Parameter, - -# A list of arguments. -[PSObject[]] -$ArgumentList -) - -begin { - # We start off by declaring a number of regular expressions: - $startComment = '(?><\!--|/\*|\@\*)' - $endComment = '(?>-->|\*/|\*@)' - $Whitespace = '[\s\n\r]{0,}' - # * StartRegex ```$StartComment + '{' + $Whitespace``` - $startRegex = "(?${startComment}\{$Whitespace)" - # * EndRegex ```$whitespace + '}' + $EndComment``` - $endRegex = "(?$Whitespace\}${endComment}\s{0,})" - - # Create a splat containing arguments to the core inline transpiler - $Splat = [Ordered]@{ - StartPattern = $startRegex - EndPattern = $endRegex - } -} - -process { - # If we have been passed a command - if ($CommandInfo) { - # add parameters related to the file. - $Splat.SourceFile = $commandInfo.Source -as [IO.FileInfo] - $Splat.SourceText = [IO.File]::ReadAllText($commandInfo.Source) - } - - if ($Parameter) { $splat.Parameter = $Parameter } - if ($ArgumentList) { $splat.ArgumentList = $ArgumentList } - - # If we are being used within a keyword, - if ($AsTemplateObject) { - $splat # output the parameters we would use to evaluate this file. - } else { - # Otherwise, call the core template transpiler - .>PipeScript.Template @Splat # and output the changed file. - } -}