Trulla 1.4.2

dotnet add package Trulla --version 1.4.2                
NuGet\Install-Package Trulla -Version 1.4.2                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Trulla" Version="1.4.2" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用此包。
paket add Trulla --version 1.4.2                
#r "nuget: Trulla, 1.4.2"                
#r 指令可用于 F# Interactive 和 Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中,以引用此包。
// Install Trulla as a Cake Addin
#addin nuget:?package=Trulla&version=1.4.2

// Install Trulla as a Cake Tool
#tool nuget:?package=Trulla&version=1.4.2                

<p align="center"> <img src='./artwork/Original Logo.png' alt='logo' width='300' /> </p>

Trulla 模板类似于 Handlebars 或 Mustache 模板,但具有静态类型和安全性!

C# 源生成器: NuGet 徽标

F# 类型提供者: NuGet 徽标

Trulla 方法

  • 提供带有
    • 模板参数
    • 循环
    • 条件
  • 从给定模板推断出模型类型。
  • 用户提供模型实例以渲染最终模板。

示例和用法

通用模板语法

查看更多示例,请参阅 测试

for 循环(带分隔符)

  • 当 chars = ["a"; "b"; "c"] 时,这将渲染 'abc'
{{for c in chars}}{{c}}{{end}}
  • 给定项之间的分隔符为给定 chars = ["a"; "b"; "c"] 时,此将渲染 'a;b;c'
{{for x in numbers|;}}{{x.id}}{{end}}

if/else

  • 根据 order.isActive 的值打印 "订单处于活动状态。" 或 "订单已关闭。"
  • else 部分是可选的。
Order is {{if order.isActive}}active{{else}}closed{{end}}.

工作原理内部

Trulla是用F#实现的。它基本上包含了一个“真正”的语言所具有的一切,例如:

  • 解析器
  • 无类型AST
  • 带有求解器的类型推断
  • 带类型AST
  • 代码生成

如果您想了解更多信息,请查看(内部)[./src/docs/Internals.md]。

产品 兼容的以及额外的计算目标框架版本。
.NET net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
.NET Core netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。
.NET Standard netstandard2.0 是兼容的。 netstandard2.1 已计算。
.NET Framework net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
MonoAndroid monoandroid 已计算。
MonoMac monomac 已计算。
MonoTouch monotouch 已计算。
Tizen tizen40 已计算。 tizen60 已计算。
Xamarin.iOS xamarinios 已计算。
Xamarin.Mac xamarinmac 已计算。
Xamarin.TVOS xamarintvos 已计算。
Xamarin.WatchOS xamarinwatchos 已计算。
兼容的目标框架
包含的目标框架(在包中)
有关目标框架.NET Standard的更多信息。

NuGet 包

此包没有被任何 NuGet 包使用。

GitHub 代码仓库

此包没有被任何流行的 GitHub 代码仓库使用。

版本 下载 最后更新
1.4.2 3,920 10/20/2023
1.4.1 179 10/18/2023
1.4.0-preview01 133 10/17/2023
1.3.0 162 9/18/2023
1.3.0-preview9 130 9/17/2023
1.3.0-preview8 129 9/17/2023
1.3.0-preview7 124 9/15/2023
1.3.0-preview6 132 9/15/2023
1.3.0-preview5 128 9/15/2023
1.3.0-preview4 122 9/15/2023
1.3.0-preview2 1,178 9/15/2023
1.3.0-preview18 102 9/18/2023
1.3.0-preview17 119 9/18/2023
1.3.0-preview16 97 9/18/2023
1.3.0-preview15 110 9/18/2023
1.3.0-preview14 114 9/18/2023
1.3.0-preview13 121 9/18/2023
1.3.0-preview12 103 9/18/2023
1.3.0-preview11 115 9/17/2023
1.3.0-preview10 119 9/17/2023
1.3.0-preview1 129 9/15/2023
1.2.1 168 9/13/2023
1.1.1 204 4/24/2023
1.1.0 183 4/24/2023

1.4.0
    - 使用 TheBlunt 而不是 FParsec

     1.3.0
     - 添加 C# 源生成器

     1.2.1
     - 添加可选分隔符到 `for` 循环

     1.1.1
     - 移除 "实验性" 通知

     1.1.0
     - 重访 / 重命名为 "Trulla"

     1.0.1
     #5: 不要引用 FSharp.Core 7
     #6: 构造函数参数的稳定排序

     1.0.0
     首次发布。