| Index: lib/src/analyzer.dart
|
| diff --git a/lib/src/analyzer.dart b/lib/src/analyzer.dart
|
| index 2d14c0033bf43a48ac1b3db94aeaaba4889439ab..4e48f4389dee9e6e89462b8a6fc851e865c321b4 100644
|
| --- a/lib/src/analyzer.dart
|
| +++ b/lib/src/analyzer.dart
|
| @@ -8,6 +8,7 @@
|
| */
|
| library analyzer;
|
|
|
| +import 'dart:uri';
|
| import 'package:html5lib/dom.dart';
|
| import 'package:html5lib/dom_parsing.dart';
|
| import 'package:source_maps/span.dart';
|
| @@ -119,18 +120,6 @@ class _Analyzer extends TreeVisitor {
|
| info = new ElementInfo(node, parent);
|
| }
|
|
|
| - // TODO(terry): How to handle <link rel="stylesheet" href="...">
|
| - // - What if multiple stylesheet links for a component?
|
| - // - What if a stylesheet link for all component and particular
|
| - // stylesheet links for each component?
|
| - // - What if multiple <style> tags for the same component?
|
| - if (node.tagName == 'style' && node.attributes.containsKey("scoped")) {
|
| - // TODO(terry): Faster to parse the CSS tags separately instead of
|
| - // concatenating all styles.
|
| - // Get contents of style tag.
|
| - _currentInfo.cssSource.write(node.nodes.single.value);
|
| - }
|
| -
|
| visitElementInfo(info);
|
|
|
| if (_parent == null) {
|
| @@ -760,7 +749,8 @@ class _ElementLoader extends TreeVisitor {
|
| void visitLinkElement(Element node) {
|
| // TODO(jmesserly): deprecate the plural form, it is singular in the spec.
|
| var rel = node.attributes['rel'];
|
| - if (rel != 'component' && rel != 'components') return;
|
| + if (rel != 'component' && rel != 'components' &&
|
| + rel != 'stylesheet') return;
|
|
|
| if (!_inHead) {
|
| _messages.warning('link rel="$rel" only valid in '
|
| @@ -782,7 +772,16 @@ class _ElementLoader extends TreeVisitor {
|
| path = _fileInfo.path.directoryPath.join(new Path(href));
|
| }
|
|
|
| - _fileInfo.componentLinks.add(path);
|
| + if (rel == 'component' || rel == 'components') {
|
| + _fileInfo.componentLinks.add(path);
|
| + } else {
|
| + assert(rel == 'stylesheet');
|
| + // Local stylesheets only are handled.
|
| + var scheme = Uri.parse(href).scheme;
|
| + if (scheme != 'http' && scheme != 'https') {
|
| + _fileInfo.styleSheetHref.add(path);
|
| + }
|
| + }
|
| }
|
|
|
| void visitElementElement(Element node) {
|
|
|