pug-php/pug-filter-coffee-script

Render CoffeeScript code as JavaScript in a script tag

1.3.1 2017-10-03 07:55 UTC

README

Latest Stable Version Build Status Code Climate Test Coverage StyleCI

This template:

body
  :coffee-script
    # Assignment:
    number   = 42
    opposite = true

    # Conditions:
    number = -42 if opposite

    # Functions:
    square = (x) -> x * x

    # Arrays:
    list = [1, 2, 3, 4, 5]

    # Objects:
    math =
      root:   Math.sqrt
      square: square
      cube:   (x) -> x * square x

    # Splats:
    race = (winner, runners...) ->
      print winner, runners

    # Existence:
    alert "I knew it!" if elvis?

    # Array comprehensions:
    cubes = (math.cube num for num in list)

will be rendered like this:

<body>
  <script type="text/javascript">
    var cubes, list, math, num, number, opposite, race, square,
    __slice = [].slice;

    number = 42;

    opposite = true;

    if (opposite) {
      number = -42;
    }

    square = function(x) {
      return x * x;
    };

    list = [1, 2, 3, 4, 5];

    math = {
      root: Math.sqrt,
      square: square,
      cube: function(x) {
        return x * square(x);
      }
    };

    race = function() {
      var runners, winner;
      winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
      return print(winner, runners);
    };

    if (typeof elvis !== "undefined" && elvis !== null) {
      alert("I knew it!");
    }

    cubes = (function() {
      var _i, _len, _results;
      _results = [];
      for (_i = 0, _len = list.length; _i < _len; _i++) {
        num = list[_i];
        _results.push(math.cube(num));
      }
      return _results;
    })();
  </script>
</body>