thermos

0.1.0 • Public • Published

thermos Build Status

thermos is a templating engine that lets you write HTML templates in CoffeeScript.

It's a branch of CoffeeMugg, a branch of CoffeeKup.

Usage

thermos = require 'thermos'
 
thermos.render ->
  @doctype 5
  @html ->
    @head ->
      @title "hello"
      @js "main"
    @body ->
      @p "Hello world!"

HTML entities

HTML entities are automatically encoded for you. Writing this:

thermos.render ->
  @h1 ->
    @span '<b>—&</b>"\'&mdash;hi'

will produce <h1><span>&gt;b&lt;&mdash;&amp;&gt;/b&lt;&quot;&apos;&mdash;hi</span></h1>

You can use @html_safe to prevent Thermos from auto-encoding entities for you. For example, @span @html_safe '<b>—&</b>"\'' will output <h1><span><b>—&</b>"\'</span></h1>.

Extending thermos

Configuration

thermos = require 'thermos'
 
thermos.configure
  helpers :
    header_link : (text, url) ->
      @h1 ->
        @link_to texturl
 
thermos.render ->
  @doctype 5
  @html ->
    @head ->
      @title "hello"
      @js "main"
    @body ->
      @header_link "Hello world!""/"
      @div "#content"
        @p "foobar"

Passing options

thermos = require 'thermos'
 
options =
  helpers :
    header_link : (text, url) ->
      @h1 ->
        @link_to texturl
 
thermos.render options->
  @doctype 5
  @html ->
    @head ->
      @title "hello"
      @js "main"
    @body ->
      @header_link "Hello world!""/"
      @div "#content"
        @p "foobar"

Default helpers

Currently, thermos includes @js, @css, and @link_to helpers by default.

@link_to texturl
@js url
@css url
 
@link_to "click here""#anchor"
@link_to "click here""http://example.com"
@link_to "click here""/about"
 
@js "jquery"
@js "jquery.min"
@js "jquery.min.js"
@js "/vendor/jquery.min"
@js "/vendor/jquery.min.js"
@js "http://example.com/jquery"
@js "http://example.com/jquery.js"
 
@css "main"
@css "main.css"
# same as @js 

Why thermos?

CoffeeKup breaks closures. Extending CoffeeMugg isn't as nice as I'd like.

Test

thermos uses mocha for running tests.

$ npm install
$ mocha

Installation

$ npm install thermos

Thanks to

jaekwon, for CoffeeMugg. mauricemach, for CoffeeKup.

Don't kill me, both.

Readme

Keywords

none

Package Sidebar

Install

npm i thermos

Weekly Downloads

75

Version

0.1.0

License

none

Last publish

Collaborators

  • davidpeter
  • abi