Go to the documentation of this file.
31 require_once __DIR__ .
'/dumpIterator.php';
44 parent::__construct();
45 $this->saveFailed =
false;
46 $this->mDescription =
"Run a file or dump with several parsers";
47 $this->
addOption(
'parser1',
'The first parser to compare.',
true,
true );
48 $this->
addOption(
'parser2',
'The second parser to compare.',
true,
true );
49 $this->
addOption(
'tidy',
'Run tidy on the articles.',
false,
false );
50 $this->
addOption(
'save-failed',
'Folder in which articles which differ will be stored.',
false,
true );
51 $this->
addOption(
'show-diff',
'Show a diff of the two renderings.',
false,
false );
52 $this->
addOption(
'diff-bin',
'Binary to use for diffing (can also be provided by DIFF env var).',
false,
false );
53 $this->
addOption(
'strip-parameters',
'Remove parameters of html tags to increase readability.',
false,
false );
54 $this->
addOption(
'show-parsed-output',
'Show the parsed html if both Parsers give the same output.',
false,
false );
58 if ( $this->
hasOption(
'save-failed' ) ) {
59 $this->saveFailed = $this->
getOption(
'save-failed' );
62 $this->stripParametersEnabled = $this->
hasOption(
'strip-parameters' );
63 $this->showParsedOutput = $this->
hasOption(
'show-parsed-output' );
65 $this->showDiff = $this->
hasOption(
'show-diff' );
66 if ( $this->showDiff ) {
67 $bin = $this->
getOption(
'diff-bin', getenv(
'DIFF' ) );
80 $this->
error(
'Tidy was requested but $wgUseTidy is not set in LocalSettings.php',
true );
82 $this->
options->setTidy(
true );
89 $this->
error(
"{$this->failed} failed revisions out of {$this->count}" );
90 if ( $this->count > 0 ) {
91 $this->
output(
" (" . ( $this->failed / $this->count ) .
"%)\n" );
96 if ( !$this->stripParametersEnabled ) {
99 return preg_replace(
'/(<a) [^>]+>/',
'$1>', $text );
109 $parser1Name = $this->
getOption(
'parser1' );
110 $parser2Name = $this->
getOption(
'parser2' );
115 $parser1 =
new $parser1Name();
116 $parser2 =
new $parser2Name();
118 $content =
$rev->getContent();
121 $this->
error(
"Page {$title->getPrefixedText()} does not contain wikitext but {$content->getModel()}\n" );
125 $text = strval( $content->getNativeData() );
130 if ( $output1->getText() != $output2->getText() ) {
132 $this->
error(
"Parsing for {$title->getPrefixedText()} differs\n" );
134 if ( $this->saveFailed ) {
135 file_put_contents( $this->saveFailed .
'/' . rawurlencode(
$title->getPrefixedText() ) .
".txt", $text );
137 if ( $this->showDiff ) {
142 if ( $this->showParsedOutput ) {
150 if ( !class_exists( $parserName ) && file_exists(
"$parserName.php" ) ) {
skin txt MediaWiki includes four core it has been set as the default in MediaWiki since the replacing Monobook it had been been the default skin since before being replaced by Vector largely rewritten in while keeping its appearance Several legacy skins were removed in the as the burden of supporting them became too heavy to bear Those in etc for skin dependent CSS etc for skin dependent JavaScript These can also be customised on a per user by etc This feature has led to a wide variety of user styles becoming that gallery is a good place to ending in php
wfDiff( $before, $after, $params='-u')
Returns unified plain-text diff of two texts.
global $wgAutoloadClasses
static checkParserLocally( $parserName)
addOption( $name, $description, $required=false, $withArg=false, $shortName=false)
Add a parameter to the script.
require_once RUN_MAINTENANCE_IF_MAIN
const CONTENT_MODEL_WIKITEXT
__construct()
Default constructor.
processRevision( $rev)
Callback function for each revision, parse with both parsers and compare.
when a variable name is used in a it is silently declared as a new masking the global
presenting them properly to the user as errors is done by the caller $title
We ve cleaned up the code here by removing clumps of infrequently used code and moving them off somewhere else It s much easier for someone working with this code to see what s _really_ going and make changes or fix bugs In we can take all the code that deals with the little used title reversing options(say) and put it in one place. Instead of having little title-reversing if-blocks spread all over the codebase in showAnArticle
please add to it if you re going to add events to the MediaWiki code where normally authentication against an external auth plugin would be creating a account $user
Base class for interating over a dump.
presenting them properly to the user as errors is done by the caller return true use this to change the list i e etc $rev
getOption( $name, $default=null)
Get an option, or return the default.
Maintenance script to take page text out of an XML dump file and render basic HTML out to files.
error( $err, $die=0)
Throw an error to the user.
output( $out, $channel=null)
Throw some output to the user.
hasOption( $name)
Checks to see if a particular param exists.
static newFromUser( $user)
Get a ParserOptions object from a given user.