platform/jael/README.md

51 lines
1.2 KiB
Markdown
Raw Normal View History

2017-09-29 22:39:37 +00:00
# jael
[![Pub](https://img.shields.io/pub/v/jael.svg)](https://pub.dartlang.org/packages/jael)
[![build status](https://travis-ci.org/angel-dart/jael.svg)](https://travis-ci.org/angel-dart/jael)
A simple server-side HTML templating engine for Dart.
2019-07-29 22:01:24 +00:00
[See documentation.](https://docs.angel-dart.dev/packages/front-end/jael)
2017-09-29 22:39:37 +00:00
# Installation
In your `pubspec.yaml`:
```yaml
dependencies:
2018-11-11 01:54:34 +00:00
jael: ^2.0.0
2017-09-29 22:39:37 +00:00
```
# API
The core `jael` package exports classes for parsing Jael templates,
an AST library, and a `Renderer` class that generates HTML on-the-fly.
```dart
import 'package:code_buffer/code_buffer.dart';
import 'package:jael/jael.dart' as jael;
import 'package:symbol_table/symbol_table.dart';
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);
}
```
Pre-processing (i.e. handling of blocks and includes) is handled
2018-11-11 01:54:14 +00:00
by `package:jael_preprocessor.`.