apply method

  1. @override
Future<String> apply(
  1. String content,
  2. Map<String, dynamic> context
)
override

Implementation

@override
Future<String> apply(String content, Map<String, dynamic> context) async {
  return content.replaceAllMapped(_routeRegex, (match) {
    final args = match.group(1)!.trim();

    // Parse route name and parameters
    final parts = _parseRouteArgs(args);
    final routeName = parts['name']!;
    final parameters = parts['params'] ?? {};

    try {
      if (_urlService != null) {
        return _urlService.route(routeName, parameters: parameters);
      } else {
        // Fallback: return the route path directly
        return '/$routeName';
      }
    } catch (e) {
      // Return original directive if route not found
      return match.group(0)!;
    }
  });
}