-
Notifications
You must be signed in to change notification settings - Fork 276
Compiling Templates
Twig.js templates can be compiled into output JS files through the twigjs command. Currently the output is a tokenized form of the template, but in future the template will be transformed into a JavaScript file.
The syntax for the twigjs command is:
twigjs [options] input.twig | directory ...
_______________________________________________________________________________
twigjs can take a list of files and/or a directories as input. If a file is
provided, it is compiled, if a directory is provided, all files matching *.twig
in the directory are compiled. The pattern can be overridden with --pattern
--help Print this help message.
--output ... What directory should twigjs output to. By default twigjs will
write to the same directory as the input file.
--module ... Should the output be written in module format. Supported formats:
node: Node.js / CommonJS 1.1 modules
amd: RequireJS / Asynchronous modules (requires --twig)
cjs2: CommonJS 2.0 draft8 modules (requires --twig)
--twig ... Used with --module. The location relative to the output directory
of twig.js. (used for module dependency resolution).
--pattern ... If parsing a directory of files, what files should be compiled.
Defaults to *.twig.
To transform a directory of twig files into a directory of js files to include using script tags, you can use the following command:
twigjs --output templates/ src/
This will take all *.twig files in the src/
directory and it's subdirectories and output them into the templates
directory following the same directory structure and adding .js
to the filenames.
See the demos/compiler/basic
demo for a usage example.
To create JS template files that can be included in Node.js with require
you can specify the output module format with the --module
flag.
twigjs --module node --output templates/ src/
This will output JS template files that export the Twig template so you can use it with:
var template = require("./templates/block.twig").template;
Note that these template are compliant with the CommonJS Modules/1.1 spec, so they can be used in any environment which support such modules. The only requirement is that require("twig")
resolves to the Twig.js library.
See the demos/compiler/node
demo for a usage example.