0.1.0 • Published 12 years ago

thermos v0.1.0

Weekly downloads
55
License
-
Repository
github
Last release
12 years ago

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 text, url

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 text, url

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 text, url
@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.

0.1.0

12 years ago

0.0.15

12 years ago

0.0.14

12 years ago

0.0.13

12 years ago

0.0.12

12 years ago

0.0.11

12 years ago

0.0.10

12 years ago

0.0.9

12 years ago

0.0.8

12 years ago

0.0.7

12 years ago

0.0.6

12 years ago

0.0.5

12 years ago