A lossless Twig lexer
npm install twig-lexer --save-dev
import {TwigLexer} from 'twig-lexer';
let lexer = new TwigLexer();
let tokens = lexer.tokenize('Hello {{world}}!');
Read the documentation for more information.
As incredible as it sounds, Twig is a language with no official specifications - even internally at SensioLabs, it seems. As such, it is subject to interpretations and twig-lexer is one of them. It's very close to TwigPHP lexer (and as such implements things like the operator confusion) but also outputs some token types that are not output by TwigPHP lexer - like OPENING_QUOTE
or WHITESPACE
- or with different names - like TAG_START
instead of BLOCK_START
.
When (if) official specifications are available, twig-lexer will be updated to match them.
- Fork this repository
- Code
- Implement tests using tape
- Issue a pull request keeping in mind that all pull requests must reference an issue in the issue queue
The test suite can be run by executing the native test
npm script:
npm test
This project adheres to a strict 100% code coverage policy. Code coverage can be checked by executing the cover
npm script:
npm run cover
The documentation can be generated by executing the build:doc
npm script:
npm run build:doc
This is usually not needed as the doc will be generated on every new release.
Apache-2.0 © Eric MORAND