diff --git a/core/lib/presentation/utils/html_transformer/dom/link_transformers.dart b/core/lib/presentation/utils/html_transformer/dom/link_transformers.dart
index 350c45443..2210f8f34 100644
--- a/core/lib/presentation/utils/html_transformer/dom/link_transformers.dart
+++ b/core/lib/presentation/utils/html_transformer/dom/link_transformers.dart
@@ -4,9 +4,9 @@ import 'package:core/presentation/utils/html_transformer/base/dom_transformer.da
import 'package:core/utils/app_logger.dart';
import 'package:html/dom.dart';
-class EnsureRelationNoReferrerTransformer extends DomTransformer {
+class LinkTransformer extends DomTransformer {
- const EnsureRelationNoReferrerTransformer();
+ const LinkTransformer();
@override
Future process(
@@ -18,20 +18,28 @@ class EnsureRelationNoReferrerTransformer extends DomTransformer {
final linkElements = document.getElementsByTagName('a');
await Future.wait(linkElements.map((linkElement) async {
linkElement.attributes['rel'] = 'noopener noreferrer';
- final tagClass = linkElement.attributes['class'];
- linkElement.attributes['class'] = '$tagClass tooltip';
- final url = linkElement.attributes['href'];
- final text = linkElement.text;
- if (url != null && url.isNotEmpty) {
- linkElement.innerHtml = textHasToolTip(text, url);
- }
- log('EnsureRelationNoReferrerTransformer::process(): ${linkElement.outerHtml}');
+ _addToolTipWhenHoverLink(linkElement);
}));
}
- String textHasToolTip(String text, String? url) {
+ void _addToolTipWhenHoverLink(Element element) {
+ log('LinkTransformer::_addToolTipWhenHoverLink(): Before: ${element.outerHtml}');
+ final url = element.attributes['href'];
+ final text = element.text;
+ final children = element.children;
+ if (children.isEmpty && text.isNotEmpty && url?.isNotEmpty == true) {
+ final innerHtml = element.innerHtml;
+ final tagClass = element.attributes['class'];
+ element.attributes['class'] = '$tagClass tooltip';
+ if (text.isNotEmpty && url != null && url.isNotEmpty) {
+ element.innerHtml = innerHtml + textHasToolTip(url);
+ }
+ log('LinkTransformer::_addToolTipWhenHoverLink(): After: ${element.outerHtml}');
+ }
+ }
+
+ String textHasToolTip(String url) {
return '''
- ${text.isNotEmpty ? text : url}
$url
''';
}
diff --git a/core/lib/presentation/utils/html_transformer/dom/meta_transformers.dart b/core/lib/presentation/utils/html_transformer/dom/meta_transformers.dart
index 2287fa269..0fe0befc9 100644
--- a/core/lib/presentation/utils/html_transformer/dom/meta_transformers.dart
+++ b/core/lib/presentation/utils/html_transformer/dom/meta_transformers.dart
@@ -3,14 +3,14 @@ import 'package:core/data/network/dio_client.dart';
import 'package:html/dom.dart';
import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart';
-class ViewPortTransformer extends DomTransformer {
+class MetaTransformer extends DomTransformer {
static final Element _viewPortMetaElement = Element.html(
'');
static final Element _contentTypeMetaElement = Element.html(
'');
- const ViewPortTransformer();
+ const MetaTransformer();
@override
Future process(
diff --git a/core/lib/presentation/utils/html_transformer/transform_configuration.dart b/core/lib/presentation/utils/html_transformer/transform_configuration.dart
index 45d588ba1..a7b66c43a 100644
--- a/core/lib/presentation/utils/html_transformer/transform_configuration.dart
+++ b/core/lib/presentation/utils/html_transformer/transform_configuration.dart
@@ -58,10 +58,10 @@ class TransformConfiguration {
static const int? standardMaxImageWidth = null;
static const List standardDomTransformers = [
- ViewPortTransformer(),
+ MetaTransformer(),
RemoveScriptTransformer(),
ImageTransformer(),
- EnsureRelationNoReferrerTransformer(),
+ LinkTransformer(),
BlockQuotedTransformer(),
];
diff --git a/core/lib/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart b/core/lib/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart
index 6d0d354b7..f62cf5b9c 100644
--- a/core/lib/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart
+++ b/core/lib/presentation/views/html_viewer/html_content_viewer_on_web_widget.dart
@@ -123,10 +123,6 @@ class _HtmlContentViewerOnWebState extends State {
''';
final tooltipLinkCss = '''
- .tooltip {
- position: relative;
- display: inline-block;
- }
.tooltip .tooltiptext {
visibility: hidden;
max-width: 400px;