🚨 Shai-Hulud Strikes Again:834 Packages Compromised.Technical Analysis →
Socket
Book a DemoInstallSign in
Socket

cirru-html-js

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cirru-html-js

Convert Cirru HTML to JavaScript

latest
Source
npmnpm
Version
0.0.9
Version published
Maintainers
1
Created
Source

Cirru HTML .js

Compile Cirru HTML into JavaScript template function.

Usage

This project is related to Cirru HTML which compiles Cirru to HTML. This project compiles it to JavaScript instead.

They are sharing similar syntaxes on writing HTML.

Syntax:

  • Jade-like(CSS Selectors) syntax for tags(with class and id)
  • (:a b) syntax for a="b"
  • tokens start with @ are controllers
  • (= a) to render a as text
  • (== a) to render a as html

... and grammars inherited from Cirru Grammar.

Controllers:

  • (@ a) to get a from resource
  • (@if cond a b) for conditions, b is optional
  • (@unless cond a b) for conditions, b is optional
  • (@rich a b) to use a.length>0 as condition
  • (@each xs a) for rendering a in list xs
  • (@call a b c) for running a(a,b)
  • (@block a b c) wrap a b c in a block
npm i --save-dev cirru-html-js

For such a demo, it compiles to:

{render} = require 'cirru-html-js'
render '@if (@ a) (div b)'
(function(resource, call){
  var html;
  if(resource['a']){html+='<div>b</div>';}
  return html;
})

...where resource is data passed to render. call is an object of methods that maybe useful in template.

Tests

cd tests
coffee make.coffee test-compile # run performance tests on compiling
coffee make.coffee compile # just compile code
coffee make.coffee test-run # run performance tests on templating

Comparing to doT, Cirru HTML.js takes about 3 times of time to compile and run.

ChangeLog

  • 0.0.9

    • Replace for with while for performance
  • 0.0.8

    • Add error messages and tests
  • 0.0.7

    • Add @block
  • 0.0.5

    • Fix condition syntax is @unless
  • 0.0.4

    • More flexible attribute values

License

MIT

Keywords

cirru

FAQs

Package last updated on 28 Aug 2014

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts