Per wikitech-l discussion. This also removes a <meta> tag that was
completely pointless, but theoretically required by XHTML 1, yet causes
the HTML 5 validator to complain.
Together with a few other recent commits, this should cause at least
Special:BlankPage to validate as HTML 5. Real pages may still have some
invalid markup that should be fixed -- in a large majority of cases,
markup that was poor practice in XHTML as well. (The Wikimedia
copyright icon needs to have border="0" removed for everything to
validate 100% on Wikipedia.)
By Brion's request, this is still behind a config option, and can be
disabled with $wgHtml5 = false;. I expect we'll be able to remove that
option in the near future, once everyone is satisfied that changing two
lines of HTML output that all browsers have demonstrably ignored since
the Paleolithic won't cause all Wikipedia users' computers to undergo a
spontaneous uncontrolled fission reaction or something.
* Renamed Article::outputFromWikitext() to Article::getOutputFromWikitext()
* Factored out cascade protection updates
* Removed recently-added Article::tryParserCache(): misnamed, can be done in one line of code in the caller. Deprecated OutputPage::tryParserCache().
* Made some functions public instead of protected when they could be useful from hooks.
* In ParserCache, removed PHP 4-style ampersands
In Article::view():
* Factored out robot policy logic, "redirected from" header, patrol footer, diff page, revdelete header, CSS/JS formatting, footer, namespace header, missing article error
* Removed some variables, renamed some others, fixed incorrect use of empty()
* Used the refactored footer section to do a couple of early returns and unindent a massive if(!$outputDone) block
* Removed fantasy interpretation of $this->getContent()===false in comment
* Don't try the parser cache when ArticleViewHeader specified $outputDone=true
* Move timing hack to getOutputFromWikitext()
* Stop using $wgOut->parserOptions() with save/restore nonsense every time you want to change something in it. This is meant to be OOP.
* Don't overwrite the article text with an error message and then pretend to write it to the cache, that's confusing
This was less work than I thought it would be. The only possible
practical difference in MonoBook should be that some IE fixes are moved
down; at a glance, I don't see how this would hurt anything, but if it
does then some more hacks can be added to move them back up.
A bunch of whitespace was changed in both MonoBook and legacy skins.
Legacy skins had some stuff moved around in the <head>, but mainly to
better match MonoBook, so they should work better if anything, not
worse. dir= was added to the <body> in legacy skins, matching MonoBook.
There should be no other practical differences.
I would strongly encourage people to port the Modern and Vector skins to
at least share the <head>-generation code like this. I'd even more
strongly encourage people to totally rewrite the skin system, but that's
a bigger job. :)
* use array type parameter instead of string to escapeLocalUrl(), getFullURL() and getFullUrl() for readability
* add FIXME in Parser.php and LogEventsList.php where I didn't know how to replace makeKnownLinkObj by link()
* return type for private method Skin::editUrlOptions() changed from string to array
* some code readability improvements
Linking this to r51559 for CodeReview as there is some discussion there, and these changes are very similar.
Todo: core special pages
* fix for r49324: work arround E_STRICT: only variables should be passed by reference (OutputPage::getTitle() doesn't return a reference but OutputPage::addWikiTextTitle() want one)
Localization issues with the description text should be ironed out first... also test use of rel="alternate" on the main links if that works, could save the extra metadata.
Mostly seems to be formatting tweaks, loss of useful debug log output, and mysterious unexplained changes.
If some of these tweaks actually are based on profiling data, please provide details, such as "rearranging this call reduces service time from 80ms to 50ms for client cache hits on my machine" or whatever.