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.