Markdown helpers focused on custom inline syntaxes for the markdown package.
This package is not published to pub.dev. Use a git dependency.
dependencies:
# ...
markdown_tools:
git:
url: https://github.com/libsrcdev/dart-packages
path: markdown_tools
ref: mainimport 'package:markdown_tools/markdown_tools.dart';Parses TeX/LaTeX inline math delimited by a symbol (default $...$) and emits a
math element.
final html = markdownToHtml(
'Formula $x^2$ here.',
inlineSyntaxes: [TexInlineSyntax()],
);
// <p>Formula <math>x^2</math> here.</p>Custom delimiter:
final html = markdownToHtml(
'Area ~a^2~ is valid.',
inlineSyntaxes: [TexInlineSyntax(patternSymbol: '~')],
);Parses username mentions like @username and converts them into links. Each
provider enforces its own username rules (GitHub, Twitter, Instagram, TabNews).
final html = markdownToHtml(
'Hello @octocat!',
inlineSyntaxes: [UsernameMentionSyntax.github()],
);
// <p>Hello <a href="proxy.php?url=https%3A%2F%2Fgithub.com%2Foctocat">@octocat</a>!</p>Built-in providers:
UsernameMentionSyntax.github();
UsernameMentionSyntax.twitter();
UsernameMentionSyntax.instagram();
UsernameMentionSyntax.tabnews();Custom provider:
class ExampleMentionSyntax extends UsernameMentionSyntax {
ExampleMentionSyntax({String prefix = '@'})
: super(pattern: mentionPatternWithPrefix(prefix, r'([a-z0-9_]{1,32})'));
@override
Uri generateUri(String username) {
return Uri(
scheme: 'https',
host: 'example.com',
pathSegments: ['u', username],
);
}
}
final html = markdownToHtml(
'Hi @someone',
inlineSyntaxes: [ExampleMentionSyntax()],
);Custom prefix:
UsernameMentionSyntax.github(prefix: '#');