6use Wikimedia\ObjectFactory\ObjectFactory;
17 private ?array $providers =
null;
20 private readonly ObjectFactory $objectFactory,
21 private readonly array $providerSpecs,
28 private function getProviders(): array {
29 $this->providers ??= array_map(
35 return $this->providers;
46 foreach ( $this->getProviders() as $provider ) {
47 if ( $provider->isSupportedLanguage( $options->language ) ) {
48 return $provider->highlight( $code, $options );
54 if ( $options->inline ) {
56 [
'dir' => $options->dir,
'class' => implode(
' ', $options->classes ) ],
61 [
'dir' => $options->dir,
'class' =>
'mw-code ' . implode(
' ', $options->classes ) ],
66 return new CodeHighlighterOutput( $html );
Value object for code highlighting output.
Service for syntax highlighting.
highlight(string $code, CodeHighlighterOptions $options)
Highlight the given code based on the given language.
__construct(private readonly ObjectFactory $objectFactory, private readonly array $providerSpecs,)