UNPKG

twig-lexer

Version:
40 lines (25 loc) 1.67 kB
# twig-lexer [![NPM version][npm-image]][npm-url] [![Build Status][build-image]][build-url] [![Coverage percentage][coveralls-image]][coveralls-url] > A lossless Twig lexer ## Installation ```shell npm install twig-lexer --save-dev ``` ## Usage ```typescript import {TwigLexer} from 'twig-lexer'; let lexer = new TwigLexer(); let tokens = lexer.tokenize('Hello {{world}}!'); ``` ## API Read the [documentation](https://nightlycommit.github.io/twig-lexer) for more information. ## About Twig specifications - or lack thereof As incredible as it sounds, Twig is a language with no official specifications - even internally at SensioLabs, [it seems](https://github.com/twigphp/Twig/issues/3066#issuecomment-502672166). 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](https://github.com/twigphp/Twig/issues/3066)) 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. ## License Apache-2.0 © [Eric MORAND]() [npm-image]: https://badge.fury.io/js/twig-lexer.svg [npm-url]: https://npmjs.org/package/twig-lexer [build-image]: https://gitlab.com/nightlycommit/twig-lexer/badges/master/pipeline.svg [build-url]: https://gitlab.com/nightlycommit/twig-lexer/-/pipelines [coveralls-image]: https://coveralls.io/repos/gitlab/nightlycommit/twig-lexer/badge.svg [coveralls-url]: https://coveralls.io/gitlab/nightlycommit/twig-lexer