web/wp-content/themes/mozilla-builders/blocks/advanced-code/advanced-code.php (16 lines of code) (raw):
<?php
/**
* Custom block for inserting code with syntax highlighting.
*
* @package MozillaBuilders
* @param array $block The block settings and attributes.
*/
use Timber\Timber;
use Highlight\Highlighter;
$alignment = $block['align'] ?? 'wide';
$hl = new Highlighter();
$code = get_field( 'code' );
$language = get_field( 'language' );
$context = Timber::context();
$context['language'] = $language;
$context['code'] = array(
'plain' => $code,
'highlighted' => $hl->highlight( $language, $code )->value,
);
$context['filename'] = get_field( 'filename' );
$context['alignclass'] = "align$alignment";
Timber::render( basename( __DIR__ ) . '/advanced-code.twig', $context );