html5lib 0.11.0+1

html5lib in Pure Dart

This is a pure Dart html5 parser. It's a port of html5lib from Python. Since it's 100% Dart you can use it safely from a script or server side app.

Eventually the parse tree API will be compatible with dart:html, so the same code will work on the client and the server.

Installation

Add this to your pubspec.yaml (or create it):

dependencies:
  html5lib: any

Then run the Pub Package Manager (comes with the Dart SDK):

pub install

Usage

Parsing HTML is easy!

import 'package:html5lib/parser.dart' show parse;
import 'package:html5lib/dom.dart';

main() {
  var document = parse(
      '<body>Hello world! <a href="www.html5rocks.com">HTML5 rocks!');
  print(document.outerHtml);
}

You can pass a String or list of bytes to parse. There's also parseFragment for parsing a document fragment, and HtmlParser if you want more low level control.

Running Tests

# From Dart SVN checkout
./tools/build.py -m release
./tools/test.py -m release html5lib
./tools/test.py -m release -r drt html5lib

changelog

This file contains highlights of what changes on each version of the html5lib package.

Pub version 0.10.0+1

  • use a more recent source_maps version.

Pub version 0.10.0

  • fix how document fragments are added in NodeList.add/addAll/insertAll.

Pub version 0.9.2-dev

  • add Node.text, Node.append, Document.documentElement
  • add Text.data, deprecate Node.value and Text.value.
  • deprecate Node.$dom_nodeType
  • added querySelector/querySelectorAll, deprecated query/queryAll. This matches the current APIs in dart:html.

1. Depend on it

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

dependencies:
  html5lib: ">=0.11.0+1 <0.12.0"

If your package is an application package you should use any as the version constraint.

2. Install it

If you're using the Dart Editor, choose:

Menu > Tools > Pub Install

Or if you want to install from the command line, run:

$ pub install

3. Import it

Now in your Dart code, you can use:

import 'package:html5lib/dom.dart';
import 'package:html5lib/dom_parsing.dart';
import 'package:html5lib/parser.dart';
import 'package:html5lib/parser_console.dart';

About

A library for working with HTML documents.

Author

Email misc@dartlang.org Dart Team

Homepage

pub.dartlang.org/packages/html5lib

Documentation

www.dartdocs.org/documentation/html5lib/...

Uploader

jmesserly@google.com
sigmund@google.com
terry@google.com
dgrove@google.com
nweiz@google.com

Share