dart_markdown_parser 0.1.0 copy "dart_markdown_parser: ^0.1.0" to clipboard
dart_markdown_parser: ^0.1.0 copied to clipboard

Pure Dart markdown parser with AST-based architecture. Supports CommonMark, GFM, LaTeX math, tables, footnotes, and extensible plugin system. No Flutter dependency.

example/dart_markdown_parser_example.dart

import 'package:dart_markdown_parser/dart_markdown_parser.dart';

void main() {
  // Basic parsing example
  print('=== Basic Parsing ===');
  final parser = MarkdownParser();
  final markdown = '''
# Hello World

This is a **bold** text and this is *italic*.

## Features

- Pure Dart parser
- No Flutter dependency
- AST-based architecture
- Extensible plugin system

### Code Example

```dart
void main() {
  print('Hello from Dart!');
}
```

> This is a blockquote with **bold** text.

[Visit GitHub](https://github.com)
''';

  final nodes = parser.parse(markdown);
  print('Parsed ${nodes.length} top-level nodes:\n');

  for (final node in nodes) {
    print('${node.type}: ${node.toJson()}');
    print('---');
  }

  // Plugin example
  print('\n=== Using Plugins ===');
  final registry = ParserPluginRegistry();
  registry.register(const MentionPlugin());
  registry.register(const HashtagPlugin());
  registry.register(const EmojiPlugin());

  final parserWithPlugins = MarkdownParser(plugins: registry);
  final textWithPlugins = 'Hello @user! Check out #dart :smile:';

  final pluginNodes = parserWithPlugins.parse(textWithPlugins);
  print('Text: $textWithPlugins');
  print('Parsed nodes:');
  for (final node in pluginNodes) {
    if (node is ParagraphNode) {
      for (final child in node.children) {
        print('  - ${child.type}: ${child.toJson()}');
      }
    }
  }

  // Table example
  print('\n=== Table Parsing ===');
  final tableMarkdown = '''
| Name | Age | City |
|------|-----|------|
| Alice | 30 | NYC |
| Bob | 25 | LA |
''';

  final tableNodes = parser.parse(tableMarkdown);
  for (final node in tableNodes) {
    if (node is TableNode) {
      print('Table with ${node.headers.length} columns and ${node.rows.length} rows');
      print('Headers: ${node.headers.map((h) => h.map((n) => n.toJson())).toList()}');
    }
  }

  // Math formula example
  print('\n=== Math Formulas ===');
  final mathMarkdown = r'''
Inline math: $x^2 + y^2 = z^2$

Block math:

$$
\sum_{i=1}^{n} x_i = x_1 + x_2 + ... + x_n
$$
''';

  final mathNodes = parser.parse(mathMarkdown);
  for (final node in mathNodes) {
    print('${node.type}: ${node.toJson()}');
  }
}
1
likes
0
points
180
downloads

Publisher

unverified uploader

Weekly Downloads

Pure Dart markdown parser with AST-based architecture. Supports CommonMark, GFM, LaTeX math, tables, footnotes, and extensible plugin system. No Flutter dependency.

Repository (GitHub)
View/report issues

Topics

#markdown #parser #ast #commonmark #gfm

License

unknown (license)

More

Packages that depend on dart_markdown_parser