BedSheet Moustache v1.0.14

Written in: Fantom pod: v1.0.14 Licence: MIT


BedSheet Moustache is a simple Fantom library that integrates Mustache templates with the BedSheet web framework.

It provides a cache for your compiled Mustache templates and throws MoustacheErrs to show details of compilation failures.


Install BedSheet Moustache with the Fantom Repository Manager ( fanr ):

C:\> fanr install -r afBedSheetMoustache

To use in a Fantom project, add a dependency to

depends = ["sys 1.0", ..., "afBedSheetMoustache 1.0"]


Full API & fandocs are available on the Fantom Pod Repository.

Quick Start

using afIoc::Inject
using afBedSheet::Text
using afBedSheetMoustache::MoustacheTemplates

const class RouteHandler {

    private const MoustacheTemplates templates

    new make(|This|in) { in(this) }

    Text renderPage() {
        html := templates.renderFromFile(`res/index.moustache`.toFile)
        return Text.fromHtml(html)

Template Errors

Mustache template errors are pretty printed with a snippet of the source code in error:

Moustache Compilation Err:
  file:/C:/Projects/Fantom/BedSheetMoustache/test/app/compilationErr.moustache : Line 11
    - Unbalanced "{" in tag "{ alienHeadSvg }  <span class="brand">{{ title"

     6:         {{{ bedSheetCss }}}
     7:     </style>
     8: </head>
     9: <body>
    10:     <header>
==> 11:         {{{ alienHeadSvg }
    12:         <span class="brand">{{ title }}</span>
    13:     </header>
    15:     <main>
    16:         {{{ content }}}

Sections are also added to the standard BedSheet Err page to show the same.

Moustache Err in BedSheet