apply method
Implementation
@override
Future<String> apply(String content, Map<String, dynamic> context) async {
return content.replaceAllMapped(_nowRegex, (match) {
final format = match.group(1)!.trim();
// Remove quotes if present
final cleanFormat = format.replaceAll('"', '').replaceAll("'", '');
try {
final now = DateTime.now();
// Simple date formatting - in a real implementation, use intl package
// For now, provide basic formatting
switch (cleanFormat) {
case 'Y-m-d':
return '${now.year}-${now.month.toString().padLeft(2, '0')}-${now.day.toString().padLeft(2, '0')}';
case 'Y-m-d H:i:s':
return '${now.year}-${now.month.toString().padLeft(2, '0')}-${now.day.toString().padLeft(2, '0')} '
'${now.hour.toString().padLeft(2, '0')}:${now.minute.toString().padLeft(2, '0')}:${now.second.toString().padLeft(2, '0')}';
case 'H:i:s':
return '${now.hour.toString().padLeft(2, '0')}:${now.minute.toString().padLeft(2, '0')}:${now.second.toString().padLeft(2, '0')}';
case 'Y':
return now.year.toString();
case 'm':
return now.month.toString().padLeft(2, '0');
case 'd':
return now.day.toString().padLeft(2, '0');
default:
return now.toIso8601String();
}
} catch (_) {
return DateTime.now().toIso8601String();
}
});
}