diff --git a/core/lib/presentation/utils/html_transformer/dom/blockcode_transformers.dart b/core/lib/presentation/utils/html_transformer/dom/blockcode_transformers.dart new file mode 100644 index 000000000..2173e7028 --- /dev/null +++ b/core/lib/presentation/utils/html_transformer/dom/blockcode_transformers.dart @@ -0,0 +1,37 @@ + +import 'package:core/data/network/dio_client.dart'; +import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart'; +import 'package:html/dom.dart'; + +class BlockCodeTransformer extends DomTransformer { + + const BlockCodeTransformer(); + + @override + Future process( + Document document, + String message, + { + Map? mapUrlDownloadCID, + DioClient? dioClient + } + ) async { + final codeElements = document.getElementsByTagName('pre'); + await Future.wait(codeElements.map((element) async { + element.attributes['style'] = ''' + display: block; + padding: 10px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.5; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; + overflow: auto; + '''; + })); + } +} \ No newline at end of file diff --git a/core/lib/presentation/utils/html_transformer/transform_configuration.dart b/core/lib/presentation/utils/html_transformer/transform_configuration.dart index 1f901818b..0df230abd 100644 --- a/core/lib/presentation/utils/html_transformer/transform_configuration.dart +++ b/core/lib/presentation/utils/html_transformer/transform_configuration.dart @@ -1,6 +1,7 @@ import 'package:core/presentation/utils/html_transformer/base/dom_transformer.dart'; import 'package:core/presentation/utils/html_transformer/base/text_transformer.dart'; +import 'package:core/presentation/utils/html_transformer/dom/blockcode_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/blockquoted_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/image_transformers.dart'; import 'package:core/presentation/utils/html_transformer/dom/script_transformers.dart'; @@ -52,6 +53,7 @@ class TransformConfiguration { RemoveScriptTransformer(), SignatureTransformer(), BlockQuotedTransformer(), + BlockCodeTransformer(), ImageTransformer(), ];