Add version information to bin/markdown.dart and example app
diff --git a/pkgs/markdown/.travis.yml b/pkgs/markdown/.travis.yml index 5a1bc20..d9ed98c 100644 --- a/pkgs/markdown/.travis.yml +++ b/pkgs/markdown/.travis.yml
@@ -5,6 +5,7 @@ - dev - 1.18.1 - 1.17.1 +script: tool/travis.sh matrix: allow_failures: # We need Travis to run Trusty for Dart 1.19+
diff --git a/pkgs/markdown/bin/markdown.dart b/pkgs/markdown/bin/markdown.dart index 76f68e1..b21e097 100644 --- a/pkgs/markdown/bin/markdown.dart +++ b/pkgs/markdown/bin/markdown.dart
@@ -9,6 +9,12 @@ } if (args.length == 1) { + var arg = args.first; + if (arg == '--help') usage(); + if (arg == '--version') { + print(version); + exit(0); + } // Read argument as a file path. print(markdownToHtml(new File(args[0]).readAsStringSync())); exit(0); @@ -20,3 +26,18 @@ while ((line = stdin.readLineSync()) != null) buffer.writeln(line); print(markdownToHtml(buffer.toString())); } + +usage() { + print('''Usage: + markdown [markdown file] + Convert [markdown-file] from Markdown to HTML. If no file is passed on + the commandline, then the Markdown source is read from STDIN. + + markdown --version + Print the markdown package version. + + markdown --help + Print this help text. + '''); + exit(0); +}
diff --git a/pkgs/markdown/example/app.dart b/pkgs/markdown/example/app.dart index 015a267..86814ff 100644 --- a/pkgs/markdown/example/app.dart +++ b/pkgs/markdown/example/app.dart
@@ -4,6 +4,7 @@ final markdownInput = querySelector('#markdown') as TextAreaElement; final htmlDiv = querySelector('#html') as DivElement; +final versionSpan = querySelector('.version') as SpanElement; final nullSanitizer = new NullTreeSanitizer(); const typing = const Duration(milliseconds: 150); final introText = r'''Markdown is the **best**! @@ -13,6 +14,7 @@ * It has _so much more_...'''; void main() { + versionSpan.text = 'v${md.version}'; markdownInput.onKeyUp.listen(_renderMarkdown); String savedMarkdown = window.localStorage['markdown'];
diff --git a/pkgs/markdown/example/index.html b/pkgs/markdown/example/index.html index adb95cd..5eb83fe 100644 --- a/pkgs/markdown/example/index.html +++ b/pkgs/markdown/example/index.html
@@ -13,6 +13,7 @@ <div class="toolbar"> <h2>Dart Markdown Live Editor</h2> <span style="display: flex; flex: 1;"></span> + <span class="version"></span> <a class="" href="https://github.com/dart-lang/markdown"> <svg class="octicon" height="32" version="1.1" viewBox="0 0 16 16" width="32"> <path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"></path>
diff --git a/pkgs/markdown/example/style.css b/pkgs/markdown/example/style.css index 069ff97..0131847 100644 --- a/pkgs/markdown/example/style.css +++ b/pkgs/markdown/example/style.css
@@ -22,6 +22,11 @@ margin: 32px; } +.version { + color: rgba(0, 0, 0, 0.54); + margin-right: 16px; +} + .card { /* Styled like Material Cards. */ color: rgba(0, 0, 0, 0.87);
diff --git a/pkgs/markdown/lib/markdown.dart b/pkgs/markdown/lib/markdown.dart index 0cdaab0..8b477d4 100644 --- a/pkgs/markdown/lib/markdown.dart +++ b/pkgs/markdown/lib/markdown.dart
@@ -11,3 +11,4 @@ export 'src/extension_set.dart'; export 'src/html_renderer.dart'; export 'src/inline_parser.dart'; +export 'src/version.dart';
diff --git a/pkgs/markdown/lib/src/block_parser.dart b/pkgs/markdown/lib/src/block_parser.dart index 51f2f9a..efab2a4 100644 --- a/pkgs/markdown/lib/src/block_parser.dart +++ b/pkgs/markdown/lib/src/block_parser.dart
@@ -745,7 +745,8 @@ lines[i].startsWith(_reflinkDefinitionStart); int i = 0; - loopOverDefinitions: while (true) { + loopOverDefinitions: + while (true) { // Check for reflink definitions. if (!lineStartsReflinkDefinition(i)) { // It's paragraph content from here on out.
diff --git a/pkgs/markdown/lib/src/inline_parser.dart b/pkgs/markdown/lib/src/inline_parser.dart index 3033a09..7e53666 100644 --- a/pkgs/markdown/lib/src/inline_parser.dart +++ b/pkgs/markdown/lib/src/inline_parser.dart
@@ -369,6 +369,7 @@ int offset = pattern.pattern.length - 1; return parser.source.substring(state.startPos + offset, parser.pos); } + // Reference link like [foo][bar]. if (match[1] == null) { // There are no reference brackets ("shortcut reference link"), so infer
diff --git a/pkgs/markdown/lib/src/version.dart b/pkgs/markdown/lib/src/version.dart new file mode 100644 index 0000000..14ec0d4 --- /dev/null +++ b/pkgs/markdown/lib/src/version.dart
@@ -0,0 +1,2 @@ +/// The current version of markdown. +final String version = '0.11.0+1';
diff --git a/pkgs/markdown/tool/travis.sh b/pkgs/markdown/tool/travis.sh new file mode 100755 index 0000000..33c9a51 --- /dev/null +++ b/pkgs/markdown/tool/travis.sh
@@ -0,0 +1,34 @@ +#!/bin/bash + +# Fast fail the script on failures. +set -e + +# Analyze sources. Add --fatal-hints, --fatal-warnings, --fatal-lints +# as you see fit. +dartanalyzer --strong lib/ test/ + +# Run tests. +pub run test + +# Assert that code is formatted. +pub global activate dart_style +dirty_code=$(pub global run dart_style:format --dry-run lib/ test/) +if [[ -n "$dirty_code" ]]; then + echo Unformatted files: + echo "$dirty_code" | sed 's/^/ /' + exit 1 +else + echo All Dart source files are formatted. +fi + +# Assert that versions match. +pubspec_version=$(awk '/^version:/' pubspec.yaml |cut -f2 -d' ') +bin_version=$(dart bin/markdown.dart --version ) +if [[ $pubspec_version != $bin_version ]]; then + echo Version mismatch: + echo " From pubspec.yaml: $pubspec_version" + echo " From lib/src/version.dart: $bin_version" + exit 1 +else + echo Package versions match. +fi