{"_id":"coffeecup","_rev":"118-f5063819bf4d85fb85077f4433d8f594","name":"coffeecup","description":"Markup as CoffeeScript.","dist-tags":{"latest":"0.3.21"},"versions":{"0.3.2":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.2","author":{"name":"Maurice Machado","email":"maurice@bitbending.com"},"homepage":"http://coffeekup.org","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.1.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeekup"},"main":"./lib/coffeekup","engines":{"node":">= 0.4.7"},"contributors":[{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.2","_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"2d3018272aec6985e6c04517d08d0f2f49013464","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.2.tgz","integrity":"sha512-8zu2FniQ79/A9prJwbhihCYdjDCUsuQ5PRddDr2B9WAWx+s4UpNgk3212UiMIlNsTTbSsxBb+HllEGNxyh3sHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFe2NhDpt89OkhIb0n0x2jm2cqiI+w+gWidKNtD9fv3JAiEA5dv4ylTqDFasVaHlt77mQCvMu7VHgWTQriFTgPkarQo="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.3":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.3","author":{"name":"Maurice Machado","email":"maurice@bitbending.com"},"homepage":"http://coffeekup.org","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.1.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeekup"},"main":"./lib/coffeekup","engines":{"node":">= 0.4.7"},"contributors":[{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.3","_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"c1ff4a6735c6002061b3bb90bdb9fa62353123d2","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.3.tgz","integrity":"sha512-nfAfavxrroT4cLZKCh0H6IOpEdlb2aB8b7384RIgP+i8heOZqpSLDJSEvXZWFK0/+/I7fPXZgfi4T3aIqJ6uCg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH7OunIB+pMRfVVu5sdVq9963NqHUpsqHdFDJ5XwWvRHAiEAymxyexhMQZ3Vkn4j58NL/FIgg8Eo7AkEVblFXlh9hlE="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.4":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.4","author":{"name":"Maurice Machado","email":"maurice@bitbending.com"},"homepage":"http://coffeekup.org","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.1.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.4.7"},"contributors":[{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.4","_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"528c111feb97ca2aa6838b863701f8035793a604","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.4.tgz","integrity":"sha512-0h9cmUtqsVFqlpnxXjzzHIYghrVK63rQIK4MTE1eLeU2y75EQOt2Z6noykzxhoH3xPa+ydxVfggRUQ8Hal1uRw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCcO9vas14tjWx5qYh9BHbU85q33kCXDAOo5wK2gkeklwIgErN8+fr44F/zzKIHp6v8/I57LPZVSK1bxwsWiTsaABc="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.5":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.5","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://coffeecup-docs.nodejitsu.com/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.2.0","optparse":">= 1.0.3"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.4.7"},"contributors":[{"name":"Kris Windham"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.5","_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"98094a499b95c9ce24ea21930628e27beae04486","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.5.tgz","integrity":"sha512-sx3fGR+mf282HjxtSmM4lKkOpOUQJL3T/9P5NkWcIcMCvvaaYwOyWRwWCjt3LRuPGylu73c4woBo/Bz7RjXaEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDjXfnR6vZmGW02ffuDpyYmYi7maevgN/Cbzr/5mOZNiQIgFQbW6CsN4VqcZ8Pj7Mv3hp/ZzkYnWgtMp19YdGqke4E="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.5-1":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.5-1","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://coffeecup-docs.nodejitsu.com/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.2.0","optparse":">= 1.0.3"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.4.7"},"contributors":[{"name":"Kris Windham"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.5-1","_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"04729ed7ebd3fdf25e0cb812f1c3668f447633fd","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.5-1.tgz","integrity":"sha512-Gh4WNq8WX3v6hCwvbxi1Ie7JA32kbqX45ibVedsXHTv+TRY4qSc/kqx1mWb1MscjvFbPlJQCVhDByljdQQpCHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFI5E8MUW3WzXKG2V1zFLLzKZUEp7q8jFEmzyvqOekvQAiEA64ijda0ooqL0ko6JzFCVOqw8fpPtXQLUuGPEXV5sSo0="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.5-2":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.5-2","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://coffeecup-docs.nodejitsu.com/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.2.0","optparse":">= 1.0.3"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.4.7"},"contributors":[{"name":"Kris Windham"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.5-2","_engineSupported":true,"_npmVersion":"1.1.1","_nodeVersion":"v0.6.11","_defaultsLoaded":true,"dist":{"shasum":"15d576a5d08b5c33b9bcd6c3b1b35703c45bf6b8","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.5-2.tgz","integrity":"sha512-VhPbzZg+Wgpe0z98IwFPXDAzJe42DedhtM2iD1hhQukA/VQYQF4Ci28tmHfGI6vsBrLkZjav5Y0ALj7FcM8ZHA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID4fjdwpEMDPKwk+YrpblrPJldOFVvTca7Ur6XonFvUJAiBPqwYE6ShmE4rCudOI1uZkj3/A8YAs3r74JHcOQdg8BQ=="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.5-3":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.5-3","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://coffeecup-docs.nodejitsu.com/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.2.0","optparse":">= 1.0.3","uglify-js":"*"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.4.7"},"contributors":[{"name":"Kris Windham"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.5-3","_engineSupported":true,"_npmVersion":"1.1.0-beta-10","_nodeVersion":"v0.6.7","_defaultsLoaded":true,"dist":{"shasum":"40af8cc634943d87caa077294f19c0c11bd0d4e0","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.5-3.tgz","integrity":"sha512-uTaFIfYdrm3XcPwgPs1Zl2jHL10IsRs8RgtO0ArQbWXhUpFhJSZ8Mdq8JNCqv7CfIYRoXn2/oEBHvWTaPNflxA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCuJYluUO5vIYOvn/UQmZXzQHR4a5U/n1BdURJQouISEAIgW1tK+AujkKv17Cc/MX/uCdkXLzVhWTm6PzyBs7VUatU="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.6":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.6","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.2.0","optparse":">= 1.0.3","uglify-js":"*"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.6.7"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.6","_engineSupported":true,"_npmVersion":"1.1.13","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"281e86bcbe1e5cf1f9d7114816a4eb7cf686b11e","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.6.tgz","integrity":"sha512-PXhEGWJAdAbHRI6ppCCt0CsinNKjOfgiEJmlOFiQpENvR4a5GLelNL+mQtbS8Ht0l3XSipws8d89JTbxCLNUPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFrVBX8LQ8xZc8dheHbpHdrm6PlNAh/UFWMOYOXwbYSOAiEAzjIwkHlE50HG6HEKp758F0j35BH5U4oq9hYLsQO2HWc="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.7":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.7","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.2.0","optparse":">= 1.0.3","uglify-js":"*"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.6.7"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.7","_engineSupported":true,"_npmVersion":"1.1.13","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"e02650a33a0c851262311bc8fe81ace1b1b2dbd9","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.7.tgz","integrity":"sha512-Q4aR9Oi9cpIJYin68mkqo9KcXn2zc/T/2SiMZ40DTflSU6DeaGApWfGUxa535LJu+mMY/uo12EoapWTN2h8RXg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIA72lmVoGLqJl+tF4FQ9UXAHMcPEkQytTSXkwgMnhqOaAiArhhAExdpcDjLmz6YoIHqJ069+vHa7qnE0bwdCnPa3Yg=="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.8":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.8","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">= 1.2.0","optparse":">= 1.0.3","uglify-js":"*"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.6.7"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.8","_engineSupported":true,"_npmVersion":"1.1.13","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"44ede58a9ba5ccad84006ea675269025995a7410","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.8.tgz","integrity":"sha512-Gz2aBDZzVOo84J9tkqjFYLV/udYLzyklsLfspBVPe2hRdxkvGZvv2eVmJEjGEKKa5xKhHRTke6gEOocgz+21Jg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDG5BpKw/hGiU8Na5HX2ikrMLR+3kxNo+7rCiI3s3tGwwIhAIuLUOVLyGea3Cef2PnJXfi180JlORW66cY3YeYSbfi6"}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.9":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.9","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.2.0","optparse":">= 1.0.3","uglify-js":"*","stylus":">=0.25.0"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.6.7"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.9","_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"836bf495a1935ee2950c2886adff1213b2db2ba3","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.9.tgz","integrity":"sha512-dZz990e19/9se+bEf2qPj2T9Q0zlXZuwMco/eILh+kzLEyFFJBVm0qckgvJr0fIeT+/E7Kh1ET4TZhHKVJLhKg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIADuDszLuMPrMMCcl0lz1U7GlUV6T5Tb6xqRbXdIyabGAiEA7hwmvwMcuAHqIQaREX332JPeHUm+nb2RLxkiqLNkTG0="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.10":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.10","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup/","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.2.0","optparse":">= 1.0.3","uglify-js":"*","stylus":">=0.25.0"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":">= 0.6.7"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.10","_engineSupported":true,"_npmVersion":"1.1.16","_nodeVersion":"v0.6.14","_defaultsLoaded":true,"dist":{"shasum":"01e19b395d425d5187ae7dc9937b27043131cf3e","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.10.tgz","integrity":"sha512-cfhYAE+a8ZJEn57jNDj1p3QokFPVDJi5vm05aIl+lDQYWVWs3kBaXhM9Yv+p6Lx4DRzaCkhpby+xulz5Vu8GBA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD/lgbQXi0XXXgavg1yBW4k9l1exm2At2RTtwhCDbHrFwIgWZibQiGnOc4OltmqRRsnE+ermmYvwi62sPN8ldD0F/g="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.11":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.11","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.3.1","optparse":">= 1.0.3","uglify-js":"1.2.6","stylus":">=0.25.0"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.6.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.11","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"b7f49dbcbc0e1b0c0dcf981503110e2d3bf9c487","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.11.tgz","integrity":"sha512-Yokvhz+dAGhVRzqwtS3JJtsQw2+f4aeo1CBiRORatF9JCtem9kHwf0Q+3Rv0aSB5XVfuskBmKzZHrdpBZHgvjw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAZeqNO0sLXuBErc06NeU/xBP8DP/OZmvtvaNardN06/AiABy4yHgE8glCe0L49v7xVrUosoT32oLe/OHzkXbafS7A=="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.12":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.12","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.3.x","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"~0.25.0"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.12","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"5411e89fa450ae16b2939a608b2ef8cdca489200","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.12.tgz","integrity":"sha512-a25zWGYsEb+suV8ClSB7pAxTiFUvgFVxhaQCHBmEXzvknSj4mGLGTknoEm7RSxSSmBlcwRSwQAnXuqQY0twuNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC/y2aquKcLAqt0D2GIJmKcXuaE2n0kXezSY18yueJiEgIgUd5NPT9x7PZYr3oFvclWok/Q1ivxo9Z5Yww3P4vdjUM="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.13":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.13","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.3.x","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"~0.25.0"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.13","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"f143cc3de5ae5d14a10813f42e9408138d82fc24","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.13.tgz","integrity":"sha512-7M48t4HmLyuuk6WVRYOgYt8Ry5R+8W11gQbe7/5RDPgGCpPLIGI9u9N4zwXvQdNoyXMXfiCJfk4PLDu20zcTew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC2rpPuFHPX3GNHQLtKSBMRZPyXzjtHHgtU96qPYcKodAiEA+suNQMDtbMu4clHl4u8RJoGeiaxcEZK5vYiVjGCKqX4="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.14":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.14","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.3.x","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"~0.25.0"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.14","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"d4c9cd9cad935f458a19c63af355d1781272566d","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.14.tgz","integrity":"sha512-rkCqCPesYZ8N6aqpbzOdqqlgrnMIXq5Enum4Izebhr4hKi5URVOTpK54RrP2ACJb112u/oomCjwp71IFbNC+jA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBwzOPZTxQWtW2HjLvuquZjS9NpbgrZh/TAOpOrxjJfiAiEAkeWettCTPWu9m9yxIKRglKqpGVviIoYVuL6NDoOJPE8="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.15":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.15","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.3.x","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"~0.25.0"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.0.0","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.15","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"c8540ef48dac4fc0bd16b200567f673a8f0a5aeb","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.15.tgz","integrity":"sha512-YigcRS1tOiLnL/+eHXXpDh2CaTF3I0a+dn5p+DEeFJfGXlLc4UI4dghF/VIv+Rd6fIVgSDxyswPum4mNl9FbjQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEv9ZONMUey3/Mb4KOHaWemq0yGt1CZuh60VMs/EC3IyAiEAupjhLeM1DHvdOq5R1x3tmQBMbLtrUfK/enbQShBntMg="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.16":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.16","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.3.x","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"0.27.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.2.2","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x || 0.8.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"},{"name":"Stéphane Alnet","email":"stephane@shimaore.net"}],"optionalDependencies":{},"readme":"# CoffeeCup <☕/>\n## Markup as CoffeeScript\n\n[![Build Status](https://secure.travis-ci.org/gradus/coffeecup.png?branch=master)](http://travis-ci.org/gradus/coffeecup)\n\nThis is a clone of @mauricemach [CoffeeCup](https://github.com/mauricemach/coffeekup).\n\nI am renaming and trying to keep this project alive.\n\n[Fork CoffeeCup on Github](https://github.com/gradus/coffeecup).\n\nCoffeeCup is a templating engine for [node.js](http://nodejs.org) and browsers that lets you to write your HTML templates in 100% pure [CoffeeScript](http://coffeescript.org).\n\nIt was created in celebration of [whyday](http://whyday.org/), as an application of the concept used in [Markaby](https://github.com/markaby/markaby) (\"Markup as Ruby\", by Tim Fletcher and why the lucky stiff) to CoffeeScript.\n\nHere's what a template written for CoffeeCup looks like:\n\n    doctype 5\n    html ->\n      head ->\n        meta charset: 'utf-8'\n        title \"#{@title or 'Untitled'} | A completely plausible website\"\n        meta(name: 'description', content: @description) if @description?\n        \n        link rel: 'stylesheet', href: '/css/app.css'\n        \n        style '''\n          body {font-family: sans-serif}\n          header, nav, section, footer {display: block}\n        '''\n\n        comment 'Stylus is supported as well'\n\n        stylus '''\n          body\n            margin: 0\n        '''\n                 \n        script src: '/js/jquery.js'\n        \n        coffeescript ->\n          $(document).ready ->\n            alert 'Alerts suck!'\n      body ->\n        header ->\n          h1 @title or 'Untitled'\n          \n          nav ->\n            ul ->\n              (li -> a href: '/', -> 'Home') unless @path is '/'\n              li -> a href: '/chunky', -> 'Bacon!'\n              switch @user.role\n                when 'owner', 'admin'\n                  li -> a href: '/admin', -> 'Secret Stuff'\n                when 'vip'\n                  li -> a href: '/vip', -> 'Exclusive Stuff'\n                else\n                  li -> a href: '/commoners', -> 'Just Stuff'\n\n        div '#myid.myclass.anotherclass', style: 'position: fixed', ->\n          p 'Divitis kills! Inline styling too.'\n\n        section ->\n          # A helper function you built and included.\n          breadcrumb separator: '>', clickable: yes\n          \n          h2 \"Let's count to 10:\"\n          p i for i in [1..10]\n          \n          # Another hypothetical helper.\n          form_to @post, ->\n            textbox '#title', label: 'Title:'\n            textbox '#author', label: 'Author:'\n            submit 'Save'\n\n        footer ->\n          # CoffeeScript comments. Not visible in the output document.\n          comment 'HTML comments.'\n          p 'Bye!'\n\nInteractive demo at [coffeekup.org](http://coffeekup.org).\n\n## _why?\n\n- **One language to rule them all**. JavaScript is everywhere, thus so is CoffeeScript. Servers, browsers, even databases. If extending this to rendering logic and UI structure (server and client side) is desirable to you, CoffeeCup is your friend.\n\n- **More specifically, one _outstanding_ language**. CoffeeScript is one hell of a clean, expressive, flexible and powerful language. It's hard to find such combination, especially if you need it to run in the browser too.\n\n- **Not yet another specialized language to learn**. Transferable knowledge FTW.\n\n- **Embed your templates in CoffeeScript nicely**. Templates are just functions, so they don't lose syntax highlighting and syntax checking when embedded in CoffeeScript apps.\n\n- **Embed CoffeeScript in your templates nicely**. In the same manner, you can write the contents of `<script>` blocks in CoffeeScript, and keep the highlighting. Perhaps more significantly, the CoffeeScript compiler doesn't have to be called just to convert these blocks to JS, as in other templating engines.\n\n- **Extensive editor support**. You benefit from the already existing list of excellent CoffeeScript [text editor plugins](https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins).\n\n- **Client-server consistency**. The same template language _and_ implementation in node.js or the browser.\n\n- **Easily extendable into a higher level \"DSL\"**. Since all elements are just functions, it's very easy to define your own custom \"tags\", which will work and look the same as \"native\" ones.\n\n- **HTML 5 ready**. Boring legacy doctypes and elements also available.\n\n- **Optional auto-escaping**. You can also use the `h` helper on a case-by-case basis.\n\n- **Optional formatting**, with line breaks and indentation.\n\n- **Pick your poison**. Works with both CoffeeScript and JavaScript apps.\n\n## Why not?\n\nCoffeeCup may not be your best choice in those cases:\n\n- You're after the cleanest syntax possible, above all. In this regard a specialized language such as [Jade](http://jade-lang.com) just can't be beaten.\n\n- You use divs and/or classes for everything. While in CoffeeCup you can do `div '#id.class.class'`, specialized languages often have an even shorter syntax for that.\n\n- You want CoffeeScript for rendering logic, but you'd rather stick with HTML for markup. Then you're looking for [Eco](http://github.com/sstephenson/eco).\n\n- For your specific project/team/preferences, you think a limited and/or separate language for templating is actually beneficial.\n\n## Installing\n\nJust grab [node.js](http://nodejs.org/#download) and [npm](http://github.com/isaacs/npm) and you're set:\n\n    npm install coffeecup\n\nTo get the `coffeecup` command, install it globally:\n\n    npm install coffeecup -g\n    \nOr to use the latest version:\n\n    git clone git@github.com:gradus/coffeecup.git && cd coffeecup\n    cake build\n    npm link\n    cd ~/myproject\n    npm link coffeecup\n\n## Using\n\n    cc = require 'coffeecup'\n\n    cc.render -> h1 \"You can feed me templates as functions.\"\n    cc.render \"h1 'Or strings. I am not too picky.'\"\n\nDefining variables:\n\n    template = ->\n      h1 @title\n      form method: 'post', action: 'login', ->\n        textbox id: 'username'\n        textbox id: 'password'\n        button @title\n\n    helpers =\n      textbox: (attrs) ->\n        attrs.type = 'text'\n        attrs.name = attrs.id\n        input attrs\n\n    cc.render(template, title: 'Log In', hardcode: helpers)\n\nPrecompiling to functions:\n\n    template = cc.compile(template, locals: yes, hardcode: {zig: 'zag'})\n    \n    template(foo: 'bar', locals: {ping: 'pong'})\n\nWith [express](http://expressjs.com):\n\n    app.set 'view engine', 'coffee'\n    app.register '.coffee', require('coffeecup').adapters.express\n\n    app.get '/', (req, res) ->\n      # Will render views/index.coffee:\n      res.render 'index', foo: 'bar'\n\nWith [zappa](http://github.com/mauricemach/zappa):\n\n    get '/': ->\n      @franks = ['miller', 'oz', 'sinatra', 'zappa']\n      render 'index'\n\n    view index: ->\n      for name in @franks\n        a href: \"http://en.wikipedia.org/wiki/Frank_#{name}\", -> name\n\nWith [meryl](https://github.com/kadirpekel/meryl/tree/master/examples/coffeekup-template):\n\n    coffeekup = require 'coffeecup'\n    \n    meryl.get '/', (req, resp) ->\n      people = ['bob', 'alice', 'meryl']\n      resp.render 'layout', content: 'index', context: {people: people}\n\n    meryl.run\n      templateExt: '.coffee'\n      templateFunc: coffeecup.adapters.meryl\n\nOn the browser:\n\n    <script src=\"template.js\"></script>\n    <script>\n      $('body').append(templates.template({foo: 'bar'}));\n    </script>\n\nThis is one of many browser deployment possibilities, pre-compiling your template on the server to a standalone function. To see all serving suggestions, check out [regular](http://github.com/gradus/coffeecup/blob/master/examples/browser/regular/index.html), [decaf](http://github.com/gradus/coffeecup/blob/master/examples/browser/decaf/index.html) and [crème](http://github.com/gradus/coffeecup/blob/master/examples/browser/creme/index.html).\n\nCommand-line:\n\n    $ coffeecup -h\n\n    Usage:\n      coffeecup [options] path/to/template.coffee\n\n          --js           compile template to js function\n      -n, --namespace    global object holding the templates (default: \"templates\")\n      -w, --watch        watch templates for changes, and recompile\n      -o, --output       set the directory for compiled html\n      -p, --print        print the compiled html to stdout\n      -f, --format       apply line breaks and indentation to html output\n      -u, --utils        add helper locals (currently only \"render\")\n      -v, --version      display CoffeeCup version\n      -h, --help         display this help message\n\nSee [/examples](http://github.com/gradus/coffeekup/tree/master/examples) for complete versions (you have to run `cake build` first).\n\nPlease note that even though all examples are given in CoffeeScript, you can also use their plain JavaScript counterparts just fine.\n\n## Resources\n\n- [API reference](https://github.com/gradus/coffeecup/blob/master/docs/reference.md)\n\n- [Issues](https://github.com/gradus/coffeecup/issues)\n\n- [Google Group](https://groups.google.com/forum/#!forum/coffeecup_)\n\n- [A Beginners's Introduction to CoffeeCup](https://github.com/mark-hahn/coffeekup-intro)\n\n## Tools\n\n- [html2coffeekup](https://github.com/brandonbloom/html2coffeekup) - Converts HTML to CoffeeCup templates.\n\n- [htmlkup](https://github.com/colinta/htmlkup) - Another HTML converter, stdin/stdout based.\n\n- [html2coffeecup-app](https://html2coffeecup.nodejitsu.com) - html to CoffeeCup web app.\n\n- [creamer](https://github.com/twilson63/creamer) - A flatiron plugin for coffeecup\n\n- [coffeecup-helpers](https://github.com/twilson63/coffeecup-helpers) - CoffeeCup Html Helpers\n\n- [ice](https://github.com/ludicast/ice) - CoffeeCup and Eco in Rails ([screencast](http://vimeo.com/25907220)).\n\n- [coffee-world](https://github.com/khoomeister/coffee-world) - Tool to watch and compile HTML with CoffeeCup, CSS with coffee-css and JS with CoffeeScript.\n\n- [cupcake](https://github.com/twilson63/cupcake) - Express app generator with CoffeeCup support.\n\n## Related projects\n\n- [ck](https://github.com/aeosynth/ck) - \"a smaller, faster coffeekup\": Alternative, barebones implementation.\n\n- [ckup](https://github.com/satyr/ckup) - \"Markup as Coco\": Similar engine but for [Coco](https://github.com/satyr/coco) (\"Unfancy CoffeeScript\").\n\n- [Eco](https://github.com/sstephenson/eco) - \"Embedded CoffeeScript templates\": \"EJS/ERB\" for CoffeeScript.\n\n- [timbits](https://github.com/Postmedia/timbits) - \"Widget framework based on Express and CoffeeScript\".\n\n- [coffee-css](https://github.com/khoomeister/coffee-css) - \"More CSS for CoffeeScript\".\n\n- [ccss](https://github.com/aeosynth/ccss) - \"CoffeeScript CSS\".\n\n- [black-coffee](https://github.com/gradus/black-coffee) - Flatiron and Coffee-Script Template.\n\n- [iron-coffee](https://github.com/twilson63/iron-coffee) - Flatiron and Coffee-Script Template.\n\n\n## Compatibility\n\nLatest version tested with node 0.6.11 and CoffeeScript 1.2.0.\n\n## Special thanks\n\n  - [Jeremy Ashkenas](https://github.com/jashkenas), for the amazing CoffeeScript language.\n  - [why the lucky stiff](Why_the_lucky_stiff), for the inspiration.\n","_id":"coffeecup@0.3.16","dist":{"shasum":"892879087ba6407e924add942d5820c4b726c2a7","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.16.tgz","integrity":"sha512-rVyHif+sCQcTS+VJpVhpAVvAfZ1/3D8hi4CynpzOoCrpv8GD2XeDKYVFE+cdeh137vf37ZDh4b8f/lcWNJ6sNQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB20s6i0sZtoXz1K1kFWQ9pQAvCSu5X+9bJnnbWRPjWuAiAmTy6m9r6rRQkREMJOB9s5KwyK/YSqFCL9RsyOfitxXA=="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.17":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.17","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":"1.3.x","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"0.27.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.2.2","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x || 0.8.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"},{"name":"Stéphane Alnet","email":"stephane@shimaore.net"}],"optionalDependencies":{},"_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"_id":"coffeecup@0.3.17","_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"dist":{"shasum":"c0c6a78bdd42aacb41708b6bc1cf1b4e2f52eff6","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.17.tgz","integrity":"sha512-B2xRGc910CJoxsP2q704aDTFylAEtTeDqaARRSCiPzynOPKZImRQucd+9nbGRYU5MDRQnwTatl4keZ0WjrnL2g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDinWJuIKy4Oql2gwQfBzQRj6O47EUj9PeECWS2FE7XcAiEAjH0reyHl/zEB/2c8rWPZhBbYTZGURoQjsE4F48O6PzA="}]},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.18":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.18","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">=1.3 <2","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"0.27.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.2.2","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x || 0.8.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"},{"name":"Stéphane Alnet","email":"stephane@shimaore.net"}],"optionalDependencies":{},"readme":"# CoffeeCup <☕/>\n## Markup as CoffeeScript\n\n[![Build Status](https://secure.travis-ci.org/gradus/coffeecup.png?branch=master)](http://travis-ci.org/gradus/coffeecup)\n\nThis is a clone of @mauricemach [CoffeeCup](https://github.com/mauricemach/coffeekup).\n\nI am renaming and trying to keep this project alive.\n\n[Fork CoffeeCup on Github](https://github.com/gradus/coffeecup).\n\nCoffeeCup is a templating engine for [node.js](http://nodejs.org) and browsers that lets you to write your HTML templates in 100% pure [CoffeeScript](http://coffeescript.org).\n\nIt was created in celebration of [whyday](http://whyday.org/), as an application of the concept used in [Markaby](https://github.com/markaby/markaby) (\"Markup as Ruby\", by Tim Fletcher and why the lucky stiff) to CoffeeScript.\n\nHere's what a template written for CoffeeCup looks like:\n\n    doctype 5\n    html ->\n      head ->\n        meta charset: 'utf-8'\n        title \"#{@title or 'Untitled'} | A completely plausible website\"\n        meta(name: 'description', content: @description) if @description?\n        \n        link rel: 'stylesheet', href: '/css/app.css'\n        \n        style '''\n          body {font-family: sans-serif}\n          header, nav, section, footer {display: block}\n        '''\n\n        comment 'Stylus is supported as well'\n\n        stylus '''\n          body\n            margin: 0\n        '''\n                 \n        script src: '/js/jquery.js'\n        \n        coffeescript ->\n          $(document).ready ->\n            alert 'Alerts suck!'\n      body ->\n        header ->\n          h1 @title or 'Untitled'\n          \n          nav ->\n            ul ->\n              (li -> a href: '/', -> 'Home') unless @path is '/'\n              li -> a href: '/chunky', -> 'Bacon!'\n              switch @user.role\n                when 'owner', 'admin'\n                  li -> a href: '/admin', -> 'Secret Stuff'\n                when 'vip'\n                  li -> a href: '/vip', -> 'Exclusive Stuff'\n                else\n                  li -> a href: '/commoners', -> 'Just Stuff'\n\n        div '#myid.myclass.anotherclass', style: 'position: fixed', ->\n          p 'Divitis kills! Inline styling too.'\n\n        section ->\n          # A helper function you built and included.\n          breadcrumb separator: '>', clickable: yes\n          \n          h2 \"Let's count to 10:\"\n          p i for i in [1..10]\n          \n          # Another hypothetical helper.\n          form_to @post, ->\n            textbox '#title', label: 'Title:'\n            textbox '#author', label: 'Author:'\n            submit 'Save'\n\n        footer ->\n          # CoffeeScript comments. Not visible in the output document.\n          comment 'HTML comments.'\n          p 'Bye!'\n\nInteractive demo at [coffeekup.org](http://coffeekup.org).\n\n## _why?\n\n- **One language to rule them all**. JavaScript is everywhere, thus so is CoffeeScript. Servers, browsers, even databases. If extending this to rendering logic and UI structure (server and client side) is desirable to you, CoffeeCup is your friend.\n\n- **More specifically, one _outstanding_ language**. CoffeeScript is one hell of a clean, expressive, flexible and powerful language. It's hard to find such combination, especially if you need it to run in the browser too.\n\n- **Not yet another specialized language to learn**. Transferable knowledge FTW.\n\n- **Embed your templates in CoffeeScript nicely**. Templates are just functions, so they don't lose syntax highlighting and syntax checking when embedded in CoffeeScript apps.\n\n- **Embed CoffeeScript in your templates nicely**. In the same manner, you can write the contents of `<script>` blocks in CoffeeScript, and keep the highlighting. Perhaps more significantly, the CoffeeScript compiler doesn't have to be called just to convert these blocks to JS, as in other templating engines.\n\n- **Extensive editor support**. You benefit from the already existing list of excellent CoffeeScript [text editor plugins](https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins).\n\n- **Client-server consistency**. The same template language _and_ implementation in node.js or the browser.\n\n- **Easily extendable into a higher level \"DSL\"**. Since all elements are just functions, it's very easy to define your own custom \"tags\", which will work and look the same as \"native\" ones.\n\n- **HTML 5 ready**. Boring legacy doctypes and elements also available.\n\n- **Optional auto-escaping**. You can also use the `h` helper on a case-by-case basis.\n\n- **Optional formatting**, with line breaks and indentation.\n\n- **Pick your poison**. Works with both CoffeeScript and JavaScript apps.\n\n## Why not?\n\nCoffeeCup may not be your best choice in those cases:\n\n- You're after the cleanest syntax possible, above all. In this regard a specialized language such as [Jade](http://jade-lang.com) just can't be beaten.\n\n- You use divs and/or classes for everything. While in CoffeeCup you can do `div '#id.class.class'`, specialized languages often have an even shorter syntax for that.\n\n- You want CoffeeScript for rendering logic, but you'd rather stick with HTML for markup. Then you're looking for [Eco](http://github.com/sstephenson/eco).\n\n- For your specific project/team/preferences, you think a limited and/or separate language for templating is actually beneficial.\n\n## Installing\n\nJust grab [node.js](http://nodejs.org/#download) and [npm](http://github.com/isaacs/npm) and you're set:\n\n    npm install coffeecup\n\nTo get the `coffeecup` command, install it globally:\n\n    npm install coffeecup -g\n    \nOr to use the latest version:\n\n    git clone git@github.com:gradus/coffeecup.git && cd coffeecup\n    cake build\n    npm link\n    cd ~/myproject\n    npm link coffeecup\n\n## Using\n\n    cc = require 'coffeecup'\n\n    cc.render -> h1 \"You can feed me templates as functions.\"\n    cc.render \"h1 'Or strings. I am not too picky.'\"\n\nDefining variables:\n\n    template = ->\n      h1 @title\n      form method: 'post', action: 'login', ->\n        textbox id: 'username'\n        textbox id: 'password'\n        button @title\n\n    helpers =\n      textbox: (attrs) ->\n        attrs.type = 'text'\n        attrs.name = attrs.id\n        input attrs\n\n    cc.render(template, title: 'Log In', hardcode: helpers)\n\nPrecompiling to functions:\n\n    template = cc.compile(template, locals: yes, hardcode: {zig: 'zag'})\n    \n    template(foo: 'bar', locals: {ping: 'pong'})\n\nWith [express](http://expressjs.com):\n\n    app.engine 'coffee', require('coffeecup').__express\n\n    app.get '/', (req, res) ->\n      # Will render views/index.coffee:\n      res.render 'index', foo: 'bar'\n\nWith [zappa](http://github.com/mauricemach/zappa):\n\n    get '/': ->\n      @franks = ['miller', 'oz', 'sinatra', 'zappa']\n      render 'index'\n\n    view index: ->\n      for name in @franks\n        a href: \"http://en.wikipedia.org/wiki/Frank_#{name}\", -> name\n\nWith [meryl](https://github.com/kadirpekel/meryl/tree/master/examples/coffeekup-template):\n\n    coffeekup = require 'coffeecup'\n    \n    meryl.get '/', (req, resp) ->\n      people = ['bob', 'alice', 'meryl']\n      resp.render 'layout', content: 'index', context: {people: people}\n\n    meryl.run\n      templateExt: '.coffee'\n      templateFunc: coffeecup.adapters.meryl\n\nOn the browser:\n\n    <script src=\"template.js\"></script>\n    <script>\n      $('body').append(templates.template({foo: 'bar'}));\n    </script>\n\nThis is one of many browser deployment possibilities, pre-compiling your template on the server to a standalone function. To see all serving suggestions, check out [regular](http://github.com/gradus/coffeecup/blob/master/examples/browser/regular/index.html), [decaf](http://github.com/gradus/coffeecup/blob/master/examples/browser/decaf/index.html) and [crème](http://github.com/gradus/coffeecup/blob/master/examples/browser/creme/index.html).\n\nCommand-line:\n\n    $ coffeecup -h\n\n    Usage:\n      coffeecup [options] path/to/template.coffee\n\n          --js           compile template to js function\n      -n, --namespace    global object holding the templates (default: \"templates\")\n      -w, --watch        watch templates for changes, and recompile\n      -o, --output       set the directory for compiled html\n      -p, --print        print the compiled html to stdout\n      -f, --format       apply line breaks and indentation to html output\n      -u, --utils        add helper locals (currently only \"render\")\n      -v, --version      display CoffeeCup version\n      -h, --help         display this help message\n\nSee [/examples](http://github.com/gradus/coffeekup/tree/master/examples) for complete versions (you have to run `cake build` first).\n\nPlease note that even though all examples are given in CoffeeScript, you can also use their plain JavaScript counterparts just fine.\n\n## Resources\n\n- [API reference](https://github.com/gradus/coffeecup/blob/master/docs/reference.md)\n\n- [Issues](https://github.com/gradus/coffeecup/issues)\n\n- [Google Group](https://groups.google.com/forum/#!forum/coffeecup_)\n\n- [A Beginners's Introduction to CoffeeCup](https://github.com/mark-hahn/coffeekup-intro)\n\n## Tools\n\n- [html2coffeekup](https://github.com/brandonbloom/html2coffeekup) - Converts HTML to CoffeeCup templates.\n\n- [htmlkup](https://github.com/colinta/htmlkup) - Another HTML converter, stdin/stdout based.\n\n- [html2coffeecup-app](https://html2coffeecup.nodejitsu.com) - html to CoffeeCup web app.\n\n- [creamer](https://github.com/twilson63/creamer) - A flatiron plugin for coffeecup\n\n- [coffeecup-helpers](https://github.com/twilson63/coffeecup-helpers) - CoffeeCup Html Helpers\n\n- [ice](https://github.com/ludicast/ice) - CoffeeCup and Eco in Rails ([screencast](http://vimeo.com/25907220)).\n\n- [coffee-world](https://github.com/khoomeister/coffee-world) - Tool to watch and compile HTML with CoffeeCup, CSS with coffee-css and JS with CoffeeScript.\n\n- [cupcake](https://github.com/twilson63/cupcake) - Express app generator with CoffeeCup support.\n\n## Related projects\n\n- [ck](https://github.com/aeosynth/ck) - \"a smaller, faster coffeekup\": Alternative, barebones implementation.\n\n- [ckup](https://github.com/satyr/ckup) - \"Markup as Coco\": Similar engine but for [Coco](https://github.com/satyr/coco) (\"Unfancy CoffeeScript\").\n\n- [Eco](https://github.com/sstephenson/eco) - \"Embedded CoffeeScript templates\": \"EJS/ERB\" for CoffeeScript.\n\n- [timbits](https://github.com/Postmedia/timbits) - \"Widget framework based on Express and CoffeeScript\".\n\n- [coffee-css](https://github.com/khoomeister/coffee-css) - \"More CSS for CoffeeScript\".\n\n- [ccss](https://github.com/aeosynth/ccss) - \"CoffeeScript CSS\".\n\n- [black-coffee](https://github.com/gradus/black-coffee) - Flatiron and Coffee-Script Template.\n\n- [iron-coffee](https://github.com/twilson63/iron-coffee) - Flatiron and Coffee-Script Template.\n\n\n## Compatibility\n\nLatest version tested with node 0.6.11 and CoffeeScript 1.2.0.\n\n## Special thanks\n\n  - [Jeremy Ashkenas](https://github.com/jashkenas), for the amazing CoffeeScript language.\n  - [why the lucky stiff](Why_the_lucky_stiff), for the inspiration.\n","_id":"coffeecup@0.3.18","dist":{"shasum":"4f308007c34b38bbf51e2f0ed37a1b380ccd4466","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.18.tgz","integrity":"sha512-BIWvYm065YlTPCXS04TQKZkxwjfBG2gvlAtgwAWaR5P1bg7p+uDs0kwUvN8AaZ2vJfvk8OjkkiU0QJt7COKcGw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCaalYs/4hdg7Kuj2YNFXATwwoBUNcmoFVO+2mV7H/EaQIgMVKXo8/Rhb86p/Ll0t+CeqaIkGk0KV+OWdLOCxxT/Dk="}]},"_npmVersion":"1.1.49","_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.19":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.19","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">=1.3 <2","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"0.27.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.2.2","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x || 0.8.x || 0.10.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"},{"name":"Stéphane Alnet","email":"stephane@shimaore.net"}],"optionalDependencies":{},"readme":"# CoffeeCup <☕/>\n## Markup as CoffeeScript\n\n[![Build Status](https://secure.travis-ci.org/gradus/coffeecup.png?branch=master)](http://travis-ci.org/gradus/coffeecup)\n\nThis is a clone of @mauricemach [CoffeeCup](https://github.com/mauricemach/coffeekup).\n\nI am renaming and trying to keep this project alive.\n\n[Fork CoffeeCup on Github](https://github.com/gradus/coffeecup).\n\nCoffeeCup is a templating engine for [node.js](http://nodejs.org) and browsers that lets you to write your HTML templates in 100% pure [CoffeeScript](http://coffeescript.org).\n\nIt was created in celebration of [whyday](http://whyday.org/), as an application of the concept used in [Markaby](https://github.com/markaby/markaby) (\"Markup as Ruby\", by Tim Fletcher and why the lucky stiff) to CoffeeScript.\n\nHere's what a template written for CoffeeCup looks like:\n\n    doctype 5\n    html ->\n      head ->\n        meta charset: 'utf-8'\n        title \"#{@title or 'Untitled'} | A completely plausible website\"\n        meta(name: 'description', content: @description) if @description?\n        \n        link rel: 'stylesheet', href: '/css/app.css'\n        \n        style '''\n          body {font-family: sans-serif}\n          header, nav, section, footer {display: block}\n        '''\n\n        comment 'Stylus is supported as well'\n\n        stylus '''\n          body\n            margin: 0\n        '''\n                 \n        script src: '/js/jquery.js'\n        \n        coffeescript ->\n          $(document).ready ->\n            alert 'Alerts suck!'\n      body ->\n        header ->\n          h1 @title or 'Untitled'\n          \n          nav ->\n            ul ->\n              (li -> a href: '/', -> 'Home') unless @path is '/'\n              li -> a href: '/chunky', -> 'Bacon!'\n              switch @user.role\n                when 'owner', 'admin'\n                  li -> a href: '/admin', -> 'Secret Stuff'\n                when 'vip'\n                  li -> a href: '/vip', -> 'Exclusive Stuff'\n                else\n                  li -> a href: '/commoners', -> 'Just Stuff'\n\n        div '#myid.myclass.anotherclass', style: 'position: fixed', ->\n          p 'Divitis kills! Inline styling too.'\n\n        section ->\n          # A helper function you built and included.\n          breadcrumb separator: '>', clickable: yes\n          \n          h2 \"Let's count to 10:\"\n          p i for i in [1..10]\n          \n          # Another hypothetical helper.\n          form_to @post, ->\n            textbox '#title', label: 'Title:'\n            textbox '#author', label: 'Author:'\n            submit 'Save'\n\n        footer ->\n          # CoffeeScript comments. Not visible in the output document.\n          comment 'HTML comments.'\n          p 'Bye!'\n\nInteractive demo at [coffeekup.org](http://coffeekup.org).\n\n## _why?\n\n- **One language to rule them all**. JavaScript is everywhere, thus so is CoffeeScript. Servers, browsers, even databases. If extending this to rendering logic and UI structure (server and client side) is desirable to you, CoffeeCup is your friend.\n\n- **More specifically, one _outstanding_ language**. CoffeeScript is one hell of a clean, expressive, flexible and powerful language. It's hard to find such combination, especially if you need it to run in the browser too.\n\n- **Not yet another specialized language to learn**. Transferable knowledge FTW.\n\n- **Embed your templates in CoffeeScript nicely**. Templates are just functions, so they don't lose syntax highlighting and syntax checking when embedded in CoffeeScript apps.\n\n- **Embed CoffeeScript in your templates nicely**. In the same manner, you can write the contents of `<script>` blocks in CoffeeScript, and keep the highlighting. Perhaps more significantly, the CoffeeScript compiler doesn't have to be called just to convert these blocks to JS, as in other templating engines.\n\n- **Extensive editor support**. You benefit from the already existing list of excellent CoffeeScript [text editor plugins](https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins).\n\n- **Client-server consistency**. The same template language _and_ implementation in node.js or the browser.\n\n- **Easily extendable into a higher level \"DSL\"**. Since all elements are just functions, it's very easy to define your own custom \"tags\", which will work and look the same as \"native\" ones.\n\n- **HTML 5 ready**. Boring legacy doctypes and elements also available.\n\n- **Optional auto-escaping**. You can also use the `h` helper on a case-by-case basis.\n\n- **Optional formatting**, with line breaks and indentation.\n\n- **Pick your poison**. Works with both CoffeeScript and JavaScript apps.\n\n## Why not?\n\nCoffeeCup may not be your best choice in those cases:\n\n- You're after the cleanest syntax possible, above all. In this regard a specialized language such as [Jade](http://jade-lang.com) just can't be beaten.\n\n- You use divs and/or classes for everything. While in CoffeeCup you can do `div '#id.class.class'`, specialized languages often have an even shorter syntax for that.\n\n- You want CoffeeScript for rendering logic, but you'd rather stick with HTML for markup. Then you're looking for [Eco](http://github.com/sstephenson/eco).\n\n- For your specific project/team/preferences, you think a limited and/or separate language for templating is actually beneficial.\n\n## Installing\n\nJust grab [node.js](http://nodejs.org/#download) and [npm](http://github.com/isaacs/npm) and you're set:\n\n    npm install coffeecup\n\nTo get the `coffeecup` command, install it globally:\n\n    npm install coffeecup -g\n    \nOr to use the latest version:\n\n    git clone git@github.com:gradus/coffeecup.git && cd coffeecup\n    cake build\n    npm link\n    cd ~/myproject\n    npm link coffeecup\n\n## Using\n\n    cc = require 'coffeecup'\n\n    cc.render -> h1 \"You can feed me templates as functions.\"\n    cc.render \"h1 'Or strings. I am not too picky.'\"\n\nDefining variables:\n\n    template = ->\n      h1 @title\n      form method: 'post', action: 'login', ->\n        textbox id: 'username'\n        textbox id: 'password'\n        button @title\n\n    helpers =\n      textbox: (attrs) ->\n        attrs.type = 'text'\n        attrs.name = attrs.id\n        input attrs\n\n    cc.render(template, title: 'Log In', hardcode: helpers)\n\nPrecompiling to functions:\n\n    template = cc.compile(template, locals: yes, hardcode: {zig: 'zag'})\n    \n    template(foo: 'bar', locals: {ping: 'pong'})\n\nWith [express](http://expressjs.com):\n\n    app.set('view engine', 'coffee')\n    app.engine 'coffee', require('coffeecup').__express\n\n    app.get '/', (req, res) ->\n      # Will render views/index.coffee:\n      res.render 'index', foo: 'bar'\n\nWith [zappa](http://github.com/mauricemach/zappa):\n\n    get '/': ->\n      @franks = ['miller', 'oz', 'sinatra', 'zappa']\n      render 'index'\n\n    view index: ->\n      for name in @franks\n        a href: \"http://en.wikipedia.org/wiki/Frank_#{name}\", -> name\n\nWith [meryl](https://github.com/kadirpekel/meryl/tree/master/examples/coffeekup-template):\n\n    coffeekup = require 'coffeecup'\n    \n    meryl.get '/', (req, resp) ->\n      people = ['bob', 'alice', 'meryl']\n      resp.render 'layout', content: 'index', context: {people: people}\n\n    meryl.run\n      templateExt: '.coffee'\n      templateFunc: coffeecup.adapters.meryl\n\nOn the browser:\n\n    <script src=\"template.js\"></script>\n    <script>\n      $('body').append(templates.template({foo: 'bar'}));\n    </script>\n\nThis is one of many browser deployment possibilities, pre-compiling your template on the server to a standalone function. To see all serving suggestions, check out [regular](http://github.com/gradus/coffeecup/blob/master/examples/browser/regular/index.html), [decaf](http://github.com/gradus/coffeecup/blob/master/examples/browser/decaf/index.html) and [crème](http://github.com/gradus/coffeecup/blob/master/examples/browser/creme/index.html).\n\nCommand-line:\n\n    $ coffeecup -h\n\n    Usage:\n      coffeecup [options] path/to/template.coffee\n\n          --js           compile template to js function\n      -n, --namespace    global object holding the templates (default: \"templates\")\n      -w, --watch        watch templates for changes, and recompile\n      -o, --output       set the directory for compiled html\n      -p, --print        print the compiled html to stdout\n      -f, --format       apply line breaks and indentation to html output\n      -u, --utils        add helper locals (currently only \"render\")\n      -v, --version      display CoffeeCup version\n      -h, --help         display this help message\n\nSee [/examples](http://github.com/gradus/coffeekup/tree/master/examples) for complete versions (you have to run `cake build` first).\n\nPlease note that even though all examples are given in CoffeeScript, you can also use their plain JavaScript counterparts just fine.\n\n## Resources\n\n- [API reference](https://github.com/gradus/coffeecup/blob/master/docs/reference.md)\n\n- [Issues](https://github.com/gradus/coffeecup/issues)\n\n- [Google Group](https://groups.google.com/forum/#!forum/coffeecup_)\n\n- [A Beginners's Introduction to CoffeeCup](https://github.com/mark-hahn/coffeekup-intro)\n\n## Tools\n\n- [Haml ▸ HTML ▸ Coffeecup ▸ Javascript ▸ CoffeeScript Converter](https://github.com/mikesmullin/haml-html-coffeecup-javascript-coffeescript-converter) - hosted tool works in your browser.\n\n- [html2coffeekup](https://github.com/brandonbloom/html2coffeekup) - Converts HTML to CoffeeCup templates.\n\n- [htmlkup](https://github.com/colinta/htmlkup) - Another HTML converter, stdin/stdout based.\n\n- [html2coffeecup-app](https://html2coffeecup.nodejitsu.com) - html to CoffeeCup web app.\n\n- [creamer](https://github.com/twilson63/creamer) - A flatiron plugin for coffeecup\n\n- [coffeecup-helpers](https://github.com/twilson63/coffeecup-helpers) - CoffeeCup Html Helpers\n\n- [ice](https://github.com/ludicast/ice) - CoffeeCup and Eco in Rails ([screencast](http://vimeo.com/25907220)).\n\n- [coffee-world](https://github.com/khoomeister/coffee-world) - Tool to watch and compile HTML with CoffeeCup, CSS with coffee-css and JS with CoffeeScript.\n\n- [cupcake](https://github.com/twilson63/cupcake) - Express app generator with CoffeeCup support.\n\n## Related projects\n\n- [ck](https://github.com/aeosynth/ck) - \"a smaller, faster coffeekup\": Alternative, barebones implementation.\n\n- [ckup](https://github.com/satyr/ckup) - \"Markup as Coco\": Similar engine but for [Coco](https://github.com/satyr/coco) (\"Unfancy CoffeeScript\").\n\n- [Eco](https://github.com/sstephenson/eco) - \"Embedded CoffeeScript templates\": \"EJS/ERB\" for CoffeeScript.\n\n- [timbits](https://github.com/Postmedia/timbits) - \"Widget framework based on Express and CoffeeScript\".\n\n- [coffee-css](https://github.com/khoomeister/coffee-css) - \"More CSS for CoffeeScript\".\n\n- [ccss](https://github.com/aeosynth/ccss) - \"CoffeeScript CSS\".\n\n- [black-coffee](https://github.com/gradus/black-coffee) - Flatiron and Coffee-Script Template.\n\n- [iron-coffee](https://github.com/twilson63/iron-coffee) - Flatiron and Coffee-Script Template.\n \n- [teacup](https://github.com/goodeggs/teacup) - Descendant that preserves locals in lexical scope.\n\n\n## Compatibility\n\nLatest version tested with node 0.8.17 and CoffeeScript 1.4.0.\n\n## Special thanks\n\n  - [Jeremy Ashkenas](https://github.com/jashkenas), for the amazing CoffeeScript language.\n  - [why the lucky stiff](Why_the_lucky_stiff), for the inspiration.\n","readmeFilename":"README.md","_id":"coffeecup@0.3.19","dist":{"shasum":"2f5bb40f0f82d825b1ad23cc4593d0f7dbd3bcdc","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.19.tgz","integrity":"sha512-bsuU+jKnWO7kmrcmI6wczLVwW7mU6FDa6xZIQlaGXDbaLca9tgeRbWCjszT6ZfjV9iy1963XZC3iA/tLu83g1Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJsY3AJ9AHuUL1gPa6KHyNMwdUxdNdW0vx5xhT5cT51QIhAIhplR7c6EVKVfGUUAoUQeWdwZyv9BDe5UMpnDslYsns"}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.20":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.20","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">=1.3 <2","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"0.27.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.2.2","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x || 0.8.x || 0.10.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"},{"name":"Stéphane Alnet","email":"stephane@shimaore.net"}],"optionalDependencies":{},"readme":"# CoffeeCup <☕/>\n## Markup as CoffeeScript\n\n[![Build Status](https://secure.travis-ci.org/gradus/coffeecup.png?branch=master)](http://travis-ci.org/gradus/coffeecup)\n\nThis is a clone of @mauricemach [CoffeeCup](https://github.com/mauricemach/coffeekup).\n\nI am renaming and trying to keep this project alive.\n\n[Fork CoffeeCup on Github](https://github.com/gradus/coffeecup).\n\nCoffeeCup is a templating engine for [node.js](http://nodejs.org) and browsers that lets you to write your HTML templates in 100% pure [CoffeeScript](http://coffeescript.org).\n\nIt was created in celebration of [whyday](http://whyday.org/), as an application of the concept used in [Markaby](https://github.com/markaby/markaby) (\"Markup as Ruby\", by Tim Fletcher and why the lucky stiff) to CoffeeScript.\n\nHere's what a template written for CoffeeCup looks like:\n\n    doctype 5\n    html ->\n      head ->\n        meta charset: 'utf-8'\n        title \"#{@title or 'Untitled'} | A completely plausible website\"\n        meta(name: 'description', content: @description) if @description?\n        \n        link rel: 'stylesheet', href: '/css/app.css'\n        \n        style '''\n          body {font-family: sans-serif}\n          header, nav, section, footer {display: block}\n        '''\n\n        comment 'Stylus is supported as well'\n\n        stylus '''\n          body\n            margin: 0\n        '''\n                 \n        script src: '/js/jquery.js'\n        \n        coffeescript ->\n          $(document).ready ->\n            alert 'Alerts suck!'\n      body ->\n        header ->\n          h1 @title or 'Untitled'\n          \n          nav ->\n            ul ->\n              (li -> a href: '/', -> 'Home') unless @path is '/'\n              li -> a href: '/chunky', -> 'Bacon!'\n              switch @user.role\n                when 'owner', 'admin'\n                  li -> a href: '/admin', -> 'Secret Stuff'\n                when 'vip'\n                  li -> a href: '/vip', -> 'Exclusive Stuff'\n                else\n                  li -> a href: '/commoners', -> 'Just Stuff'\n\n        div '#myid.myclass.anotherclass', style: 'position: fixed', ->\n          p 'Divitis kills! Inline styling too.'\n\n        section ->\n          # A helper function you built and included.\n          breadcrumb separator: '>', clickable: yes\n          \n          h2 \"Let's count to 10:\"\n          p i for i in [1..10]\n          \n          # Another hypothetical helper.\n          form_to @post, ->\n            textbox '#title', label: 'Title:'\n            textbox '#author', label: 'Author:'\n            submit 'Save'\n\n        footer ->\n          # CoffeeScript comments. Not visible in the output document.\n          comment 'HTML comments.'\n          p 'Bye!'\n\nInteractive demo at [coffeekup.org](http://coffeekup.org).\n\n## _why?\n\n- **One language to rule them all**. JavaScript is everywhere, thus so is CoffeeScript. Servers, browsers, even databases. If extending this to rendering logic and UI structure (server and client side) is desirable to you, CoffeeCup is your friend.\n\n- **More specifically, one _outstanding_ language**. CoffeeScript is one hell of a clean, expressive, flexible and powerful language. It's hard to find such combination, especially if you need it to run in the browser too.\n\n- **Not yet another specialized language to learn**. Transferable knowledge FTW.\n\n- **Embed your templates in CoffeeScript nicely**. Templates are just functions, so they don't lose syntax highlighting and syntax checking when embedded in CoffeeScript apps.\n\n- **Embed CoffeeScript in your templates nicely**. In the same manner, you can write the contents of `<script>` blocks in CoffeeScript, and keep the highlighting. Perhaps more significantly, the CoffeeScript compiler doesn't have to be called just to convert these blocks to JS, as in other templating engines.\n\n- **Extensive editor support**. You benefit from the already existing list of excellent CoffeeScript [text editor plugins](https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins).\n\n- **Client-server consistency**. The same template language _and_ implementation in node.js or the browser.\n\n- **Easily extendable into a higher level \"DSL\"**. Since all elements are just functions, it's very easy to define your own custom \"tags\", which will work and look the same as \"native\" ones.\n\n- **HTML 5 ready**. Boring legacy doctypes and elements also available.\n\n- **Optional auto-escaping**. You can also use the `h` helper on a case-by-case basis.\n\n- **Optional formatting**, with line breaks and indentation.\n\n- **Pick your poison**. Works with both CoffeeScript and JavaScript apps.\n\n## Why not?\n\nCoffeeCup may not be your best choice in those cases:\n\n- You're after the cleanest syntax possible, above all. In this regard a specialized language such as [Jade](http://jade-lang.com) just can't be beaten.\n\n- You use divs and/or classes for everything. While in CoffeeCup you can do `div '#id.class.class'`, specialized languages often have an even shorter syntax for that.\n\n- You want CoffeeScript for rendering logic, but you'd rather stick with HTML for markup. Then you're looking for [Eco](http://github.com/sstephenson/eco).\n\n- For your specific project/team/preferences, you think a limited and/or separate language for templating is actually beneficial.\n\n## Installing\n\nJust grab [node.js](http://nodejs.org/#download) and [npm](http://github.com/isaacs/npm) and you're set:\n\n    npm install coffeecup\n\nTo get the `coffeecup` command, install it globally:\n\n    npm install coffeecup -g\n    \nOr to use the latest version:\n\n    git clone git@github.com:gradus/coffeecup.git && cd coffeecup\n    cake build\n    npm link\n    cd ~/myproject\n    npm link coffeecup\n\n## Using\n\n    cc = require 'coffeecup'\n\n    cc.render -> h1 \"You can feed me templates as functions.\"\n    cc.render \"h1 'Or strings. I am not too picky.'\"\n\nDefining variables:\n\n    template = ->\n      h1 @title\n      form method: 'post', action: 'login', ->\n        textbox id: 'username'\n        textbox id: 'password'\n        button @title\n\n    helpers =\n      textbox: (attrs) ->\n        attrs.type = 'text'\n        attrs.name = attrs.id\n        input attrs\n\n    cc.render(template, title: 'Log In', hardcode: helpers)\n\nPrecompiling to functions:\n\n    template = cc.compile(template, locals: yes, hardcode: {zig: 'zag'})\n    \n    template(foo: 'bar', locals: {ping: 'pong'})\n\nWith [express](http://expressjs.com):\n\n    app.set('view engine', 'coffee')\n    app.engine 'coffee', require('coffeecup').__express\n\n    app.get '/', (req, res) ->\n      # Will render views/index.coffee:\n      res.render 'index', foo: 'bar'\n\nWith [zappa](http://github.com/mauricemach/zappa):\n\n    get '/': ->\n      @franks = ['miller', 'oz', 'sinatra', 'zappa']\n      render 'index'\n\n    view index: ->\n      for name in @franks\n        a href: \"http://en.wikipedia.org/wiki/Frank_#{name}\", -> name\n\nWith [meryl](https://github.com/kadirpekel/meryl/tree/master/examples/coffeekup-template):\n\n    coffeekup = require 'coffeecup'\n    \n    meryl.get '/', (req, resp) ->\n      people = ['bob', 'alice', 'meryl']\n      resp.render 'layout', content: 'index', context: {people: people}\n\n    meryl.run\n      templateExt: '.coffee'\n      templateFunc: coffeecup.adapters.meryl\n\nOn the browser:\n\n    <script src=\"template.js\"></script>\n    <script>\n      $('body').append(templates.template({foo: 'bar'}));\n    </script>\n\nThis is one of many browser deployment possibilities, pre-compiling your template on the server to a standalone function. To see all serving suggestions, check out [regular](http://github.com/gradus/coffeecup/blob/master/examples/browser/regular/index.html), [decaf](http://github.com/gradus/coffeecup/blob/master/examples/browser/decaf/index.html) and [crème](http://github.com/gradus/coffeecup/blob/master/examples/browser/creme/index.html).\n\nCommand-line:\n\n    $ coffeecup -h\n\n    Usage:\n      coffeecup [options] path/to/template.coffee\n\n          --js           compile template to js function\n      -n, --namespace    global object holding the templates (default: \"templates\")\n      -w, --watch        watch templates for changes, and recompile\n      -o, --output       set the directory for compiled html\n      -p, --print        print the compiled html to stdout\n      -f, --format       apply line breaks and indentation to html output\n      -u, --utils        add helper locals (currently only \"render\")\n      -v, --version      display CoffeeCup version\n      -h, --help         display this help message\n\nSee [/examples](http://github.com/gradus/coffeekup/tree/master/examples) for complete versions (you have to run `cake build` first).\n\nPlease note that even though all examples are given in CoffeeScript, you can also use their plain JavaScript counterparts just fine.\n\n## Resources\n\n- [API reference](https://github.com/gradus/coffeecup/blob/master/docs/reference.md)\n\n- [Issues](https://github.com/gradus/coffeecup/issues)\n\n- [Google Group](https://groups.google.com/forum/#!forum/coffeecup_)\n\n- [A Beginners's Introduction to CoffeeCup](https://github.com/mark-hahn/coffeekup-intro)\n\n## Tools\n\n- [Haml ▸ HTML ▸ Coffeecup ▸ Javascript ▸ CoffeeScript Converter](https://github.com/mikesmullin/haml-html-coffeecup-javascript-coffeescript-converter) - hosted tool works in your browser.\n\n- [html2coffeekup](https://github.com/brandonbloom/html2coffeekup) - Converts HTML to CoffeeCup templates.\n\n- [htmlkup](https://github.com/colinta/htmlkup) - Another HTML converter, stdin/stdout based.\n\n- [html2coffeecup-app](https://html2coffeecup.nodejitsu.com) - html to CoffeeCup web app.\n\n- [creamer](https://github.com/twilson63/creamer) - A flatiron plugin for coffeecup\n\n- [coffeecup-helpers](https://github.com/twilson63/coffeecup-helpers) - CoffeeCup Html Helpers\n\n- [ice](https://github.com/ludicast/ice) - CoffeeCup and Eco in Rails ([screencast](http://vimeo.com/25907220)).\n\n- [coffee-world](https://github.com/khoomeister/coffee-world) - Tool to watch and compile HTML with CoffeeCup, CSS with coffee-css and JS with CoffeeScript.\n\n- [cupcake](https://github.com/twilson63/cupcake) - Express app generator with CoffeeCup support.\n\n## Related projects\n\n- [ck](https://github.com/aeosynth/ck) - \"a smaller, faster coffeekup\": Alternative, barebones implementation.\n\n- [ckup](https://github.com/satyr/ckup) - \"Markup as Coco\": Similar engine but for [Coco](https://github.com/satyr/coco) (\"Unfancy CoffeeScript\").\n\n- [Eco](https://github.com/sstephenson/eco) - \"Embedded CoffeeScript templates\": \"EJS/ERB\" for CoffeeScript.\n\n- [timbits](https://github.com/Postmedia/timbits) - \"Widget framework based on Express and CoffeeScript\".\n\n- [coffee-css](https://github.com/khoomeister/coffee-css) - \"More CSS for CoffeeScript\".\n\n- [ccss](https://github.com/aeosynth/ccss) - \"CoffeeScript CSS\".\n\n- [black-coffee](https://github.com/gradus/black-coffee) - Flatiron and Coffee-Script Template.\n\n- [iron-coffee](https://github.com/twilson63/iron-coffee) - Flatiron and Coffee-Script Template.\n \n- [teacup](https://github.com/goodeggs/teacup) - Descendant that preserves locals in lexical scope.\n\n\n## Compatibility\n\nLatest version tested with node 0.8.17 and CoffeeScript 1.4.0.\n\n## Special thanks\n\n  - [Jeremy Ashkenas](https://github.com/jashkenas), for the amazing CoffeeScript language.\n  - [why the lucky stiff](Why_the_lucky_stiff), for the inspiration.\n","readmeFilename":"README.md","_id":"coffeecup@0.3.20","dist":{"shasum":"2e15ee13c598e66ec2bfb760a7b5f3344bd59631","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.20.tgz","integrity":"sha512-ioCIjgt3EL3oHe4IFF3EDQikp75IdF/ANewGkvtIaM6zccYbI2Ra6lnNlb0ihqYLn31NfkKiABGCrOzViCCRYg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF4fv/p5jz+J0barSYoRseJivgH2SbS9yhgDrzie7FJKAiBHrLF8e0f3m584gA3XI+1O7y8Qah6vuBI1iwJSABRpIQ=="}]},"_from":".","_npmVersion":"1.2.15","_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"directories":{}},"0.3.21":{"name":"coffeecup","description":"Markup as CoffeeScript.","version":"0.3.21","author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"homepage":"http://easydoc.org/coffeecup","repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"dependencies":{"coffee-script":">=1.3 <2","optparse":"1.0.3","uglify-js":"1.2.6","stylus":"0.27.2"},"devDependencies":{"jade":"0.13.0","eco":"1.1.0-rc-1","ejs":"0.4.3","haml":"0.4.2","mocha":"1.2.2","should":"0.6.0"},"keywords":["template","view","coffeescript"],"bin":{"coffeecup":"./bin/coffeecup"},"main":"./lib/coffeecup","engines":{"node":"0.4.x || 0.6.x || 0.8.x || 0.10.x"},"scripts":{"test":"./node_modules/mocha/bin/mocha"},"contributors":[{"name":"Kris Windham","email":"kriswindham@gmail.com"},{"name":"Tom Wilson","email":"tom@jackrussellsoftware.com"},{"name":"Luis Pedro Coelho","email":"lpc@cmu.edu"},{"name":"Rachel Carvalho","email":"rachel.carvalho@gmail.com"},{"name":"Vladimir Dronnikov","email":"dronnikov@gmail.com"},{"name":"James Campos","email":"james.r.campos@gmail.com"},{"name":"Martin Westergaard Lassen","email":"martin@mwl.dk"},{"name":"Paul Harper","email":"benekastah@gmail.com"},{"name":"Colin Thomas-Arnold","email":"colinta@mac.com"},{"name":"Esa-Matti Suuronen","email":"esa-matti@suuronen.org"},{"name":"Jason King","email":"jk@handle.it"},{"name":"Brandon Bloom","email":"brandon@brandonbloom.name"},{"name":"Nicholas Kinsey","email":"nicholas.kinsey@feistystudios.com"},{"name":"Lance Pollard","email":"lancejpollard@gmail.com"},{"name":"Stéphane Alnet","email":"stephane@shimaore.net"}],"optionalDependencies":{},"readme":"# CoffeeCup <☕/>\n## Markup as CoffeeScript\n\n[![Build Status](https://secure.travis-ci.org/gradus/coffeecup.png?branch=master)](http://travis-ci.org/gradus/coffeecup)\n\nThis is a clone of @mauricemach [CoffeeCup](https://github.com/mauricemach/coffeekup).\n\nI am renaming and trying to keep this project alive.\n\n[Fork CoffeeCup on Github](https://github.com/gradus/coffeecup).\n\nCoffeeCup is a templating engine for [node.js](http://nodejs.org) and browsers that lets you to write your HTML templates in 100% pure [CoffeeScript](http://coffeescript.org).\n\nIt was created in celebration of [whyday](http://whyday.org/), as an application of the concept used in [Markaby](https://github.com/markaby/markaby) (\"Markup as Ruby\", by Tim Fletcher and why the lucky stiff) to CoffeeScript.\n\nHere's what a template written for CoffeeCup looks like:\n\n    doctype 5\n    html ->\n      head ->\n        meta charset: 'utf-8'\n        title \"#{@title or 'Untitled'} | A completely plausible website\"\n        meta(name: 'description', content: @description) if @description?\n        \n        link rel: 'stylesheet', href: '/css/app.css'\n        \n        style '''\n          body {font-family: sans-serif}\n          header, nav, section, footer {display: block}\n        '''\n\n        comment 'Stylus is supported as well'\n\n        stylus '''\n          body\n            margin: 0\n        '''\n                 \n        script src: '/js/jquery.js'\n        \n        coffeescript ->\n          $(document).ready ->\n            alert 'Alerts suck!'\n      body ->\n        header ->\n          h1 @title or 'Untitled'\n          \n          nav ->\n            ul ->\n              (li -> a href: '/', -> 'Home') unless @path is '/'\n              li -> a href: '/chunky', -> 'Bacon!'\n              switch @user.role\n                when 'owner', 'admin'\n                  li -> a href: '/admin', -> 'Secret Stuff'\n                when 'vip'\n                  li -> a href: '/vip', -> 'Exclusive Stuff'\n                else\n                  li -> a href: '/commoners', -> 'Just Stuff'\n\n        div '#myid.myclass.anotherclass', style: 'position: fixed', ->\n          p 'Divitis kills! Inline styling too.'\n\n        section ->\n          # A helper function you built and included.\n          breadcrumb separator: '>', clickable: yes\n          \n          h2 \"Let's count to 10:\"\n          p i for i in [1..10]\n          \n          # Another hypothetical helper.\n          form_to @post, ->\n            textbox '#title', label: 'Title:'\n            textbox '#author', label: 'Author:'\n            submit 'Save'\n\n        footer ->\n          # CoffeeScript comments. Not visible in the output document.\n          comment 'HTML comments.'\n          p 'Bye!'\n\nInteractive demo at [coffeekup.org](http://coffeekup.org).\n\n## _why?\n\n- **One language to rule them all**. JavaScript is everywhere, thus so is CoffeeScript. Servers, browsers, even databases. If extending this to rendering logic and UI structure (server and client side) is desirable to you, CoffeeCup is your friend.\n\n- **More specifically, one _outstanding_ language**. CoffeeScript is one hell of a clean, expressive, flexible and powerful language. It's hard to find such combination, especially if you need it to run in the browser too.\n\n- **Not yet another specialized language to learn**. Transferable knowledge FTW.\n\n- **Embed your templates in CoffeeScript nicely**. Templates are just functions, so they don't lose syntax highlighting and syntax checking when embedded in CoffeeScript apps.\n\n- **Embed CoffeeScript in your templates nicely**. In the same manner, you can write the contents of `<script>` blocks in CoffeeScript, and keep the highlighting. Perhaps more significantly, the CoffeeScript compiler doesn't have to be called just to convert these blocks to JS, as in other templating engines.\n\n- **Extensive editor support**. You benefit from the already existing list of excellent CoffeeScript [text editor plugins](https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins).\n\n- **Client-server consistency**. The same template language _and_ implementation in node.js or the browser.\n\n- **Easily extendable into a higher level \"DSL\"**. Since all elements are just functions, it's very easy to define your own custom \"tags\", which will work and look the same as \"native\" ones.\n\n- **HTML 5 ready**. Boring legacy doctypes and elements also available.\n\n- **Optional auto-escaping**. You can also use the `h` helper on a case-by-case basis.\n\n- **Optional formatting**, with line breaks and indentation.\n\n- **Pick your poison**. Works with both CoffeeScript and JavaScript apps.\n\n## Why not?\n\nCoffeeCup may not be your best choice in those cases:\n\n- You're after the cleanest syntax possible, above all. In this regard a specialized language such as [Jade](http://jade-lang.com) just can't be beaten.\n\n- You use divs and/or classes for everything. While in CoffeeCup you can do `div '#id.class.class'`, specialized languages often have an even shorter syntax for that.\n\n- You want CoffeeScript for rendering logic, but you'd rather stick with HTML for markup. Then you're looking for [Eco](http://github.com/sstephenson/eco).\n\n- For your specific project/team/preferences, you think a limited and/or separate language for templating is actually beneficial.\n\n## Installing\n\nJust grab [node.js](http://nodejs.org/#download) and [npm](http://github.com/isaacs/npm) and you're set:\n\n    npm install coffeecup\n\nTo get the `coffeecup` command, install it globally:\n\n    npm install coffeecup -g\n    \nOr to use the latest version:\n\n    git clone git@github.com:gradus/coffeecup.git && cd coffeecup\n    cake build\n    npm link\n    cd ~/myproject\n    npm link coffeecup\n\n## Using\n\n    cc = require 'coffeecup'\n\n    cc.render -> h1 \"You can feed me templates as functions.\"\n    cc.render \"h1 'Or strings. I am not too picky.'\"\n\nDefining variables:\n\n    template = ->\n      h1 @title\n      form method: 'post', action: 'login', ->\n        textbox id: 'username'\n        textbox id: 'password'\n        button @title\n\n    helpers =\n      textbox: (attrs) ->\n        attrs.type = 'text'\n        attrs.name = attrs.id\n        input attrs\n\n    cc.render(template, title: 'Log In', hardcode: helpers)\n\nPrecompiling to functions:\n\n    template = cc.compile(template, locals: yes, hardcode: {zig: 'zag'})\n    \n    template(foo: 'bar', locals: {ping: 'pong'})\n\nWith [express](http://expressjs.com):\n\n    app.set('view engine', 'coffee')\n    app.engine 'coffee', require('coffeecup').__express\n\n    app.get '/', (req, res) ->\n      # Will render views/index.coffee:\n      res.render 'index', foo: 'bar'\n\nWith [zappa](http://github.com/mauricemach/zappa):\n\n    get '/': ->\n      @franks = ['miller', 'oz', 'sinatra', 'zappa']\n      render 'index'\n\n    view index: ->\n      for name in @franks\n        a href: \"http://en.wikipedia.org/wiki/Frank_#{name}\", -> name\n\nWith [meryl](https://github.com/kadirpekel/meryl/tree/master/examples/coffeekup-template):\n\n    coffeekup = require 'coffeecup'\n    \n    meryl.get '/', (req, resp) ->\n      people = ['bob', 'alice', 'meryl']\n      resp.render 'layout', content: 'index', context: {people: people}\n\n    meryl.run\n      templateExt: '.coffee'\n      templateFunc: coffeecup.adapters.meryl\n\nOn the browser:\n\n    <script src=\"template.js\"></script>\n    <script>\n      $('body').append(templates.template({foo: 'bar'}));\n    </script>\n\nThis is one of many browser deployment possibilities, pre-compiling your template on the server to a standalone function. To see all serving suggestions, check out [regular](http://github.com/gradus/coffeecup/blob/master/examples/browser/regular/index.html), [decaf](http://github.com/gradus/coffeecup/blob/master/examples/browser/decaf/index.html) and [crème](http://github.com/gradus/coffeecup/blob/master/examples/browser/creme/index.html).\n\nCommand-line:\n\n    $ coffeecup -h\n\n    Usage:\n      coffeecup [options] path/to/template.coffee\n\n          --js           compile template to js function\n      -n, --namespace    global object holding the templates (default: \"templates\")\n      -w, --watch        watch templates for changes, and recompile\n      -o, --output       set the directory for compiled html\n      -p, --print        print the compiled html to stdout\n      -f, --format       apply line breaks and indentation to html output\n      -u, --utils        add helper locals (currently only \"render\")\n      -v, --version      display CoffeeCup version\n      -h, --help         display this help message\n\nSee [/examples](http://github.com/gradus/coffeekup/tree/master/examples) for complete versions (you have to run `cake build` first).\n\nPlease note that even though all examples are given in CoffeeScript, you can also use their plain JavaScript counterparts just fine.\n\n## Resources\n\n- [API reference](https://github.com/gradus/coffeecup/blob/master/docs/reference.md)\n\n- [Issues](https://github.com/gradus/coffeecup/issues)\n\n- [Google Group](https://groups.google.com/forum/#!forum/coffeecup_)\n\n- [A Beginners's Introduction to CoffeeCup](https://github.com/mark-hahn/coffeekup-intro)\n\n## Tools\n\n- [Haml ▸ HTML ▸ Coffeecup ▸ Javascript ▸ CoffeeScript Converter](https://github.com/mikesmullin/haml-html-coffeecup-javascript-coffeescript-converter) - hosted tool works in your browser.\n\n- [html2coffeekup](https://github.com/brandonbloom/html2coffeekup) - Converts HTML to CoffeeCup templates.\n\n- [htmlkup](https://github.com/colinta/htmlkup) - Another HTML converter, stdin/stdout based.\n\n- [html2coffeecup-app](https://html2coffeecup.nodejitsu.com) - html to CoffeeCup web app.\n\n- [creamer](https://github.com/twilson63/creamer) - A flatiron plugin for coffeecup\n\n- [coffeecup-helpers](https://github.com/twilson63/coffeecup-helpers) - CoffeeCup Html Helpers\n\n- [ice](https://github.com/ludicast/ice) - CoffeeCup and Eco in Rails ([screencast](http://vimeo.com/25907220)).\n\n- [coffee-world](https://github.com/khoomeister/coffee-world) - Tool to watch and compile HTML with CoffeeCup, CSS with coffee-css and JS with CoffeeScript.\n\n- [cupcake](https://github.com/twilson63/cupcake) - Express app generator with CoffeeCup support.\n\n## Related projects\n\n- [ck](https://github.com/aeosynth/ck) - \"a smaller, faster coffeekup\": Alternative, barebones implementation.\n\n- [ckup](https://github.com/satyr/ckup) - \"Markup as Coco\": Similar engine but for [Coco](https://github.com/satyr/coco) (\"Unfancy CoffeeScript\").\n\n- [Eco](https://github.com/sstephenson/eco) - \"Embedded CoffeeScript templates\": \"EJS/ERB\" for CoffeeScript.\n\n- [timbits](https://github.com/Postmedia/timbits) - \"Widget framework based on Express and CoffeeScript\".\n\n- [coffee-css](https://github.com/khoomeister/coffee-css) - \"More CSS for CoffeeScript\".\n\n- [ccss](https://github.com/aeosynth/ccss) - \"CoffeeScript CSS\".\n\n- [black-coffee](https://github.com/gradus/black-coffee) - Flatiron and Coffee-Script Template.\n\n- [iron-coffee](https://github.com/twilson63/iron-coffee) - Flatiron and Coffee-Script Template.\n \n- [teacup](https://github.com/goodeggs/teacup) - Descendant that preserves locals in lexical scope.\n\n\n## Compatibility\n\nLatest version tested with node 0.8.17 and CoffeeScript 1.4.0.\n\n## Special thanks\n\n  - [Jeremy Ashkenas](https://github.com/jashkenas), for the amazing CoffeeScript language.\n  - [why the lucky stiff](Why_the_lucky_stiff), for the inspiration.\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/gradus/coffeecup/issues"},"_id":"coffeecup@0.3.21","dist":{"shasum":"54e714175cb223ddd10568517196e0cd566d198a","tarball":"https://registry.npmjs.org/coffeecup/-/coffeecup-0.3.21.tgz","integrity":"sha512-FdEt/iFwXCiZ4BMm3+bgrrOx+ixGsYEnpG1lDd51ijugFZDjmNioXdjOcA7P1At5hwLTjuAUZ2envLY8R9Z19A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDybT6sLXMLIGIsMpnDK3BdCJSEhORIOW6eWdaCh0Z/owIhALDVZOSXNyPDWGpghaaq+B4C3JF+mG/I48xiHlGtV/e6"}]},"_from":".","_npmVersion":"1.2.21","_npmUser":{"name":"gradus","email":"kriswindham@gmail.com"},"maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}]}},"readme":"# CoffeeCup <☕/>\n## Markup as CoffeeScript\n\nThis is a clone of @mauricemach [CoffeeKup](https://github.com/mauricemach/coffeekup).\n\nI am renaming and trying to keep this project alive.\n\nCoffeeCup is a templating engine for [node.js](http://nodejs.org) and browsers that lets you to write your HTML templates in 100% pure [CoffeeScript](http://coffeescript.org).\n\nIt was created in celebration of [whyday](http://whyday.org/), as an application of the concept used in [Markaby](https://github.com/markaby/markaby) (\"Markup as Ruby\", by Tim Fletcher and why the lucky stiff) to CoffeeScript.\n\nHere's what a template written for CoffeeCup looks like:\n\n    doctype 5\n    html ->\n      head ->\n        meta charset: 'utf-8'\n        title \"#{@title or 'Untitled'} | A completely plausible website\"\n        meta(name: 'description', content: @description) if @description?\n        \n        link rel: 'stylesheet', href: '/css/app.css'\n        \n        style '''\n          body {font-family: sans-serif}\n          header, nav, section, footer {display: block}\n        '''\n        \n        script src: '/js/jquery.js'\n        \n        coffeescript ->\n          $(document).ready ->\n            alert 'Alerts suck!'\n      body ->\n        header ->\n          h1 @title or 'Untitled'\n          \n          nav ->\n            ul ->\n              (li -> a href: '/', -> 'Home') unless @path is '/'\n              li -> a href: '/chunky', -> 'Bacon!'\n              switch @user.role\n                when 'owner', 'admin'\n                  li -> a href: '/admin', -> 'Secret Stuff'\n                when 'vip'\n                  li -> a href: '/vip', -> 'Exclusive Stuff'\n                else\n                  li -> a href: '/commoners', -> 'Just Stuff'\n\n        div '#myid.myclass.anotherclass', style: 'position: fixed', ->\n          p 'Divitis kills! Inline styling too.'\n\n        section ->\n          # A helper function you built and included.\n          breadcrumb separator: '>', clickable: yes\n          \n          h2 \"Let's count to 10:\"\n          p i for i in [1..10]\n          \n          # Another hypothetical helper.\n          form_to @post, ->\n            textbox '#title', label: 'Title:'\n            textbox '#author', label: 'Author:'\n            submit 'Save'\n\n        footer ->\n          # CoffeeScript comments. Not visible in the output document.\n          comment 'HTML comments.'\n          p 'Bye!'\n\nInteractive demo at [coffeekup.org](http://coffeekup.org).\n\n## _why?\n\n- **One language to rule them all**. JavaScript is everywhere, thus so is CoffeeScript. Servers, browsers, even databases. If extending this to rendering logic and UI structure (server and client side) is desirable to you, CoffeeKup is your friend.\n\n- **More specifically, one _outstanding_ language**. CoffeeScript is one hell of a clean, expressive, flexible and powerful language. It's hard to find such combination, especially if you need it to run in the browser too.\n\n- **Not yet another specialized language to learn**. Transferable knowledge FTW.\n\n- **Embed your templates in CoffeeScript nicely**. Templates are just functions, so they don't lose syntax highlighting and syntax checking when embedded in CoffeeScript apps.\n\n- **Embed CoffeeScript in your templates nicely**. In the same manner, you can write the contents of `<script>` blocks in CoffeeScript, and keep the highlighting. Perhaps more significantly, the CoffeeScript compiler doesn't have to be called just to convert these blocks to JS, as in other templating engines.\n\n- **Extensive editor support**. You benefit from the already existing list of excellent CoffeeScript [text editor plugins](https://github.com/jashkenas/coffee-script/wiki/Text-editor-plugins).\n\n- **Client-server consistency**. The same template language _and_ implementation in node.js or the browser.\n\n- **Easily extendable into a higher level \"DSL\"**. Since all elements are just functions, it's very easy to define your own custom \"tags\", which will work and look the same as \"native\" ones.\n\n- **HTML 5 ready**. Boring legacy doctypes and elements also available.\n\n- **Optional auto-escaping**. You can also use the `h` helper on a case-by-case basis.\n\n- **Optional formatting**, with line breaks and indentation.\n\n- **Pick your poison**. Works with both CoffeeScript and JavaScript apps.\n\n## Why not?\n\nCoffeeKup may not be your best choice in those cases:\n\n- You're after the cleanest syntax possible, above all. In this regard a specialized language such as [Jade](http://jade-lang.com) just can't be beaten.\n\n- You use divs and/or classes for everything. While in CoffeeKup you can do `div '#id.class.class'`, specialized languages often have an even shorter syntax for that.\n\n- You want CoffeeScript for rendering logic, but you'd rather stick with HTML for markup. Then you're looking for [Eco](http://github.com/sstephenson/eco).\n\n- For your specific project/team/preferences, you think a limited and/or separate language for templating is actually beneficial.\n\n## Installing\n\nJust grab [node.js](http://nodejs.org/#download) and [npm](http://github.com/isaacs/npm) and you're set:\n\n    npm install coffeecup\n\nTo get the `coffeecup` command, install it globally:\n\n    npm install coffeecup -g\n    \nOr to use the latest version:\n\n    git clone git@github.com:gradus/coffeecup.git && cd coffeecup\n    cake build\n    npm link\n    cd ~/myproject\n    npm link coffeecup\n\n## Using\n\n    cc = require 'coffeecup'\n\n    cc.render -> h1 \"You can feed me templates as functions.\"\n    cc.render \"h1 'Or strings. I am not too picky.'\"\n\nDefining variables:\n\n    template = ->\n      h1 @title\n      form method: 'post', action: 'login', ->\n        textbox id: 'username'\n        textbox id: 'password'\n        button @title\n\n    helpers =\n      textbox: (attrs) ->\n        attrs.type = 'text'\n        attrs.name = attrs.id\n        input attrs\n\n    ck.render(template, title: 'Log In', hardcode: helpers)\n\nPrecompiling to functions:\n\n    template = ck.compile(template, locals: yes, hardcode: {zig: 'zag'})\n    \n    template(foo: 'bar', locals: {ping: 'pong'})\n\nWith [express](http://expressjs.com):\n\n    app.set 'view engine', 'coffee'\n    app.register '.coffee', require('coffeecup').adapters.express\n\n    app.get '/', (req, res) ->\n      # Will render views/index.coffee:\n      res.render 'index', foo: 'bar'\n\nWith [zappa](http://github.com/mauricemach/zappa):\n\n    get '/': ->\n      @franks = ['miller', 'oz', 'sinatra', 'zappa']\n      render 'index'\n\n    view index: ->\n      for name in @franks\n        a href: \"http://en.wikipedia.org/wiki/Frank_#{name}\", -> name\n\nWith [meryl](https://github.com/kadirpekel/meryl/tree/master/examples/coffeekup-template):\n\n    coffeekup = require 'coffeecup'\n    \n    meryl.get '/', (req, resp) ->\n      people = ['bob', 'alice', 'meryl']\n      resp.render 'layout', content: 'index', context: {people: people}\n\n    meryl.run\n      templateExt: '.coffee'\n      templateFunc: coffeecup.adapters.meryl\n\nOn the browser:\n\n    <script src=\"template.js\"></script>\n    <script>\n      $('body').append(templates.template({foo: 'bar'}));\n    </script>\n\nThis is one of many browser deployment possibilities, pre-compiling your template on the server to a standalone function. To see all serving suggestions, check out [regular](http://github.com/gradus/coffeecup/blob/master/examples/browser/regular/index.html), [decaf](http://github.com/gradus/coffeecup/blob/master/examples/browser/decaf/index.html) and [crème](http://github.com/gradus/coffeecup/blob/master/examples/browser/creme/index.html).\n\nCommand-line:\n\n    $ coffeecup -h\n\n    Usage:\n      coffeecup [options] path/to/template.coffee\n\n          --js           compile template to js function\n      -n, --namespace    global object holding the templates (default: \"templates\")\n      -w, --watch        watch templates for changes, and recompile\n      -o, --output       set the directory for compiled html\n      -p, --print        print the compiled html to stdout\n      -f, --format       apply line breaks and indentation to html output\n      -u, --utils        add helper locals (currently only \"render\")\n      -v, --version      display CoffeeKup version\n      -h, --help         display this help message\n\nSee [/examples](http://github.com/gradus/coffeekup/tree/master/examples) for complete versions (you have to run `cake build` first).\n\nPlease note that even though all examples are given in CoffeeScript, you can also use their plain JavaScript counterparts just fine.\n\n## Resources\n\n- [API reference](https://github.com/gradus/coffeekup/blob/master/docs/reference.md)\n\n- [Mailing list](https://groups.google.com/group/coffeekup)\n\n- [Issues](https://github.com/gradus/coffeecup/issues)\n\n- **IRC**: #coffeekup on irc.freenode.net\n\n- [A Beginners's Introduction to CoffeeKup](https://github.com/mark-hahn/coffeekup-intro)\n\n## Tools\n\n- [html2coffeekup](https://github.com/brandonbloom/html2coffeekup) - Converts HTML to CoffeeKup templates.\n\n- [htmlkup](https://github.com/colinta/htmlkup) - Another HTML converter, stdin/stdout based.\n\n- [ice](https://github.com/ludicast/ice) - CoffeeKup and Eco in Rails ([screencast](http://vimeo.com/25907220)).\n\n- [coffee-world](https://github.com/khoomeister/coffee-world) - Tool to watch and compile HTML with CoffeeKup, CSS with coffee-css and JS with CoffeeScript.\n\n- [cupcake](https://github.com/twilson63/cupcake) - Express app generator with CoffeeKup support.\n\n## Related projects\n\n- [ck](https://github.com/aeosynth/ck) - \"a smaller, faster coffeekup\": Alternative, barebones implementation.\n\n- [ckup](https://github.com/satyr/ckup) - \"Markup as Coco\": Similar engine but for [Coco](https://github.com/satyr/coco) (\"Unfancy CoffeeScript\").\n\n- [Eco](https://github.com/sstephenson/eco) - \"Embedded CoffeeScript templates\": \"EJS/ERB\" for CoffeeScript.\n\n- [timbits](https://github.com/Postmedia/timbits) - \"Widget framework based on Express and CoffeeScript\".\n\n- [coffee-css](https://github.com/khoomeister/coffee-css) - \"More CSS for CoffeeScript\".\n\n- [ccss](https://github.com/aeosynth/ccss) - \"CoffeeScript CSS\".\n\n## Compatibility\n\nLatest version tested with node 0.4.9 and CoffeeScript 1.1.1.\n\n## Special thanks\n\n  - [Jeremy Ashkenas](https://github.com/jashkenas), for the amazing CoffeeScript language.\n  - [why the lucky stiff](Why_the_lucky_stiff), for the inspiration.\n","maintainers":[{"name":"gradus","email":"kriswindham@gmail.com"}],"time":{"modified":"2022-06-13T06:28:05.935Z","created":"2012-02-22T02:26:25.925Z","0.3.2":"2012-02-22T02:26:26.985Z","0.3.3":"2012-02-22T02:48:14.068Z","0.3.4":"2012-02-22T02:53:54.896Z","0.3.5":"2012-02-22T23:36:11.771Z","0.3.5-1":"2012-02-24T13:29:13.161Z","0.3.5-2":"2012-02-25T21:47:08.726Z","0.3.5-3":"2012-03-06T01:14:52.197Z","0.3.6":"2012-04-01T22:56:14.260Z","0.3.7":"2012-04-02T11:39:35.091Z","0.3.8":"2012-04-02T11:50:11.462Z","0.3.9":"2012-04-14T01:10:57.600Z","0.3.10":"2012-04-15T00:23:37.250Z","0.3.11":"2012-05-07T00:40:42.779Z","0.3.12":"2012-05-18T12:42:24.262Z","0.3.13":"2012-05-26T15:01:08.719Z","0.3.14":"2012-06-04T01:16:43.889Z","0.3.15":"2012-06-29T16:43:10.316Z","0.3.16":"2012-06-30T13:40:53.001Z","0.3.17":"2012-08-17T00:01:25.567Z","0.3.18":"2012-11-09T17:26:42.717Z","0.3.19":"2013-03-23T13:34:28.663Z","0.3.20":"2013-04-15T16:12:53.943Z","0.3.21":"2013-06-19T16:47:58.503Z"},"author":{"name":"Kris Windham","email":"kriswindham@gmail.com"},"repository":{"type":"git","url":"git://github.com/gradus/coffeecup.git"},"users":{"chakrit":true}}