HTTPS SSH

BedSheet Moustache v1.0.14


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

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.

Install

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

C:\> fanr install -r http://pods.fantomfactory.org/fanr/ afBedSheetMoustache

To use in a Fantom project, add a dependency to build.fan:

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

Documentation

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

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