blob: de6792dd78a41b343295b186d9f10fa4b7d6df8c [file] [log] [blame]
David Peekf5d84732013-02-20 09:14:56 +11001// 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 Fargasdc110ff2022-03-16 01:31:34 +01005/// 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 Peekf5d84732013-02-20 09:14:56 +110035library markdown;
36
Kevin Moore95585a92018-10-08 14:02:43 -070037import 'src/version.dart';
38
Kevin Moore659e9c82014-03-06 12:38:29 -080039export 'src/ast.dart';
40export 'src/block_parser.dart';
Zhiguang Chen90995fd2022-04-27 07:52:57 +020041export 'src/block_syntaxes/block_html_syntax.dart';
42export 'src/block_syntaxes/block_syntax.dart';
Zhiguang Chen90995fd2022-04-27 07:52:57 +020043export 'src/block_syntaxes/blockquote_syntax.dart';
44export 'src/block_syntaxes/code_block_syntax.dart';
45export 'src/block_syntaxes/dummy_block_syntax.dart';
46export 'src/block_syntaxes/empty_block_syntax.dart';
47export 'src/block_syntaxes/fenced_blockquote_syntax.dart';
48export 'src/block_syntaxes/fenced_code_block_syntax.dart';
49export 'src/block_syntaxes/header_syntax.dart';
50export 'src/block_syntaxes/header_with_id_syntax.dart';
51export 'src/block_syntaxes/horizontal_rule_syntax.dart';
Zhiguang Chen5713b502022-09-30 21:35:54 +020052export 'src/block_syntaxes/html_block_syntax.dart';
Zhiguang Chen90995fd2022-04-27 07:52:57 +020053export 'src/block_syntaxes/list_syntax.dart';
Zhiguang Chen90995fd2022-04-27 07:52:57 +020054export 'src/block_syntaxes/ordered_list_syntax.dart';
Tim Maffett73ad99e2022-06-09 08:27:28 -070055export 'src/block_syntaxes/ordered_list_with_checkbox_syntax.dart';
Zhiguang Chen90995fd2022-04-27 07:52:57 +020056export 'src/block_syntaxes/paragraph_syntax.dart';
57export 'src/block_syntaxes/setext_header_syntax.dart';
58export 'src/block_syntaxes/setext_header_with_id_syntax.dart';
59export 'src/block_syntaxes/table_syntax.dart';
60export 'src/block_syntaxes/unordered_list_syntax.dart';
Tim Maffett73ad99e2022-06-09 08:27:28 -070061export 'src/block_syntaxes/unordered_list_with_checkbox_syntax.dart';
Kevin Moore659e9c82014-03-06 12:38:29 -080062export 'src/document.dart';
Valentin Vignal5e6bf7e2021-08-20 03:13:40 +080063export 'src/emojis.dart';
Sam Rawlins7f825bb2015-09-22 15:40:32 -070064export 'src/extension_set.dart';
Kevin Moore659e9c82014-03-06 12:38:29 -080065export 'src/html_renderer.dart';
66export 'src/inline_parser.dart';
Zhiguang Chen90995fd2022-04-27 07:52:57 +020067export 'src/inline_syntaxes/autolink_extension_syntax.dart';
68export 'src/inline_syntaxes/autolink_syntax.dart';
69export 'src/inline_syntaxes/code_syntax.dart';
Tim Maffett73ad99e2022-06-09 08:27:28 -070070export 'src/inline_syntaxes/color_swatch_syntax.dart';
Zhiguang Chen90995fd2022-04-27 07:52:57 +020071export 'src/inline_syntaxes/delimiter_syntax.dart';
72export 'src/inline_syntaxes/email_autolink_syntax.dart';
73export 'src/inline_syntaxes/emoji_syntax.dart';
74export 'src/inline_syntaxes/emphasis_syntax.dart';
75export 'src/inline_syntaxes/escape_syntax.dart';
76export 'src/inline_syntaxes/image_syntax.dart';
77export 'src/inline_syntaxes/inline_html_syntax.dart';
78export 'src/inline_syntaxes/inline_syntax.dart';
79export 'src/inline_syntaxes/line_break_syntax.dart';
80export 'src/inline_syntaxes/link_syntax.dart';
81export 'src/inline_syntaxes/strikethrough_syntax.dart';
82export 'src/inline_syntaxes/tag_syntax.dart';
83export 'src/inline_syntaxes/text_syntax.dart';
Kevin Moore95585a92018-10-08 14:02:43 -070084
85const version = packageVersion;