README, CHANGELOG

This commit is contained in:
Tobe O 2018-04-03 11:29:35 -04:00
parent b8f2888c7d
commit f8fd0e0a0a
7 changed files with 92 additions and 14 deletions

View file

@ -12,4 +12,5 @@ pubspec.lock
# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/
.dart_tool
.dart_tool
*.html

2
build_jael/CHANGELOG.md Normal file
View file

@ -0,0 +1,2 @@
# 1.0.0
* Initial version.

44
build_jael/README.md Normal file
View file

@ -0,0 +1,44 @@
# build_jael
[![Pub](https://img.shields.io/pub/v/build_jael.svg)](https://pub.dartlang.org/packages/build_jael)
[![build status](https://travis-ci.org/angel-dart/jael.svg)](https://travis-ci.org/angel-dart/jael)
Compile Jael files to HTML using the power of `package:build`.
# Installation
In your `pubspec.yaml`:
```yaml
dependencies:
build_jael: ^1.0.0
dev_dependencies:
build_runner: ^0.7.0
```
# Usage
You can run `pub run build_runner serve` to incrementally build Jael templates,
and run an HTTP server.
For further customization, you'll need to either modify the `build.yaml` or
instantiate a `JaelBuilder` manually.
## Defining Variables
Pass variables as `config` in `build.yaml`:
```yaml
targets:
$default:
builders:
build_jael:
config:
foo: bar
baz: quux
one: 1.0
```
## Minifying HTML
Pass `minify: true` in the build configuration to produce "minified" HTML,
without newlines or whitespace (other than where it is required).
To apply additional transforms to parsed documents, provide a
set of `patch` functions, like in `package:jael_preprocessor`.

View file

@ -9,15 +9,10 @@ builders:
.jl:
- ".html"
required_inputs:
- .jl
defaults:
generate_for:
- "**/*.html"
- "*.html"
- "**.html"
- ".jl"
targets:
$default:
sources:
- "**/*.html"
- "*.html"
- "**.html"
- "**.jl"
- "*.jl"
- "**/*.jl"

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<title>Hello, world!</title>
</head>
<body>
<h1>Hello!</h1>
<script>
window.alert('Welcome to Jael!');
</script>
</body>
</html>

View file

@ -3,12 +3,16 @@ import 'package:build/build.dart';
import 'package:code_buffer/code_buffer.dart';
import 'package:file/file.dart';
import 'package:jael/jael.dart' as jael;
import 'package:jael_preprocessor/jael_preprocessor.dart';
import 'package:jael_preprocessor/jael_preprocessor.dart' as jael;
import 'package:symbol_table/symbol_table.dart';
Builder jaelBuilder(BuilderOptions options) => new JaelBuilder(options);
class JaelBuilder implements Builder {
final BuilderOptions options;
final List<jael.Patcher> patch;
const JaelBuilder(this.options);
const JaelBuilder(this.options, {this.patch: const []});
@override
Map<String, List<String>> get buildExtensions {
@ -36,6 +40,24 @@ class JaelBuilder implements Builder {
onError: errors.add,
);
if (errors.isNotEmpty) {}
doc = await jael.resolve(
doc,
dir,
onError: errors.add,
patch: this.patch,
);
if (errors.isNotEmpty) {
jael.Renderer.errorDocument(errors, buf);
return;
}
var scope = new SymbolTable(values: new Map.from(options.config));
const jael.Renderer().render(doc, buf, scope);
buildStep.writeAsString(
buildStep.inputId.changeExtension('.html'),
buf.toString(),
);
}
}

View file

@ -12,4 +12,6 @@ dependencies:
file: ^2.0.0
jael: ^1.0.0-alpha
jael_preprocessor: ^1.0.0-alpha
symbol_table: ^1.0.0
symbol_table: ^1.0.0
dev_dependencies:
build_runner: ^0.7.0