{"_id":"@codelenny/blade-interpolated-coffee","_rev":"2-7785ccaf24d313ec2b7345c5aae6d867","name":"@codelenny/blade-interpolated-coffee","description":"A Blade filter that allows interpolation inside CoffeeScript snippets.","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@codelenny/blade-interpolated-coffee","version":"0.1.0","description":"A Blade filter that allows interpolation inside CoffeeScript snippets.","main":"interpolated-coffeescript.js","scripts":{"test":"mocha --compilers coffee:coffee-script/register","build":"coffee --compile interpolated-coffeescript.coffee"},"repository":{"type":"git","url":"git+https://github.com/CodeLenny/blade-interpolated-coffee.git"},"author":{"name":"Ryan Leonard","url":"http://ryanleonard.us"},"license":"MIT","bugs":{"url":"https://github.com/CodeLenny/blade-interpolated-coffee/issues"},"homepage":"https://github.com/CodeLenny/blade-interpolated-coffee#readme","dependencies":{"coffee-script":"^1.12.3"},"devDependencies":{"chai":"^3.5.0","mocha":"^3.2.0"},"gitHead":"001511e42bc56a32047c04f0752dd8fadd1cb49a","_id":"@codelenny/blade-interpolated-coffee@0.1.0","_shasum":"f7c1cc52122445bde0e4bf7ed8dd5a2b373dfb73","_from":".","_npmVersion":"3.9.6","_nodeVersion":"5.8.0","_npmUser":{"name":"codelenny","email":"rhinoisnot@gmail.com"},"dist":{"shasum":"f7c1cc52122445bde0e4bf7ed8dd5a2b373dfb73","tarball":"https://registry.npmjs.org/@codelenny/blade-interpolated-coffee/-/blade-interpolated-coffee-0.1.0.tgz","integrity":"sha512-qeoiocf5rrfrapHoQxbJ+c5JzCMwAg5QLnAot8QwK6nY/T8lvMijkVOPEiZSyCzv3WQe+K/GaBwVVsnYw94mvQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFX3caOLIYOZ9G+wWWpEDMDi/0dQg/nmswb3OTDOxGRUAiEA7RsFYC9qOLbCTCBN15JTs+5xSaqtY+sJG/OujDeW9X0="}]},"maintainers":[{"name":"codelenny","email":"rhinoisnot@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/blade-interpolated-coffee-0.1.0.tgz_1487021858810_0.639316491317004"}}},"readme":"# Interpolated [CoffeeScript][] Filter for [Blade][]\n\n[![npm (scoped)](https://img.shields.io/npm/v/@codelenny/blade-interpolated-coffee.svg)](https://www.npmjs.com/package/@codelenny/blade-interpolated-coffee)\n[![Build Status](https://travis-ci.org/CodeLenny/blade-interpolated-coffee.svg?branch=master)](https://travis-ci.org/CodeLenny/blade-interpolated-coffee)\n\nWhy have one layer of variable insertion, when you could have twice the complexity?\n\nThe regular `:coffeescript` filter for Blade keeps `#{}` as the standard CoffeeScript interpolation, but doesn't let you\nuse Blade variables in CoffeeScript snippets.  `blade-interpolated-coffee` allows you to use `${}` (or another symbol)\nto insert Blade variables into the block code.\n\n```blade\n- var url = \"/\";\n:interpolatedcoffee\n  i = 0\n  console.log \"i for '${url}' is #{i}\"\n```\n\nCould produce the following HTML:\n\n```html\n<script type=\"text/javascript\">\n  var i = 0;\n  console.log(\"i for '/' is \"+i);\n</script>\n```\n\n## Installation\n\n```sh\nnpm install @codelenny/blade-interpolated-coffee\n```\n\n```coffee\ninterpolatedCoffeeScript = require \"@codelenny/blade-interpolated-coffee\"\nblade = require \"blade\"\n\nblade.compile src,\n    filters:\n      interpolatedcoffee: interpolatedCoffeeScript\n  , (err, html) -> # ...\n```\n\n## Customization\n\n### Raw Filter\n\nDon't want to have `<script type=\"text/javascript\">` automatically inserted?\nA raw mode is built in to the filter.\n\n```coffee\ninterpolatedCoffeeScript = require \"@codelenny/blade-interpolated-coffee\"\n\nopts =\n  filters:\n    \"$cs\": interpolatedCoffeeScript\n    \"$cs.raw\": interpolatedCoffeeScript.raw\n```\n\n```blade\nscript#main(data-i=\"0\")\n  :$cs.raw\n    # ...\n```\n\n### Change `${}`\n\nblade-interpolated-coffee ships with `${}` as the default interpolation marker.  However, you can use another marker:\n  \n```coffee\ninterpolatedCoffeeScript = require \"@codelenny/blade-interpolated-coffee\"\nmyFilter = interpolatedCoffeeScript.custom /@\\{/g\nopts =\n  filters:\n    \"$cs\": myFilter\n    \"$cs.raw\": myFilter.raw\n```\n\n`custom` takes two arguments: `needle` and `haystack`.\n\nWhen blade-interpolated-coffee is given the contents of the text block, it passes the block to CoffeeScript\n(which interpolates uses of `#{}` with variables in the runtime scope).\n\n\nThen all instances of `needle` are replaced with `haystack`, and the resulting string is passed to Blade.\nBlade will interpolate all inserted cases of `#{}` with variables in Blade's scope.\n\nThe marker could easily be changed by searching for `/@\\{/g` as the needle, or more complex patterns can be created\nusing both the needle and haystack, such as making sure that only single variables are interpolated.\n\n```coffeescript\ncomplexFilter = interpolatedCoffeeScript.custom /\\$\\{([a-zA-Z_\\s]+)\\}/g, \"\\#{$1}\"\n```\n\n[CoffeeScript]: http://coffeescript.org/\n[Blade]: https://github.com/bminer/node-blade\n","maintainers":[{"name":"codelenny","email":"rhinoisnot@gmail.com"}],"time":{"modified":"2022-06-12T16:20:20.537Z","created":"2017-02-13T21:37:39.418Z","0.1.0":"2017-02-13T21:37:39.418Z"},"homepage":"https://github.com/CodeLenny/blade-interpolated-coffee#readme","repository":{"type":"git","url":"git+https://github.com/CodeLenny/blade-interpolated-coffee.git"},"author":{"name":"Ryan Leonard","url":"http://ryanleonard.us"},"bugs":{"url":"https://github.com/CodeLenny/blade-interpolated-coffee/issues"},"license":"MIT","readmeFilename":"README.md"}