extractLinks function

List<({String text, String? title, String url})> extractLinks(
  1. String markdown
)

Extract all links from markdown text.

Implementation

List<({String text, String url, String? title})> extractLinks(String markdown) {
  final links = <({String text, String url, String? title})>[];
  final pattern = RegExp(r'\[([^\]]+)\]\(([^)]+?)(?:\s+"([^"]+)")?\)');

  for (final match in pattern.allMatches(markdown)) {
    links.add((
      text: match.group(1)!,
      url: match.group(2)!,
      title: match.group(3),
    ));
  }

  return links;
}