66
77use SpeedPuzzling \Web \Services \GenerateFacebookLink ;
88use SpeedPuzzling \Web \Services \GenerateInstagramLink ;
9+ use SpeedPuzzling \Web \Services \GenerateTwitchLink ;
910use Twig \Extension \AbstractExtension ;
1011use Twig \Markup ;
1112use Twig \TwigFilter ;
@@ -15,6 +16,7 @@ final class LinksTwigExtension extends AbstractExtension
1516 public function __construct (
1617 readonly private GenerateInstagramLink $ generateInstagramLink ,
1718 readonly private GenerateFacebookLink $ generateFacebookLink ,
19+ readonly private GenerateTwitchLink $ generateTwitchLink ,
1820 ) {
1921 }
2022
@@ -26,6 +28,7 @@ public function getFilters(): array
2628 return [
2729 new TwigFilter ('instagram ' , [$ this , 'generateInstagramLink ' ]),
2830 new TwigFilter ('facebook ' , [$ this , 'generateFacebookLink ' ]),
31+ new TwigFilter ('twitch ' , [$ this , 'generateTwitchLink ' ]),
2932 ];
3033 }
3134
@@ -46,4 +49,11 @@ public function generateFacebookLink(string $input): Markup|string
4649
4750 return new Markup ("<a target='_blank' href=' {$ link ->link }'> {$ link ->text }</a> " , 'UTF-8 ' );
4851 }
52+
53+ public function generateTwitchLink (string $ input ): Markup
54+ {
55+ $ link = $ this ->generateTwitchLink ->fromUserInput ($ input );
56+
57+ return new Markup ("<a target='_blank' href=' {$ link ->link }'> {$ link ->text }</a> " , 'UTF-8 ' );
58+ }
4959}
0 commit comments