2021-09-13 00:30:02 +00:00
|
|
|
# Jael Ppreprocessor
|
|
|
|
|
|
|
|
[![version](https://img.shields.io/badge/pub-v4.0.1-brightgreen)](https://pub.dev/packages/jael3_preprocessor)
|
2021-05-15 10:28:09 +00:00
|
|
|
[![Null Safety](https://img.shields.io/badge/null-safety-brightgreen)](https://dart.dev/null-safety)
|
|
|
|
[![Gitter](https://img.shields.io/gitter/room/angel_dart/discussion)](https://gitter.im/angel_dart/discussion)
|
2021-09-13 00:30:02 +00:00
|
|
|
[![License](https://img.shields.io/github/license/dart-backend/belatuk-common-utilities)](https://github.com/dukefirehawk/angel/tree/angel3/packages/jael/jael_preprocessor/LICENSE)
|
2021-05-15 10:28:09 +00:00
|
|
|
|
2021-09-13 00:30:02 +00:00
|
|
|
A pre-processor for resolving blocks and includes within [Jael 3](https://github.com/dukefirehawk/angel/tree/angel3/packages/jael/jael) templates.
|
2017-10-02 15:46:00 +00:00
|
|
|
|
2021-09-13 00:30:02 +00:00
|
|
|
## Installation
|
2017-10-02 15:46:00 +00:00
|
|
|
|
|
|
|
In your `pubspec.yaml`:
|
|
|
|
|
|
|
|
```yaml
|
|
|
|
dependencies:
|
2021-09-13 00:30:02 +00:00
|
|
|
jael3_prepreprocessor: ^4.1.0
|
2017-10-02 15:46:00 +00:00
|
|
|
```
|
|
|
|
|
2021-09-13 00:30:02 +00:00
|
|
|
## Usage
|
|
|
|
|
2017-10-02 15:46:00 +00:00
|
|
|
It is unlikely that you will directly use this package, as it is
|
|
|
|
more of an implementation detail than a requirement. However, it
|
|
|
|
is responsible for handling `include` and `block` directives
|
|
|
|
(template inheritance), so you are a package maintainer and want
|
|
|
|
to support Jael, read on.
|
|
|
|
|
|
|
|
To keep things simple, just use the `resolve` function, which will
|
|
|
|
take care of inheritance for you.
|
|
|
|
|
|
|
|
```dart
|
2021-05-15 10:28:09 +00:00
|
|
|
import 'package:jael3_preprocessor/jael3_preprocessor.dart' as jael;
|
2017-10-02 15:46:00 +00:00
|
|
|
|
|
|
|
myFunction() async {
|
|
|
|
var doc = await parseTemplateSomehow();
|
|
|
|
var resolved = await jael.resolve(doc, dir, onError: (e) => doSomething());
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
You may occasionally need to manually patch in functionality that is not
|
|
|
|
available through the official Jael packages. To achieve this, simply
|
|
|
|
provide an `Iterable` of `Patcher` functions:
|
|
|
|
|
|
|
|
```dart
|
|
|
|
myOtherFunction(jael.Document doc) {
|
|
|
|
return jael.resolve(doc, dir, onError: errorHandler, patch: [
|
|
|
|
syntactic(),
|
|
|
|
sugar(),
|
|
|
|
etc(),
|
|
|
|
]);
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
2021-09-13 00:30:02 +00:00
|
|
|
**This package uses `package:file`, rather than `dart:io`.**
|