<commit_before># LiquidNode Change History

## 0.3.1

- ADDED: New `engine.parseAndRender(input, args...)` that simplifies `engine.parse(input).then (t) -> t.render(args...)`.

## 0.3.0

- API: Tag constructor doesn't get `tokens` anymore. It will be passed to `parse` instead.
- API: Added `beforeParse` and `afterParse` hooks to allow better sharing of code.
- API: Tags can now return arrays in `render()` that will be concatenated to a string.
- API: `template.parse()` and `engine.parse()` will return a Promise now.
- API: `template.parse()` is now async-aware. Any Tag can do async parsing now.
- API: `template.render(assigns [, options])` won't accept filters as second argument anymore.
- API: Switched to `bluebird` as implementation for promises - might cause API break.
- API: Tokens passed to `parse()` are now objects instead of strings with `col`, `line` and `value`.
- API: `parse()` doesn't accept objects with a `source` property anymore.
- API: `engine.registerFilter` is now `engine.registerFilters`.
- API: `context.addFilters` is now `context.registerFilters` and now takes variadic arguments.<commit_msg>Update History<commit_after># LiquidNode Change History

## 0.3.1

- ADDED: New `engine.parseAndRender(input, args...)` that simplifies `engine.parse(input).then (t) -> t.render(args...)`.
- REFACTORING: Extracted `engine.parseToken` from `engine.parse`. (API does not break)

## 0.3.0

- API: Tag constructor doesn't get `tokens` anymore. It will be passed to `parse` instead.
- API: Added `beforeParse` and `afterParse` hooks to allow better sharing of code.
- API: Tags can now return arrays in `render()` that will be concatenated to a string.
- API: `template.parse()` and `engine.parse()` will return a Promise now.
- API: `template.parse()` is now async-aware. Any Tag can do async parsing now.
- API: `template.render(assigns [, options])` won't accept filters as second argument anymore.
- API: Switched to `bluebird` as implementation for promises - might cause API break.
- API: Tokens passed to `parse()` are now objects instead of strings with `col`, `line` and `value`.
- API: `parse()` doesn't accept objects with a `source` property anymore.
- API: `engine.registerFilter` is now `engine.registerFilters`.
- API: `context.addFilters` is now `context.registerFilters` and now takes variadic arguments.
{'fraction_non_alphanumeric': 0.12926621160409557, 'fraction_numerical': 0.005119453924914676, 'mean_word_length': 4.353881278538813, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4836054', 'n_tokens_mistral': 703, 'n_tokens_neox': 673, 'n_words': 289}