Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: third_party/pkg/markdown/lib/markdown.dart

Issue 189333002: pkg/docgen: update markdown to 0.5.1 (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: updates Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/docgen/pubspec.yaml ('k') | third_party/pkg/markdown/lib/src/ast.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/pkg/markdown/lib/markdown.dart
diff --git a/third_party/pkg/markdown/lib/markdown.dart b/third_party/pkg/markdown/lib/markdown.dart
index 01de970769cb40b9207ad92615fbb42c3a7e0cc7..f1274504eb1bf42de95d99f94f12ba3421b3200e 100644
--- a/third_party/pkg/markdown/lib/markdown.dart
+++ b/third_party/pkg/markdown/lib/markdown.dart
@@ -5,111 +5,8 @@
/// Parses text in a markdown-like format and renders to HTML.
library markdown;
-// TODO(rnystrom): Use "package:" URL (#4968).
-part 'src/markdown/ast.dart';
-part 'src/markdown/block_parser.dart';
-part 'src/markdown/html_renderer.dart';
-part 'src/markdown/inline_parser.dart';
-
-typedef Node Resolver(String name);
-
-/// Converts the given string of markdown to HTML.
-String markdownToHtml(String markdown, {inlineSyntaxes, linkResolver}) {
- final document = new Document(inlineSyntaxes: inlineSyntaxes,
- linkResolver: linkResolver);
-
- // Replace windows line endings with unix line endings, and split.
- final lines = markdown.replaceAll('\r\n','\n').split('\n');
- document.parseRefLinks(lines);
- final blocks = document.parseLines(lines);
- return renderToHtml(blocks);
-}
-
-/// Replaces `<`, `&`, and `>`, with their HTML entity equivalents.
-String escapeHtml(String html) {
- return html.replaceAll('&', '&amp;')
- .replaceAll('<', '&lt;')
- .replaceAll('>', '&gt;');
-}
-
-/// Maintains the context needed to parse a markdown document.
-class Document {
- final Map<String, Link> refLinks;
- List<InlineSyntax> inlineSyntaxes;
- Resolver linkResolver;
-
- Document({this.inlineSyntaxes, this.linkResolver})
- : refLinks = <String, Link>{};
-
- parseRefLinks(List<String> lines) {
- // This is a hideous regex. It matches:
- // [id]: http:foo.com "some title"
- // Where there may whitespace in there, and where the title may be in
- // single quotes, double quotes, or parentheses.
- final indent = r'^[ ]{0,3}'; // Leading indentation.
- final id = r'\[([^\]]+)\]'; // Reference id in [brackets].
- final quote = r'"[^"]+"'; // Title in "double quotes".
- final apos = r"'[^']+'"; // Title in 'single quotes'.
- final paren = r"\([^)]+\)"; // Title in (parentheses).
- final pattern = new RegExp(
- '$indent$id:\\s+(\\S+)\\s*($quote|$apos|$paren|)\\s*\$');
-
- for (int i = 0; i < lines.length; i++) {
- final match = pattern.firstMatch(lines[i]);
- if (match != null) {
- // Parse the link.
- var id = match[1];
- var url = match[2];
- var title = match[3];
-
- if (title == '') {
- // No title.
- title = null;
- } else {
- // Remove "", '', or ().
- title = title.substring(1, title.length - 1);
- }
-
- // References are case-insensitive.
- id = id.toLowerCase();
-
- refLinks[id] = new Link(id, url, title);
-
- // Remove it from the output. We replace it with a blank line which will
- // get consumed by later processing.
- lines[i] = '';
- }
- }
- }
-
- /// Parse the given [lines] of markdown to a series of AST nodes.
- List<Node> parseLines(List<String> lines) {
- final parser = new BlockParser(lines, this);
-
- final blocks = [];
- while (!parser.isDone) {
- for (final syntax in BlockSyntax.syntaxes) {
- if (syntax.canParse(parser)) {
- final block = syntax.parse(parser);
- if (block != null) blocks.add(block);
- break;
- }
- }
- }
-
- return blocks;
- }
-
- /// Takes a string of raw text and processes all inline markdown tags,
- /// returning a list of AST nodes. For example, given ``"*this **is** a*
- /// `markdown`"``, returns:
- /// `<em>this <strong>is</strong> a</em> <code>markdown</code>`.
- List<Node> parseInline(String text) => new InlineParser(text, this).parse();
-}
-
-class Link {
- final String id;
- final String url;
- final String title;
- Link(this.id, this.url, this.title);
-}
+export 'src/ast.dart';
+export 'src/block_parser.dart';
+export 'src/document.dart';
+export 'src/html_renderer.dart';
+export 'src/inline_parser.dart';
« no previous file with comments | « pkg/docgen/pubspec.yaml ('k') | third_party/pkg/markdown/lib/src/ast.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698