1<?php
2
3declare(strict_types=1);
4
5/*
6 * This file is part of the league/commonmark package.
7 *
8 * (c) Colin O'Dell <colinodell@gmail.com>
9 *
10 * For the full copyright and license information, please view the LICENSE
11 * file that was distributed with this source code.
12 */
13
14namespace League\CommonMark\Extension\Mention\Generator;
15
16use League\CommonMark\Extension\Mention\Mention;
17use League\CommonMark\Node\Inline\AbstractInline;
18
19final class StringTemplateLinkGenerator implements MentionGeneratorInterface
20{
21    private string $urlTemplate;
22
23    public function __construct(string $urlTemplate)
24    {
25        $this->urlTemplate = $urlTemplate;
26    }
27
28    public function generateMention(Mention $mention): ?AbstractInline
29    {
30        $mention->setUrl(\sprintf($this->urlTemplate, $mention->getIdentifier()));
31
32        return $mention;
33    }
34}
35