DotLiquid templates
Render HTML with the Suave.DotLiquid package. Install it first:
dotnet add package Suave.DotLiquid
Hello template
Put a file such as templates/hello.liquid next to your app:
<!-- templates/hello.liquid -->
<h1>Hello {{ model.name }}</h1>
<p>You are {{ model.age }} years old.</p>
open Suave
open Suave.Filters
open Suave.Operators
open Suave.DotLiquid
type Person = { name : string; age : int }
// Point DotLiquid at your templates folder (once at startup)
do setTemplatesDir "./templates"
let app =
path "/greet" >=> page "hello.liquid" { name = "Ada"; age = 36 }
startWebServer defaultConfig app
Prefer Suave.DotLiquid.page over calling DotLiquid’s Template.Parse yourself — it wires rendering into a WebPart for you.
Multiple pages
open Suave
open Suave.Filters
open Suave.Operators
open Suave.RequestErrors
open Suave.DotLiquid
type PageModel = { title : string }
do setTemplatesDir "./templates"
let app =
choose [
path "/" >=> page "home.liquid" { title = "Home" }
path "/about" >=> page "about.liquid" { title = "About" }
NOT_FOUND "Not found"
]
startWebServer defaultConfig app
See also the DotLiquid recipe and API reference.