{"_id":"562d247e26a0a10d00ad6c03","category":{"_id":"562d247b26a0a10d00ad6be7","__v":1,"pages":["562d247e26a0a10d00ad6bfc","562d247e26a0a10d00ad6bfd","562d247e26a0a10d00ad6bfe","562d247e26a0a10d00ad6bff","562d247e26a0a10d00ad6c00","562d247e26a0a10d00ad6c01","562d247e26a0a10d00ad6c02","562d247e26a0a10d00ad6c03","562d247e26a0a10d00ad6c04"],"project":"55ba86e68f4ef01900c0ae1f","version":"562d247a26a0a10d00ad6be2","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-07-30T22:45:50.984Z","from_sync":false,"order":7,"slug":"autocode-elements","title":"Hacking Autocode"},"__v":0,"user":"55ba86a810133e2b00feb6bc","version":{"_id":"562d247a26a0a10d00ad6be2","__v":10,"project":"55ba86e68f4ef01900c0ae1f","createdAt":"2015-10-25T18:50:34.678Z","releaseDate":"2015-10-25T18:50:34.678Z","categories":["562d247b26a0a10d00ad6be3","562d247b26a0a10d00ad6be4","562d247b26a0a10d00ad6be5","562d247b26a0a10d00ad6be6","562d247b26a0a10d00ad6be7","562d247b26a0a10d00ad6be8","562d247b26a0a10d00ad6be9","566f8106f11d5a0d007226fa","566fb8be1dabd80d00b1206c","566fb8c4cbb2fb0d00f7c4c0","566fb8c9e10ecb0d0004edd0","566fb8ea6995210d003aaa65","566fb8fce10ecb0d0004edd1","566fb901e10ecb0d0004edd2","566fb90e81801f0d00802d60","566fb9126995210d003aaa66"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.0.0","version":"1"},"project":"55ba86e68f4ef01900c0ae1f","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-07-30T22:53:27.574Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":7,"body":"[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Since Transformers interact directly with Crystal, they must be written in JavaScript and/or CoffeeScript.\"\n}\n[/block]\nTransformers take the output from Generators and transforms it.\n\nSome use cases include:\n\n- converting from one format to another (i.e CoffeeScript to JavaScript, JSON to XML, etc.)\n- beautifying output\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Examples\"\n}\n[/block]\nHere is a simple example of a Transformer that transforms CoffeeScript to JavaScript:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"var coffeescript = require('coffee-script');\\n\\nmodule.exports = function(cs) {\\n  var js = coffeescript.compile(cs, { bare: true });\\n  return js;\\n};\",\n      \"language\": \"javascript\",\n      \"name\": \"transformer.js\"\n    }\n  ]\n}\n[/block]","excerpt":"Transforms output before rendering.","slug":"transformers","type":"basic","title":"Transformers"}

Transformers

Transforms output before rendering.

[block:callout] { "type": "info", "body": "Since Transformers interact directly with Crystal, they must be written in JavaScript and/or CoffeeScript." } [/block] Transformers take the output from Generators and transforms it. Some use cases include: - converting from one format to another (i.e CoffeeScript to JavaScript, JSON to XML, etc.) - beautifying output [block:api-header] { "type": "basic", "title": "Examples" } [/block] Here is a simple example of a Transformer that transforms CoffeeScript to JavaScript: [block:code] { "codes": [ { "code": "var coffeescript = require('coffee-script');\n\nmodule.exports = function(cs) {\n var js = coffeescript.compile(cs, { bare: true });\n return js;\n};", "language": "javascript", "name": "transformer.js" } ] } [/block]