Physikerwelt has uploaded a new change for review. https://gerrit.wikimedia.org/r/197429
Change subject: Update to new hook ...................................................................... Update to new hook MathFormulaRendered was replaced by MathFormulaPostRender in I201f80bbee16617ef88417a2430261167aaca4ae Change-Id: I468a95851e6acdb8186a06b0a2ac73499cc4611f --- M MathSearch.hooks.php M MathSearch.php 2 files changed, 36 insertions(+), 42 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/MathSearch refs/changes/29/197429/1 diff --git a/MathSearch.hooks.php b/MathSearch.hooks.php index 169c1c2..6f94ec2 100644 --- a/MathSearch.hooks.php +++ b/MathSearch.hooks.php @@ -58,14 +58,6 @@ } } - private static function curId2OldId( $curId ){ - $title = Title::newFromID( $curId ); - if ( $title ){ - return Title::newFromID( $curId )->getLatestRevID(); - } else { - return 0; - } - } /** * Updates the formula index in the database * @@ -106,51 +98,54 @@ * #math{$id}. * @param int $id * @param MathRenderer $renderer + * @param int $revId * @return bool true if an ID has been assigned manually, * false if the automatic fallback math{$id} was used. */ - private static function setMathId( &$id, MathRenderer $renderer) { + private static function setMathId( &$id, MathRenderer $renderer, $revId) { if ( $renderer->getID() ){ $id = $renderer->getID(); return true; } else { - $id = "math{$id}"; + $id = self::generateMathAnchorString( $revId, $id, '' ); return false; } } /** * Callback function that is called after a formula was rendered - * @param MathRenderer $Renderer + * @param Parser $parser + * @param MathRenderer $renderer * @param string|null $Result reference to the rendering result - * @param int $revId - * @param int $eid * @return bool */ - static function updateMathIndex( MathRenderer $Renderer, &$Result = null, $revId = 0, $eid = 0 ) { + static function updateMathIndex( Parser $parser, MathRenderer $renderer, &$Result = null ) { + $revId = $parser->getRevisionId(); + $eid = $parser->nextLinkID(); if ( $revId > 0 ) { // Only store something if a pageid was set. // Use manually assigned IDs whenever possible // and fallback to automatic IDs otherwise. - if ( ! self::setMathId( $eid , $Renderer ) ){ + if ( ! self::setMathId( $eid , $renderer, $revId ) ){ $Result = preg_replace( '/(class="mwe-math-mathml-(inline|display))/', "id=\"$eid\" \\1", $Result ); } - self::updateIndex( $revId , $eid , $Renderer->getInputHash() , $Renderer->getTex() ); + self::updateIndex( $revId , $eid , $renderer->getInputHash() , $renderer->getTex() ); } return true; } /** * Callback function that is called after a formula was rendered - * @param MathRenderer $Renderer + * @param Parser $parser + * @param MathRenderer $renderer * @param string|null $Result reference to the rendering result - * @param int $pid - * @param int $eid * @return bool */ - static function addIdentifierDescription( MathRenderer $Renderer, &$Result = null, $pid = 0, $eid = 0 ) { - self::setMathId( $eid , $Renderer ); - $mo = MathObject::cloneFromRenderer($Renderer); - $mo->setRevisionID($pid); + static function addIdentifierDescription( Parser $parser, MathRenderer $renderer, &$Result = null ) { + $revId = $parser->getRevisionId(); + $eid = $parser->nextLinkID(); + self::setMathId( $eid , $renderer, $revId ); + $mo = MathObject::cloneFromRenderer($renderer); + $mo->setRevisionID($revId); $mo->setID($eid); $Result = preg_replace_callback("#<(mi|mo)( ([^>].*?))?>(.*?)</\\1>#u", array( $mo , 'addIdentifierTitle' ), $Result); return true; @@ -158,15 +153,16 @@ /** * Callback function that is called after a formula was rendered - * @param MathRenderer $Renderer + * @param Parser $parser + * @param MathRenderer $renderer * @param string|null $Result reference to the rendering result - * @param int $pid - * @param int $eid * @return bool */ - static function addLinkToFormulaInfoPage( MathRenderer $Renderer, &$Result = null, $pid = 0, $eid = 0 ) { - self::setMathId( $eid , $Renderer ); - $url = SpecialPage::getTitleFor( 'FormulaInfo' )->getLocalUrl( array( 'pid' => $pid, 'eid' => $eid ) ); + static function addLinkToFormulaInfoPage( Parser $parser, MathRenderer $renderer, &$Result = null ) { + $revId = $parser->getRevisionId(); + $eid = $parser->nextLinkID(); + self::setMathId( $eid , $renderer, $revId ); + $url = SpecialPage::getTitleFor( 'FormulaInfo' )->getLocalUrl( array( 'pid' => $revId, 'eid' => $eid ) ); $Result = "<span><a href=\"$url\" id=\"$eid\" style=\"color:inherit;\">$Result</a></span>"; return true; } @@ -178,20 +174,20 @@ * <code>$wgHooks['MathFormulaRendered'] = array('MathSearchHooks::onMathFormulaRenderedNoLink');</code> * in your local settings * - * @param MathRenderer $Renderer + * @param Parser $parser + * @param MathRenderer $renderer * @param null $Result - * @param int $pid - * @param int $eid - * @return boolean (true) + * @return bool */ - static function onMathFormulaRenderedNoLink( $Renderer, &$Result = null, $pid = 0, $eid = 0 ) { - if ( $pid > 0 ) { // Only store something if a pageid was set. - self::updateIndex( $pid, $eid, $Renderer->getInputHash(), $Renderer->getTex() ); + static function onMathFormulaRenderedNoLink( Parser $parser, MathRenderer $renderer, &$Result = null ) { + $revId = $parser->getRevisionId(); + $eid = $parser->nextLinkID(); + if ( $revId > 0 ) { // Only store something if a pageid was set. + self::updateIndex( $revId, $eid, $renderer->getInputHash(), $renderer->getTex() ); } if ( preg_match( '#<math(.*)?\sid="(?P<id>[\w\.]+)"#', $Result, $matches ) ) { $rendererId = $matches['id']; - $oldId = self::curId2OldId( $pid ); - $newID = self::generateMathAnchorString( $oldId, $eid, '' ); + $newID = self::generateMathAnchorString( $revId, $eid, '' ); $Result = str_replace( $rendererId, $newID, $Result ); } return true; @@ -259,7 +255,6 @@ return ''; } wfDebugLog('MathSearch','Render mquery tag.'); - wfProfileIn( __METHOD__ ); //TODO: Report %\n problem to LaTeXML upstream $content = preg_replace( '/%\n/', '', $content ); $renderer = new MathLaTeXML( $content ); @@ -269,7 +264,6 @@ $renderer->render( ); $renderedMath = $renderer->getHtmlOutput(); $renderer->writeCache(); - wfProfileOut( __METHOD__ ); return array( $renderedMath, "markerType" => 'nowiki' ); } diff --git a/MathSearch.php b/MathSearch.php index 555a219..5a82ede 100644 --- a/MathSearch.php +++ b/MathSearch.php @@ -69,8 +69,8 @@ $wgSpecialPages['DisplayTopics'] = 'SpecialDisplayTopics'; $wgHooks['LoadExtensionSchemaUpdates'][] = 'MathSearchHooks::onLoadExtensionSchemaUpdates'; -$wgHooks['MathFormulaRendered']['updateIndex'] = 'MathSearchHooks::updateMathIndex'; -$wgHooks['MathFormulaRendered']['addLink'] = 'MathSearchHooks::addLinkToFormulaInfoPage'; +$wgHooks['MathFormulaPostRender']['updateIndex'] = 'MathSearchHooks::updateMathIndex'; +$wgHooks['MathFormulaPostRender']['addLink'] = 'MathSearchHooks::addLinkToFormulaInfoPage'; $wgHooks['UnitTestsList'][] = 'MathSearchHooks::onRegisterUnitTests'; $wgHooks['ParserFirstCallInit'][] = 'MathSearchHooks::onParserFirstCallInit'; -- To view, visit https://gerrit.wikimedia.org/r/197429 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I468a95851e6acdb8186a06b0a2ac73499cc4611f Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/MathSearch Gerrit-Branch: master Gerrit-Owner: Physikerwelt <w...@physikerwelt.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits