introduce web_components pkg to replace shadow_dom, html_import, custom_element. This new package is 100% compatible with the polyfills used by http://www.polymer-project.org/

Deletes:
  pkg/shadow_dom
  pkg/custom_element (except web_ui stuff)
  pkg/html_import

Adds:
  pkg/web_components, with README.md and build instructions

Changes:
  pkg/html5lib -- deprecate queryAll/query in favor of *Selector
  pkg/polymer -- test fixes & a few small changes to work with new polyfills, mostly in build
  tests/html/custom -- can't load the CE polyfill at runtime, must now be injected statically via an HTML page, similar to the style @blois used for some custom element tests.

R=blois@google.com, sigmund@google.com

Review URL: https://codereview.chromium.org//158083002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart/pkg/third_party/html5lib@32533 260f80e4-7a28-3924-810f-c04153c831b5
4 files changed
tree: 2ff843da36c3c8a6780b57d5398b42b46cf810f5
  1. lib/
  2. test/
  3. CHANGELOG.md
  4. LICENSE
  5. pubspec.yaml
  6. README.md
README.md

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