# twig-lexer

> > A lossless Twig lexer

Latest version **1.0.0** (published 2024-04-17) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install twig-lexer
pnpm add twig-lexer
yarn add twig-lexer
bun add twig-lexer
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; esm support; no vulnerabilities.

Warnings: low downloads.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2024-04-17 |
| First published | 2019-06-13 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 81.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Eric MORAND |
| Maintainers | ericmorand |
| Keywords | twig |

## Links

- npm: https://www.npmjs.com/package/twig-lexer
- Repository: https://gitlab.com/nightlycommit/twig-lexer
- Homepage: https://gitlab.com/nightlycommit/twig-lexer#readme
- Issues: https://gitlab.com/nightlycommit/twig-lexer/-/issues
- npm.io page: https://npm.io/package/twig-lexer

## Recent versions

- 1.0.0 (latest) — 2024-04-17
- 0.9.2 — 2024-04-17
- 0.9.1 — 2023-12-03
- 0.9.0 — 2023-12-03
- 0.8.0 — 2023-11-24
- 0.7.2 — 2020-04-19
- 0.7.1 — 2020-04-19
- 0.7.0 — 2019-10-07
- 0.6.3 — 2019-09-25
- 0.6.2 — 2019-09-25
- 0.6.1 — 2019-09-25
- 0.6.0 — 2019-09-25
- 0.5.0 — 2019-07-31
- 0.4.0 — 2019-07-11
- 0.3.0 — 2019-06-25
- … 4 more at https://npm.io/package/twig-lexer/versions

## README

# 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

---
_Source: https://npm.io/package/twig-lexer · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
