David Peek | f5d8473 | 2013-02-20 09:14:56 +1100 | [diff] [blame] | 1 | // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 | // for details. All rights reserved. Use of this source code is governed by a |
| 3 | // BSD-style license that can be found in the LICENSE file. |
| 4 | |
Marc Fargas | dc110ff | 2022-03-16 01:31:34 +0100 | [diff] [blame] | 5 | /// Parses text in a Markdown-like format building an |
| 6 | /// [AST tree](https://en.wikipedia.org/wiki/Abstract_syntax_tree) |
| 7 | /// that can then be rendered to HTML. |
| 8 | /// |
| 9 | /// If you are only interested in rendering Markdown to HTML please refer |
| 10 | /// to the [README](../index.html) which explains the use of [markdownToHtml()]. |
| 11 | /// |
| 12 | /// The main entrypoint to the library is the [Document] which encapsulates the |
| 13 | /// parsing process converting a Markdown text into a tree of [Node] (`List<Node>`). |
| 14 | /// |
| 15 | /// Two main parsing mechanics are used: |
| 16 | /// |
| 17 | /// - Blocks, representing top level elements like: headers, paragraphs, blockquotes, |
| 18 | /// code blocks, ... implemented via [BlockSyntax] subclasses. |
| 19 | /// - Inlines, representing chunks of text within a block with special meaning, like: |
| 20 | /// links, emphasis, inlined code, ... implemented via [InlineSyntax] subclasses. |
| 21 | /// |
| 22 | /// Looking closely at [Document.new()] a few other concepts merit a mention: |
| 23 | /// |
| 24 | /// - [ExtensionSet] that provide configurations for common Markdown flavors |
| 25 | /// - [Resolver] which aid in resolving links and images |
| 26 | /// |
| 27 | /// If you are looking at extending the library to support custom formatting |
| 28 | /// what you may want is to: |
| 29 | /// |
| 30 | /// - Implement your own [InlineSyntax] subclasses |
| 31 | /// - Implement your own [BlockSyntax] subclasses |
| 32 | /// - Instruct the library to use those by: |
| 33 | /// - Creating a new [ExtensionSet] from one of the existing flavors adding your syntaxes |
| 34 | /// - Passing your syntaxes to [Document] or [markdownToHtml()] as parameters. |
David Peek | f5d8473 | 2013-02-20 09:14:56 +1100 | [diff] [blame] | 35 | library markdown; |
| 36 | |
Kevin Moore | 95585a9 | 2018-10-08 14:02:43 -0700 | [diff] [blame] | 37 | import 'src/version.dart'; |
| 38 | |
Kevin Moore | 659e9c8 | 2014-03-06 12:38:29 -0800 | [diff] [blame] | 39 | export 'src/ast.dart'; |
| 40 | export 'src/block_parser.dart'; |
Zhiguang Chen | 90995fd | 2022-04-27 07:52:57 +0200 | [diff] [blame] | 41 | export 'src/block_syntaxes/block_html_syntax.dart'; |
| 42 | export 'src/block_syntaxes/block_syntax.dart'; |
| 43 | export 'src/block_syntaxes/block_tag_block_html_syntax.dart'; |
| 44 | export 'src/block_syntaxes/blockquote_syntax.dart'; |
| 45 | export 'src/block_syntaxes/code_block_syntax.dart'; |
| 46 | export 'src/block_syntaxes/dummy_block_syntax.dart'; |
| 47 | export 'src/block_syntaxes/empty_block_syntax.dart'; |
| 48 | export 'src/block_syntaxes/fenced_blockquote_syntax.dart'; |
| 49 | export 'src/block_syntaxes/fenced_code_block_syntax.dart'; |
| 50 | export 'src/block_syntaxes/header_syntax.dart'; |
| 51 | export 'src/block_syntaxes/header_with_id_syntax.dart'; |
| 52 | export 'src/block_syntaxes/horizontal_rule_syntax.dart'; |
| 53 | export 'src/block_syntaxes/list_syntax.dart'; |
| 54 | export 'src/block_syntaxes/long_block_html_syntax.dart'; |
| 55 | export 'src/block_syntaxes/ordered_list_syntax.dart'; |
| 56 | export 'src/block_syntaxes/other_tag_block_html_syntax.dart'; |
| 57 | export 'src/block_syntaxes/paragraph_syntax.dart'; |
| 58 | export 'src/block_syntaxes/setext_header_syntax.dart'; |
| 59 | export 'src/block_syntaxes/setext_header_with_id_syntax.dart'; |
| 60 | export 'src/block_syntaxes/table_syntax.dart'; |
| 61 | export 'src/block_syntaxes/unordered_list_syntax.dart'; |
Kevin Moore | 659e9c8 | 2014-03-06 12:38:29 -0800 | [diff] [blame] | 62 | export 'src/document.dart'; |
Valentin Vignal | 5e6bf7e | 2021-08-20 03:13:40 +0800 | [diff] [blame] | 63 | export 'src/emojis.dart'; |
Sam Rawlins | 7f825bb | 2015-09-22 15:40:32 -0700 | [diff] [blame] | 64 | export 'src/extension_set.dart'; |
Kevin Moore | 659e9c8 | 2014-03-06 12:38:29 -0800 | [diff] [blame] | 65 | export 'src/html_renderer.dart'; |
| 66 | export 'src/inline_parser.dart'; |
Zhiguang Chen | 90995fd | 2022-04-27 07:52:57 +0200 | [diff] [blame] | 67 | export 'src/inline_syntaxes/autolink_extension_syntax.dart'; |
| 68 | export 'src/inline_syntaxes/autolink_syntax.dart'; |
| 69 | export 'src/inline_syntaxes/code_syntax.dart'; |
| 70 | export 'src/inline_syntaxes/delimiter_syntax.dart'; |
| 71 | export 'src/inline_syntaxes/email_autolink_syntax.dart'; |
| 72 | export 'src/inline_syntaxes/emoji_syntax.dart'; |
| 73 | export 'src/inline_syntaxes/emphasis_syntax.dart'; |
| 74 | export 'src/inline_syntaxes/escape_syntax.dart'; |
| 75 | export 'src/inline_syntaxes/image_syntax.dart'; |
| 76 | export 'src/inline_syntaxes/inline_html_syntax.dart'; |
| 77 | export 'src/inline_syntaxes/inline_syntax.dart'; |
| 78 | export 'src/inline_syntaxes/line_break_syntax.dart'; |
| 79 | export 'src/inline_syntaxes/link_syntax.dart'; |
| 80 | export 'src/inline_syntaxes/strikethrough_syntax.dart'; |
| 81 | export 'src/inline_syntaxes/tag_syntax.dart'; |
| 82 | export 'src/inline_syntaxes/text_syntax.dart'; |
Kevin Moore | 95585a9 | 2018-10-08 14:02:43 -0700 | [diff] [blame] | 83 | |
| 84 | const version = packageVersion; |