dyu / markdown_viewer

A Markdown viewer widget for Flutter. It renders Markdown string to rich text output.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Flutter CI

Markdown Viewer

A Markdown viewer widget for Flutter. It renders Markdown string to rich text output.

example

Check the source code of this screenshot here

Usage

MarkdownViewer(
  'Hello **Markdown**!',
  enableTaskList: true,
  enableSuperscript: false,
  enableSubscript: false,
  enableFootnote: false,
  enableImageSize: false,
  enableKbd: false,
  syntaxExtensions: const [],
  elementBuilders: const [],
);

How to create a syntax extension

class ExampleSyntax extends MdInlineSyntax {
  ExampleSyntax() : super(RegExp(r'#[^#]+?(?=\s+|$)'));

  @override
  MdInlineObject? parse(MdInlineParser parser, Match match) {
    final markers = [parser.consume()];
    final content = parser.consumeBy(match[0]!.length - 1);

    return MdInlineElement(
      'example',
      markers: markers,
      children: content.map((e) => MdText.fromSpan(e)).toList(),
    );
  }
}

How to create a element builder

class ExampleBuilder extends MarkdownElementBuilder {
  ExampleBuilder()
      : super(
          textStyle: const TextStyle(
            color: Colors.green,
            decoration: TextDecoration.underline,
          ),
        );

  @override
  bool isBlock(element) => false;

  @override
  List<String> matchTypes = <String>['example'];
}

About

A Markdown viewer widget for Flutter. It renders Markdown string to rich text output.

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Dart 67.0%Language:C++ 15.7%Language:CMake 13.7%Language:HTML 1.4%Language:C 1.1%Language:Swift 0.9%Language:Kotlin 0.1%Language:Shell 0.1%Language:Objective-C 0.0%