diff --git a/core/lib/Drupal/Core/Render/Element/Link.php b/core/lib/Drupal/Core/Render/Element/Link.php index 535d9bb51b9be67ed34624bf5fb0102b7b07bcf3..3888c7938d043004ef2673650f0b27f24008c376 100644 --- a/core/lib/Drupal/Core/Render/Element/Link.php +++ b/core/lib/Drupal/Core/Render/Element/Link.php @@ -92,7 +92,7 @@ public static function preRenderLink($element) { /** @var \Drupal\Core\Utility\LinkGenerator $link_generator */ $link_generator = \Drupal::service('link_generator'); $generated_link = $link_generator->generate($element['#title'], $element['#url']->setOptions($options)); - $element['#markup'] = $generated_link->getGeneratedLink(); + $element['#markup'] = $generated_link; $generated_link->merge(BubbleableMetadata::createFromRenderArray($element)) ->applyTo($element); } diff --git a/core/modules/system/src/Tests/Theme/EngineTwigTest.php b/core/modules/system/src/Tests/Theme/EngineTwigTest.php index a79c01dd630235c78229786a1256d0016736efbf..51d092d44b114918b3b31071b6aec2bd2c5bdd6a 100644 --- a/core/modules/system/src/Tests/Theme/EngineTwigTest.php +++ b/core/modules/system/src/Tests/Theme/EngineTwigTest.php @@ -77,6 +77,7 @@ public function testTwigLinkGenerator() { $link_generator = $this->container->get('link_generator'); + $generated_url = Url::fromRoute('user.register', [], ['absolute' => TRUE])->toString(TRUE)->getGeneratedUrl(); $expected = [ 'link via the linkgenerator: ' . $link_generator->generate('register', new Url('user.register', [], ['absolute' => TRUE])), 'link via the linkgenerator: ' . $link_generator->generate('register', new Url('user.register', [], ['absolute' => TRUE, 'attributes' => ['foo' => 'bar']])), @@ -84,6 +85,7 @@ public function testTwigLinkGenerator() { 'link via the linkgenerator: ' . $link_generator->generate('register', new Url('user.register', [], ['attributes' => ['id' => 'kitten']])), 'link via the linkgenerator: ' . $link_generator->generate('register', new Url('user.register', [], ['attributes' => ['class' => ['llama', 'kitten', 'panda']]])), 'link via the linkgenerator: ' . $link_generator->generate(Markup::create('<span>register</span>'), new Url('user.register', [], ['absolute' => TRUE])), + 'link via the linkgenerator: <a href="' . $generated_url . '"><span>register</span><svg></svg></a>', ]; // Verify that link() has the ability to bubble cacheability metadata: diff --git a/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.link_generator.html.twig b/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.link_generator.html.twig index 5d20ce22b90290a6ba75c83c52525eae89e22f28..a836aec93c615721479a97ce6e3f95ba825a4a3c 100644 --- a/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.link_generator.html.twig +++ b/core/modules/system/tests/modules/twig_theme_test/templates/twig_theme_test.link_generator.html.twig @@ -5,3 +5,5 @@ <div>link via the linkgenerator: {{ link('register', 'route:user.register', attributes) }}</div> {% set title %}<span>register</span>{% endset %} <div>link via the linkgenerator: {{ link(title, test_url) }}</div> +{% set title %}<span>register</span><svg></svg>{% endset %} +<div>link via the linkgenerator: {{ link(title, test_url) }}</div>