BedSheet MoustacheUser Guide

Overview

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.

Quick Start

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

const class RouteHandler {

    @Inject
    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>
    14:
    15:     <main>
    16:         {{{ content }}}

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

Moustache Err in BedSheet