propertyDataTypeMatcher = $propertyDataTypeMatcher; } /** * Extract some data or do processing on a Statement during parsing. * * This method is normally invoked when processing a StatementList * for all Statements on a StatementListProvider (e.g. an Item). * * @param Statement $statement */ public function processStatement( Statement $statement ) { $propertyId = $statement->getPropertyId(); if ( $this->propertyDataTypeMatcher->isMatchingDataType( $propertyId, 'math' ) ) { $this->hasMath = true; } } /** * Update extension data, properties or other data in ParserOutput. * These updates are invoked when EntityContent::getParserOutput is called. * * @param ParserOutput $parserOutput */ public function updateParserOutput( ParserOutput $parserOutput ) { if ( $this->hasMath ) { $parserOutput->addModules( [ 'ext.math.scripts' ] ); $parserOutput->addModuleStyles( [ 'ext.math.styles' ] ); } } }