platform/packages/jael/jael/README.md

54 lines
1.5 KiB
Markdown
Raw Normal View History

# Jael 3
2021-09-25 06:32:32 +00:00
![Pub Version (including pre-releases)](https://img.shields.io/pub/v/jael3?include_prereleases)
2021-05-15 09:38:15 +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)
2023-12-25 03:45:10 +00:00
[![License](https://img.shields.io/github/license/dart-backend/angel)](https://github.com/dart-backend/angel/tree/master/packages/jael/jael/LICENSE)
2017-09-29 22:39:37 +00:00
A simple server-side HTML templating engine for Dart.
2021-09-25 06:32:32 +00:00
[See documentation.](https://angel3-docs.dukefirehawk.com/packages/front-end/jael)
2017-09-29 22:39:37 +00:00
## Installation
2017-09-29 22:39:37 +00:00
In your `pubspec.yaml`:
```yaml
dependencies:
2023-05-26 22:58:32 +00:00
jael3: ^8.0.0
2017-09-29 22:39:37 +00:00
```
## API
The core `jael3` package exports classes for parsing Jael templates, an AST library, and a `Renderer` class that generates HTML on-the-fly.
2017-09-29 22:39:37 +00:00
```dart
2021-12-30 01:44:26 +00:00
import 'package:belatuk_code_buffer/belatuk_code_buffer.dart';
import 'package:belatuk_symbol_table/belatuk_symbol_table.dart';
import 'package:jael3/jael3.dart' as jael;
2017-09-29 22:39:37 +00:00
void myFunction() {
const template = '''
<html>
<body>
<h1>Hello</h1>
<img src=profile['avatar']>
</body>
</html>
''';
2019-07-29 22:12:52 +00:00
var buf = CodeBuffer();
2019-07-29 22:01:24 +00:00
var document = jael.parseDocument(template, sourceUrl: 'test.jael', asDSX: false);
2019-07-29 22:12:52 +00:00
var scope = SymbolTable(values: {
2017-09-29 22:39:37 +00:00
'profile': {
'avatar': 'thosakwe.png',
}
});
const jael.Renderer().render(document, buf, scope);
print(buf);
}
```
2021-09-25 06:32:32 +00:00
Pre-processing (i.e. handling of blocks and includes) is handled by `package:jael3_preprocessor.`.