angel_html 1.0.0

  • Installing
  • Versions
  • 46


Pub build status

A plug-in that allows you to return html_builder AST's from request handlers, and have them sent as HTML automatically.

package:html_builder is a simple virtual DOM library (without diffing, you can find that here), with a handy Dart DSL that makes it easy to build HTML AST's:

import 'package:html_builder/elements.dart';

Node myDom = html(lang: 'en', c: [
  head(c: [
    meta(name: 'viewport', content: 'width=device-width, initial-scale=1'),
    title(c: [
      text('html_builder example page')
  body(c: [
    h1(c: [
      text('Hello world!'),

This plug-in means that you can now return these AST's, and Angel will automatically send them to clients. Ultimately, the implication is that you can use html_builder as a substitute for a templating system within Dart. With hot reloading, you won't even need to reload your server (as it should be).


In your pubspec.yaml:

  angel_html: ^1.0.0


The renderHtml function does all the magic for you.

configureServer(Angel app) async {
  // Wire it up!
  // You can pass a custom StringRenderer if you need more control over the output.
  app.before.add(renderHtml(renderer: new StringRenderer(html5: false)));
  app.get('/greet/:name', (RequestContext req) {
    return html(lang: 'en', c: [
     head(c: [
       meta(name: 'viewport', content: 'width=device-width, initial-scale=1'),
       title(c: [
     body(c: [
       h1(c: [
         text('Hello, ${req.params['id']}!'),

By default, renderHtml will ignore the client's Accept header. However, if you pass enforceAcceptHeader as true, then a 406 Not Acceptable error will be thrown if the client doesn't accept */* or text/html.

configureServer(Angel app) async {
  // Wire it up!
  app.before.add(renderHtml(enforceAcceptHeader: true));
  // ...

1. Depend on it

Add this to your package's pubspec.yaml file:

  angel_html: "^1.0.0"

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

import 'package:angel_html/angel_html.dart';
Version Uploaded Documentation Archive
1.0.0 Jul 23, 2017 Go to the documentation of angel_html 1.0.0 Download angel_html 1.0.0 archive


This feature is new.
We welcome feedback.
More details: scoring.

We analyzed this package, and provided a score, details, and suggestions below.

  • completed on Feb 3, 2018
  • Dart: 2.0.0-dev.20.0
  • pana: 0.10.1


Describes how popular the package is relative to other packages. [more]
0 / 100
Code health derived from static analysis. [more]
100 / 100
Reflects how tidy and up-to-date the package is. [more]
80 / 100
Overall score:
Weighted score of the above. [more]


Detected platforms: other

Primary library: package:angel_html/angel_html.dart with components: io, mirrors.


  • Maintain

    Changelog entries help clients to follow the progress in your code.

  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Maintain an example.

    Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use angel_html.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.19.0
angel_framework ^1.0.0 1.1.0+3
html_builder ^1.0.0 1.0.2
Transitive dependencies
angel_http_exception 1.0.0
angel_model 1.0.0
angel_route 2.0.5
async 2.0.3
body_parser 1.0.3
charcode 1.1.1
collection 1.14.5
combinator 1.0.0-beta+7
container 0.1.2
http_server 0.9.7
json_god 2.0.0-beta+1
logging 0.11.3+1
matcher 0.12.1+4
merge_map 1.0.0
meta 1.1.2
mime 0.9.6
path 1.5.1
pool 1.3.4
quiver_hashcode 1.0.0
random_string 0.0.1
source_span 1.4.0
stack_trace 1.9.1
string_scanner 1.0.2
tuple 1.0.1
Dev dependencies
angel_test ^1.0.0
html ^0.13.2
test ^0.12.0