From 2e5cb324a1139bec4cf30e38f595e358c36c0783 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Thu, 21 Aug 2025 17:16:30 +0800 Subject: [PATCH] opt article Closes #1072 Signed-off-by: bggRGjQaUbCoE --- lib/pages/article/widgets/opus_content.dart | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/pages/article/widgets/opus_content.dart b/lib/pages/article/widgets/opus_content.dart index 062f4924..72550542 100644 --- a/lib/pages/article/widgets/opus_content.dart +++ b/lib/pages/article/widgets/opus_content.dart @@ -229,7 +229,26 @@ class OpusContent extends StatelessWidget { alignment: PlaceholderAlignment.middle, ), ...entry.$2.nodes!.map((item) { - return _getSpan(item.word); + if (item.word != null) { + return _getSpan(item.word); + } + if (item.rich case Rich rich) { + final hasUrl = rich.jumpUrl?.isNotEmpty == true; + return TextSpan( + text: '${hasUrl ? '\u{1F517}' : ''}${rich.text}', + recognizer: hasUrl + ? (TapGestureRecognizer() + ..onTap = () => + PiliScheme.routePushFromUrl( + rich.jumpUrl!, + )) + : null, + style: hasUrl + ? TextStyle(color: colorScheme.primary) + : null, + ); + } + return const TextSpan(); }), if (entry.$1 < element.list!.items!.length - 1) const TextSpan(text: '\n'),