/htmlcup

Generate HTML5 with CoffeeScript, instead of a templating engine

Primary LanguageCoffeeScriptGNU General Public License v3.0GPL-3.0

htmlcup

htmlcup is an HTML5 code generator.

Usage is intuitive, if you already use CoffeeScript and know HTML:

htmlcup.html5Page ->
  @head ->
    @title 'My sweet test page'
    @style type: 'text/css',
      """
      body { background:pink }
      """
  @body ->
    @p 'Cupcake ipsum dolor. Sit amet I love sugar plum.'
    # And now a list of yummies
    @ol ->
      @li "Sweet jelly fruitcake"
      @li ->
        @a href: 'http://recipe.com/marzipan', 'Marzipan'

This is similar in purpose to a templating engine, but with the full power of a programming language in your hands, CoffeeScript.

You can try htmlcup here: http://rev22.github.io/htmlcup

Extending the library

htmlcup is easily extensible through a reflective programming technique:

# Convert a list of lines into an html list
htmlcup = htmlcup.extendObject
  numberLines: (s) ->
    @ol ->
      @li x for x in s.split /\n/

This extension could be used like:

htmlcup.html5Page ->
  @head -> @title "A numbered list of sweets"
  @body ->
    @p "These are my favorite sweets: "
    @numberLines """
      chocolate
      liquorice
      fruitcake
      """

Licensing and copyright

Copyright (c) 2013 Michele Bini

The library is available under the terms of version 3 of the General Public License, which you can read in the file COPYING

The contents of the files in the test/ directory are additionally available with a permissive MIT-style license, which you can read in test/MIT-LICENSE