diff --git a/core/modules/link/src/Plugin/Field/FieldFormatter/LinkUrlFormatter.php b/core/modules/link/src/Plugin/Field/FieldFormatter/LinkUrlFormatter.php new file mode 100644 index 0000000..82781d5 --- /dev/null +++ b/core/modules/link/src/Plugin/Field/FieldFormatter/LinkUrlFormatter.php @@ -0,0 +1,68 @@ + $item) { + $link_url = $this->buildUrl($item); + + // Generate external URL without cacheable metadata or internal URL and + // collect cacheable metadata. + if ($link_url->isExternal()) { + $url = $link_url->toString(FALSE); + } + else { + $generated_url = $link_url->toString(TRUE); + $url = $generated_url->getGeneratedUrl(); + $cacheable_metadata = CacheableMetadata::createFromObject($generated_url); + } + + $elements[$delta] = ['#plain_text' => UrlHelper::stripDangerousProtocols($url)]; + if ($cacheable_metadata) { + $cacheable_metadata->applyTo($elements[$delta]); + } + } + return $elements; + } + +}