diff -u b/core/modules/text/src/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php b/core/modules/text/src/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php --- b/core/modules/text/src/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php +++ b/core/modules/text/src/Plugin/Field/FieldFormatter/TextTrimmedFormatter.php @@ -119,12 +119,15 @@ * @see text_summary() */ public static function preRenderSummary(array $element) { + $is_filtered = $element['#markup'] instanceof FilteredMarkup; $element['#markup'] = text_summary($element['#markup'], $element['#format'], $element['#text_summary_trim_length']); - // The markup will already have been filtered before getting here, but + // The markup could already have been filtered before getting here, but // if text_summary() trimmed it, it will be converted into a string // that will get autoescaped later, possibly removing markup allowed by the // text format. So, we make sure to convert it back into FilteredMarkup. - $element['#markup'] = FilteredMarkup::create($element['#markup']); + if ($is_filtered) { + $element['#markup'] = FilteredMarkup::create($element['#markup']); + } return $element; }