Physikerwelt has submitted this change and it was merged. Change subject: Little improvements in MathDebug ......................................................................
Little improvements in MathDebug Change-Id: I7a9859d3fee140138bf287d859b27ade0cdbd4b9 --- M .gitignore M MathSearch.i18n.php M MathSearch.php M SpecialMathDebug.php M db/mathobservation.sql M db/mathpagestat.sql M db/mathsearch.sql M db/mathvarstat.sql 8 files changed, 111 insertions(+), 85 deletions(-) Approvals: Physikerwelt: Verified; Looks good to me, approved diff --git a/.gitignore b/.gitignore index 98b092a..60f70f7 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,7 @@ *~ *.kate-swp .*.swp +.project +.settings +.buildpath +nbproject diff --git a/MathSearch.i18n.php b/MathSearch.i18n.php index bbb7309..14fd2e4 100644 --- a/MathSearch.i18n.php +++ b/MathSearch.i18n.php @@ -18,6 +18,15 @@ 'getequationsbyquery' => 'Get equations by query', // Special page 'xquerygenerator' => 'X-query generator', // Special page 'mathdebug' => 'Test Renderer', // Special page + 'mathmode_0' => 'MW_MATH_PNG', + 'mathmode_1' => 'MW_MATH_SIMPLE', + 'mathmode_2' => 'MW_MATH_HTML', + 'mathmode_3' => 'MW_MATH_SOURCE', + 'mathmode_4' => 'MW_MATH_MODERN', + 'mathmode_5' => 'MW_MATH_MATHML', + 'mathmode_6' => 'MW_MATH_MATHJAX', + 'mathmode_7' => 'MW_MATH_LATEXML', + 'mathmode_7+' => 'MW_MATH_LATEXML_JAX', //TODO: Remove that construct ); /** Message documentation (Message documentation) diff --git a/MathSearch.php b/MathSearch.php index 39a880f..75613de 100644 --- a/MathSearch.php +++ b/MathSearch.php @@ -57,4 +57,6 @@ $wgSpecialPages['MathIndex'] = 'SpecialMathIndex'; $wgHooks['LoadExtensionSchemaUpdates'][] = 'MathSearchHooks::onLoadExtensionSchemaUpdates'; -$wgHooks['MathFormulaRendered'][] = 'MathSearchHooks::onMathFormulaRendered'; \ No newline at end of file +$wgHooks['MathFormulaRendered'][] = 'MathSearchHooks::onMathFormulaRendered'; + +$wgGroupPermissions['user']['MathDebug'] = true; \ No newline at end of file diff --git a/SpecialMathDebug.php b/SpecialMathDebug.php index e5f7d6f..4d1bb1d 100644 --- a/SpecialMathDebug.php +++ b/SpecialMathDebug.php @@ -3,7 +3,7 @@ function __construct() { - parent::__construct( 'MathDebug', 'edit', true ); + parent::__construct( 'MathDebug', 'MathDebug', true ); } /** * Sets headers - this should be called from the execute() method of all derived classes! @@ -111,19 +111,24 @@ global $wgUseMathJax, $wgUseLaTeXML, $wgTexvc; $out = $this->getOutput(); $out->addModules( array( 'ext.math.mathjax.enabler' ) ); + $out->addModules( array( 'ext.math.mathjax.enabler.mml' ) ); // die('END'); $i = 0; foreach ( array_slice( self::getMathTagsFromPage( $page ), $offset, $length, true ) as $key => $t ) { $out->addWikiText( "=== Test #" . ( $offset + $i++ ) . ": $key === " ); $out->addHTML( self::render( $t, MW_MATH_SOURCE ) ); $out->addHTML( self::render( $t, MW_MATH_PNG ) ); - $out->addWikiText( '<source lang="latex">' . $this->getTexvcTex( $t ) . '</source>' ); + $out->addWikiText( 'Texvc`s TeX output:<source lang="latex">' . $this->getTexvcTex( $t ) . '</source>'); if ( $wgUseLaTeXML ) { $out->addHTML( self::render( $t, MW_MATH_LATEXML ) ); } if ( $wgUseMathJax ) { $out->addHTML( self::render( $t, MW_MATH_MATHJAX, false ) ); } + if ( $wgUseMathJax && $wgUseMathJax) { + $out->addHTML( self::render( $t, '7+', false ) ); //TODO: Update the name + } + } } @@ -155,11 +160,13 @@ return true; } private static function render( $t, $mode, $aimJax = true ) { - $renderer = MathRenderer::getRenderer( $t, array(), $mode ); + $modeInt= (int) substr($mode, 0,1); + $renderer = MathRenderer::getRenderer( $t, array(), $modeInt ); $renderer->setPurge( true ); $fragment = $renderer->render(); - $res = $mode . ':' . $fragment; - wfDebugLog( 'MathSearch', 'rendered:' . $res ); + $modeStr = wfMessage('mathmode_'.$mode)->inContentLanguage(); + $res = $modeStr . ':' . $fragment; + wfDebugLog( 'MathSearch', 'rendered:' . $res . ' in mode '. $modeStr . '('.$mode.')'); if ( $aimJax ) { self::aimHTMLFromJax( $res ); } @@ -172,6 +179,7 @@ private static function getMathTagsFromPage( $titleString = 'Testpage' ) { $title = Title::newFromText( $titleString ); + if ($title->exists()){ $article = new Article( $title ); // TODO: find a better way to extract math elements from a page $wikiText = $article->getPage()->getContent()->getNativeData(); @@ -180,7 +188,10 @@ $matches = preg_match_all( "#<math>(.*?)</math>#s", $wikiText, $math ); // TODO: Find a way to specify a key e.g '\nRenderTest:(.?)#<math>(.*?)</math>#s\n' // leads to array('\1'->'\2') with \1 eg Bug 2345 and \2 the math content - return $math[1]; + return $math[1];} + else { + return 'Page does not exist'; + } } private function getTexvcTex( $tex ) { $tmpDir = wfTempDir(); diff --git a/db/mathobservation.sql b/db/mathobservation.sql index b4bb747..21db97e 100644 --- a/db/mathobservation.sql +++ b/db/mathobservation.sql @@ -1,22 +1,22 @@ --- --- Used by the math search module to analyse the variables in the equations. --- -CREATE TABLE /*_*/mathobservation ( - - -- Reference to - -- Binary MD5 hash of the latex fragment, used as an identifier key. - mathobservation_inputhash varbinary(16) NOT NULL, - - --Type of the feature e.g. mo, mi - mathobservation_featuretype varchar(10) NOT NULL, - - --Name of the feature. eg name of the variable - mathobservation_featurename varchar(10) NOT NULL, - - -- Timestamp. Is set by the database autmatically - mathobservation_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - -) /*$wgDBTableOptions*/; - - CREATE INDEX /*i*/mathobservation_inputhash ON mathobservation (mathobservation_inputhash); - CREATE INDEX /*i*/mathobservation_featurename ON mathobservation (mathobservation_featurename); +-- +-- Used by the math search module to analyse the variables in the equations. +-- +CREATE TABLE /*_*/mathobservation ( + + -- Reference to + -- Binary MD5 hash of the latex fragment, used as an identifier key. + mathobservation_inputhash varbinary(16) NOT NULL, + + --Type of the feature e.g. mo, mi + mathobservation_featuretype varchar(10) NOT NULL, + + --Name of the feature. eg name of the variable + mathobservation_featurename varchar(10) NOT NULL, + + -- Timestamp. Is set by the database autmatically + mathobservation_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP + +) /*$wgDBTableOptions*/; + + CREATE INDEX /*i*/mathobservation_inputhash ON mathobservation (mathobservation_inputhash); + CREATE INDEX /*i*/mathobservation_featurename ON mathobservation (mathobservation_featurename); diff --git a/db/mathpagestat.sql b/db/mathpagestat.sql index a4ab835..d54e779 100644 --- a/db/mathpagestat.sql +++ b/db/mathpagestat.sql @@ -1,11 +1,11 @@ --- --- Used by the math search module to analyse the variables in the equations. --- -CREATE TABLE /*_*/mathpagestat ( - pagestat_pageid int(10) NOT NULL, - pagestat_featureid int(6) NOT NULL, - pagestat_featurecount int(11) NOT NULL, - PRIMARY KEY (pagestat_pageid,pagestat_featureid), - KEY `pagestat_pageid` (`pagestat_pageid`) -) /*$wgDBTableOptions*/; - +-- +-- Used by the math search module to analyse the variables in the equations. +-- +CREATE TABLE /*_*/mathpagestat ( + pagestat_pageid int(10) NOT NULL, + pagestat_featureid int(6) NOT NULL, + pagestat_featurecount int(11) NOT NULL, + PRIMARY KEY (pagestat_pageid,pagestat_featureid), + KEY `pagestat_pageid` (`pagestat_pageid`) +) /*$wgDBTableOptions*/; + diff --git a/db/mathsearch.sql b/db/mathsearch.sql index 931aec6..9037048 100644 --- a/db/mathsearch.sql +++ b/db/mathsearch.sql @@ -1,35 +1,35 @@ --- --- Used by the math module to keep track --- of previously-rendered items. --- -CREATE TABLE /*_*/mathindex ( - - -- Page id where the equation was found. - mathindex_page_id int(10) unsigned NOT NULL, - - -- Position of the equation on the page - -- Starting from 0 at the top of the page - mathindex_anchor int(6) unsigned NOT NULL, - - -- Reference to - -- Binary MD5 hash of the latex fragment, used as an identifier key. - mathindex_inputhash varbinary(16) NOT NULL, - - -- Timestamp. Is set by the database autmatically - mathindex_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - - PRIMARY KEY (mathindex_page_id,mathindex_anchor) - - -) /*$wgDBTableOptions*/; - - CREATE INDEX /*i*/mathindex_inputhash ON mathindex (mathindex_inputhash); - CREATE INDEX /*i*/mathindex_page_id ON mathindex (mathindex_page_id); - --- --- RELATIONEN DER TABELLE `mathindex`: --- `inputhash` --- `math` -> `math_inputhash` --- `pageid` --- `page` -> `page_id` +-- +-- Used by the math module to keep track +-- of previously-rendered items. +-- +CREATE TABLE /*_*/mathindex ( + + -- Page id where the equation was found. + mathindex_page_id int(10) unsigned NOT NULL, + + -- Position of the equation on the page + -- Starting from 0 at the top of the page + mathindex_anchor int(6) unsigned NOT NULL, + + -- Reference to + -- Binary MD5 hash of the latex fragment, used as an identifier key. + mathindex_inputhash varbinary(16) NOT NULL, + + -- Timestamp. Is set by the database autmatically + mathindex_timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + + PRIMARY KEY (mathindex_page_id,mathindex_anchor) + + +) /*$wgDBTableOptions*/; + + CREATE INDEX /*i*/mathindex_inputhash ON mathindex (mathindex_inputhash); + CREATE INDEX /*i*/mathindex_page_id ON mathindex (mathindex_page_id); + +-- +-- RELATIONEN DER TABELLE `mathindex`: +-- `inputhash` +-- `math` -> `math_inputhash` +-- `pageid` +-- `page` -> `page_id` -- \ No newline at end of file diff --git a/db/mathvarstat.sql b/db/mathvarstat.sql index d30d06b..daeb61c 100644 --- a/db/mathvarstat.sql +++ b/db/mathvarstat.sql @@ -1,11 +1,11 @@ --- --- Used by the math search module to analyse the variables in the equations. --- -CREATE TABLE /*_*/mathvarstat ( - varstat_id smallint(6) NOT NULL AUTO_INCREMENT, - varstat_featurename varchar(10) NOT NULL, - varstat_featuretype varchar(10) NOT NULL, - varstat_featurecount int(11) NOT NULL, - PRIMARY KEY (`varstat_id`), - UNIQUE KEY `varstat_featurename` (`varstat_featurename`,`varstat_featuretype`) -) /*$wgDBTableOptions*/; +-- +-- Used by the math search module to analyse the variables in the equations. +-- +CREATE TABLE /*_*/mathvarstat ( + varstat_id smallint(6) NOT NULL AUTO_INCREMENT, + varstat_featurename varchar(10) NOT NULL, + varstat_featuretype varchar(10) NOT NULL, + varstat_featurecount int(11) NOT NULL, + PRIMARY KEY (`varstat_id`), + UNIQUE KEY `varstat_featurename` (`varstat_featurename`,`varstat_featuretype`) +) /*$wgDBTableOptions*/; -- To view, visit https://gerrit.wikimedia.org/r/74153 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I7a9859d3fee140138bf287d859b27ade0cdbd4b9 Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/extensions/MathSearch Gerrit-Branch: master Gerrit-Owner: Physikerwelt <w...@physikerwelt.de> Gerrit-Reviewer: Ori.livneh <o...@wikimedia.org> Gerrit-Reviewer: Physikerwelt <w...@physikerwelt.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits