Merge pull request dart-lang/markdown#94 from srawlins/shortcut-reference-links
Support shortuct reference links and images
diff --git a/pkgs/markdown/lib/src/block_parser.dart b/pkgs/markdown/lib/src/block_parser.dart
index aa82149..566a9d6 100644
--- a/pkgs/markdown/lib/src/block_parser.dart
+++ b/pkgs/markdown/lib/src/block_parser.dart
@@ -268,6 +268,8 @@
class CodeBlockSyntax extends BlockSyntax {
RegExp get pattern => _indentPattern;
+ bool get canEndBlock => false;
+
const CodeBlockSyntax();
List<String> parseChildLines(BlockParser parser) {
diff --git a/pkgs/markdown/test/original/paragraphs.unit b/pkgs/markdown/test/original/paragraphs.unit
index f725b62..b4bb334 100644
--- a/pkgs/markdown/test/original/paragraphs.unit
+++ b/pkgs/markdown/test/original/paragraphs.unit
@@ -48,3 +48,10 @@
<<<
<p>line1</p>
<p>line2</p>
+>>> cannot be terminated by indented code blocks
+para
+ not code
+
+<<<
+<p>para
+ not code</p>
diff --git a/pkgs/markdown/tool/common_mark_stats.dart b/pkgs/markdown/tool/common_mark_stats.dart
index 87c8039..454b247 100644
--- a/pkgs/markdown/tool/common_mark_stats.dart
+++ b/pkgs/markdown/tool/common_mark_stats.dart
@@ -21,12 +21,15 @@
void main(List<String> args) {
var raw = args.any((s) => s == '--raw');
+ var verbose = args.any((s) => s == '--verbose');
var sections = loadCommonMarkSections();
var scores = new SplayTreeMap<String, SplayTreeMap<int, bool>>(
compareAsciiLowerCaseNatural);
+ String indent(String s) => s.splitMapJoin('\n', onNonMatch: (n) => ' $n');
+
sections.forEach((section, examples) {
for (var e in examples) {
var output;
@@ -43,6 +46,16 @@
var expected = parseFragment(e.html);
var actual = parseFragment(output);
nestedMap[e.example] = compareHtml(expected.children, actual.children);
+ if (verbose && !nestedMap[e.example]) {
+ print('FAIL');
+ print('input:');
+ print(indent(e.markdown));
+ print('expected:');
+ print(indent(expected.outerHtml));
+ print('actual:');
+ print(indent(actual.outerHtml));
+ print('-----------------------');
+ }
}
});