in src/markdown-extensions/YamlFrontMatterBlock.php [21:62]
public static function consume(
UnparsedBlocks\Context $context,
UnparsedBlocks\Lines $lines,
): ?(UnparsedBlocks\Block, UnparsedBlocks\Lines) {
$match = UnparsedBlocks\FencedCodeBlock::consume($context, $lines);
if ($match === null) {
return null;
}
list($block, $rest) = $match;
if ($block->getInfoString() !== 'yamlmeta') {
return null;
}
invariant(
$context is BlockContext,
'Expected context to be a %s',
BlockContext::class,
);
$data = JSON\decode_as_shape(YAMLMeta::class, $block->getContent());
$context->setYamlMeta($data);
$messages = Vec\filter_nulls(vec[
self::getVersionRequirementMessage($data),
self::getLibMessage($data),
self::getFacebookMessages($data),
]);
if (C\is_empty($messages)) {
return tuple(new UnparsedBlocks\BlockSequence(vec[]), $rest);
}
$messages = new UnparsedBlocks\BlockSequence($messages);
return tuple(
UnparsedBlocks\BlockSequence::flatten(
new UnparsedBlocks\HTMLBlock('<div class="apiTopMessages">'),
$messages,
new UnparsedBlocks\HTMLBlock('</div>'),
),
$rest,
);
}