Trulla 1.4.1
See the version list below for details.
dotnet add package Trulla --version 1.4.1
NuGet\Install-Package Trulla -Version 1.4.1
<PackageReference Include="Trulla" Version="1.4.1" />
paket add Trulla --version 1.4.1
#r "nuget: Trulla, 1.4.1"
// Install Trulla as a Cake Addin #addin nuget:?package=Trulla&version=1.4.1 // Install Trulla as a Cake Tool #tool nuget:?package=Trulla&version=1.4.1
Trulla Templates
...it's like Handlebars or Mustache templates, but statically typed!
Status: Stable
The Trulla Approcah
- Provide a text template with:
- template parameters
- iterations
- conditionals
- A model type is infered from a given template.
- An instance of the model is provided by the user for rendering the final template.
Examples and Usage
- C# usage via Source Generators: Go to the C# Documentation
- F# usage via Type Providers: Go to the F# Documentation
General Template Syntax
Have a look at the tests for more samples!
for loops (with separator)
- This will render 'abc' for given chars = ["a"; "b"; "c"]:
{{for c in chars}}{{c}}{{end}}
- With a given separator between items, this will render 'a;b;c' for given chars = ["a"; "b"; "c"]:
{{for x in numbers|;}}{{x.id}}{{end}}
if/else
- This will print "Order is active." or "Order is closed." depending on the value of order.isActive:
- The
else
part is optional.
Order is {{if order.isActive}}active{{else}}closed{{end}}.
How it works internals
Trulla is implemented in F#. It basically contains everything a "real" language has, like
- a parser
- an untyped AST
- type inference with a solver
- a typed AST
- code generation
If you want to know more, have a look at the (Internals)[./src/docs/Internals.md].
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- FSharp.Core (>= 6.0.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.4.2 | 3,955 | 10/20/2023 |
1.4.1 | 207 | 10/18/2023 |
1.4.0-preview01 | 154 | 10/17/2023 |
1.3.0 | 185 | 9/18/2023 |
1.3.0-preview9 | 156 | 9/17/2023 |
1.3.0-preview8 | 152 | 9/17/2023 |
1.3.0-preview7 | 144 | 9/15/2023 |
1.3.0-preview6 | 155 | 9/15/2023 |
1.3.0-preview5 | 149 | 9/15/2023 |
1.3.0-preview4 | 148 | 9/15/2023 |
1.3.0-preview2 | 1,221 | 9/15/2023 |
1.3.0-preview18 | 115 | 9/18/2023 |
1.3.0-preview17 | 145 | 9/18/2023 |
1.3.0-preview16 | 129 | 9/18/2023 |
1.3.0-preview15 | 122 | 9/18/2023 |
1.3.0-preview14 | 137 | 9/18/2023 |
1.3.0-preview13 | 132 | 9/18/2023 |
1.3.0-preview12 | 135 | 9/18/2023 |
1.3.0-preview11 | 143 | 9/17/2023 |
1.3.0-preview10 | 148 | 9/17/2023 |
1.3.0-preview1 | 152 | 9/15/2023 |
1.2.1 | 180 | 9/13/2023 |
1.1.1 | 227 | 4/24/2023 |
1.1.0 | 213 | 4/24/2023 |
1.4.0
- Using TheBlunt instead of FParsec
1.3.0
- Added C# source generator
1.2.1
- Added optional separator to `for` loop
1.1.1
- Removed "experimental" notice
1.1.0
- Revisiting / renaming to "Trulla"
1.0.1
#5: Don't ref FSharp.Core 7
#6: Stable ordering of ctor params
1.0.0
Initial publish.