diff --git a/lib/screens/learn_more_screen.dart b/lib/screens/learn_more_screen.dart index f2ae148..d14830c 100644 --- a/lib/screens/learn_more_screen.dart +++ b/lib/screens/learn_more_screen.dart @@ -85,8 +85,9 @@ class _LearnMoreScreenState extends State { _event = ev; }); _startAutoScroll(); - } catch (_) { - // Silently fail — the pre-loaded data is already displayed + } catch (e) { + // Log for debugging, but don't show error — the pre-loaded data is displayed + debugPrint('_loadFullDetails failed for event ${widget.eventId}: $e'); } } @@ -1221,11 +1222,20 @@ class _LearnMoreScreenState extends State { /// Parse an HTML important_information string into a list of {title, value} maps List> _parseHtmlImportantInfo(String raw) { - // Strip HTML tags, preserving
as a newline separator first - var text = raw - .replaceAll(RegExp(r'', caseSensitive: false), '\n') - .replaceAll(RegExp(r'<[^>]*>'), ''); - // Decode entities + var text = raw; + // 1. Remove blocks entirely (content + tags) + text = text.replaceAll(RegExp(r']*>.*?', caseSensitive: false, dotAll: true), ''); + // 2. Remove blocks + text = text.replaceAll(RegExp(r']*>.*?', caseSensitive: false, dotAll: true), ''); + // 3. Convert block-level closers to newlines + text = text.replaceAll(RegExp(r'', caseSensitive: false), '\n'); + text = text.replaceAll(RegExp(r'

', caseSensitive: false), '\n'); + text = text.replaceAll(RegExp(r'', caseSensitive: false), '\n'); + // 4. Convert
to newlines + text = text.replaceAll(RegExp(r'', caseSensitive: false), '\n'); + // 5. Strip all remaining HTML tags + text = text.replaceAll(RegExp(r'<[^>]*>'), ''); + // 6. Decode HTML entities text = text .replaceAll('&', '&') .replaceAll('<', '<')