wiki.techinc.nl/docs
Gergő Tisza d31580eeb0
[MCR] Render multi-slot diffs
Move logic for rendering a diff between two content objects out of
DifferenceEngine, into a new SlotDiffRenderer class. Make
DifferenceEngine use multiple SlotDiffRenderers, one per slot.

This separates the class tree for changing high-level diff properties
such as the header or the revision selection method (same as before:
subclass DifferenceEngine and override ContentHandler::getDiffEngineClass
or implement GetDifferenceEngine) and the one for changing the actual
diff rendering for a given content type (subclass SlotDiffRenderer and
override ContentHandler::getSlotDiffRenderer or implement
GetSlotDiffRenderer). To keep B/C, when SlotDiffRenderer is not overridden
for a given content type but DifferenceEngine is, that DifferenceEngine
will be used instead.
The weak point of the scheme is overriding the DifferenceEngine methods
passing control to the SlotDiffRenderers (the ones calling
getDifferenceEngines), without calling the parent. These are:
showDiffStyle, getDiffBody, getDiffBodyCacheKeyParams. Extensions doing
that will probably break in unpredictable ways (most likely, only
showing the main slot diff). Nothing in gerrit does it, at least.

A new GetSlotDiffRenderer hook is added to modify rendering for content
models not owned by the extension, much like how GetDifferenceEngine
works.

Also deprecates public access to mNewRev/mOldRev and creates public
getters instead. DifferenceEngine never supported external changes to
those properties, this just acknowledges it.

Bug: T194731
Change-Id: I2f8a9dbebd2290b7feafb20e2bb2a2693e18ba11
Depends-On: I04e885a33bfce5bccc807b9bcfe1eaa577a9fd47
Depends-On: I203d8895bf436b7fee53fe4718dede8a3b1768bc
2018-08-20 15:39:12 +02:00
..
code-coverage Tests aren't in /maintenance anymore! ;) 2012-04-15 19:21:12 +01:00
databases Remove DB2 support 2013-02-25 13:47:03 -08:00
html .gitignore for generated html doc 2012-03-31 20:17:34 +02:00
kss resourceloader: Move queue formatting out of OutputPage 2016-08-08 12:23:09 -07:00
php-memcached Fix typos 2018-08-14 09:52:19 +00:00
uidesign docs: Remove table-layout documentation from core 2018-07-19 14:39:34 +02:00
contenthandler.txt Removed deprecated ContentHandler hooks. 2017-01-18 21:19:17 +00:00
database.txt Replace wfGetLB 2018-05-02 22:30:24 +02:00
deferred.txt Fix $wgUpdateRowsPerJob default in docs/deferred.txt 2017-09-15 11:18:22 +02:00
design.txt http://www.mediawiki.org --> https://www.mediawiki.org 2014-01-28 07:06:02 +00:00
distributors.txt installer: Add support for PlatformSettings.php 2018-04-10 02:51:02 +00:00
doxygen_first_page.php Fix whitespace issues around parentheses 2015-06-16 22:14:02 +03:00
export-0.1.xsd Fix trailing whitespace (and mixed spaces) in XSD files 2012-05-27 14:03:29 +01:00
export-0.2.xsd Fix trailing whitespace (and mixed spaces) in XSD files 2012-05-27 14:03:29 +01:00
export-0.3.xsd Fix trailing whitespace (and mixed spaces) in XSD files 2012-05-27 14:03:29 +01:00
export-0.4.xsd Fix trailing whitespace (and mixed spaces) in XSD files 2012-05-27 14:03:29 +01:00
export-0.5.xsd Fix trailing whitespace (and mixed spaces) in XSD files 2012-05-27 14:03:29 +01:00
export-0.6.xsd Fix trailing whitespace (and mixed spaces) in XSD files 2012-05-27 14:03:29 +01:00
export-0.7.xsd xsd: fix id within contributor to allow 0 2012-06-27 11:31:41 +02:00
export-0.8.xsd Fix escaping of pattern in export-0.8.xsd 2012-11-03 19:38:58 +01:00
export-0.9.xsd Fix 2 0.8 to 0.9 in export-0.9.xsd 2014-07-30 21:08:46 +01:00
export-0.10.xsd Change position of <model> and <format> tags in XML dumps. 2014-10-31 16:49:58 +00:00
export-demo.xml Fix common typos 2018-08-08 13:16:45 +02:00
extension.schema.v1.json resourceloader: Remove $wgResourceLoaderLESSVars support 2018-08-14 18:57:45 +00:00
extension.schema.v2.json resourceloader: Remove $wgResourceLoaderLESSVars support 2018-08-14 18:57:45 +00:00
globals.txt Remove deprecated global $parserMemc and wfGetParserCacheStorage 2018-05-31 14:28:42 +01:00
hooks.txt [MCR] Render multi-slot diffs 2018-08-20 15:39:12 +02:00
injection.txt Allow reset of global services (redux). 2016-05-04 19:18:29 +02:00
language.txt http://www.mediawiki.org --> https://www.mediawiki.org 2014-01-28 07:06:02 +00:00
linkcache.txt ellapsed => elapsed 2015-06-23 03:32:33 +00:00
logger.txt Move MWLogger classes to MediaWiki\Logger namespace 2015-04-03 11:32:24 -07:00
magicword.txt Fixed typo: available 2014-03-15 13:02:30 +00:00
maintenance.txt Clean up some old readme files and remove references to SVN 2013-11-16 10:38:50 +00:00
memcached.txt docs: Update for deprecated $parserMemc 2018-05-31 14:25:13 +01:00
ontology.owl Add more data to categories dump 2018-01-17 00:40:16 +00:00
pageupdater.txt [MCR] Factor PageUpdater out of WikiPage 2018-06-14 13:22:13 +00:00
README Documentation link changes 2016-10-07 20:32:45 +00:00
schema.txt http://www.mediawiki.org --> https://www.mediawiki.org 2014-01-28 07:06:02 +00:00
scripts.txt Improve profileinfo.php documentation 2018-08-17 16:00:45 +01:00
sitelist-1.0.xsd Maintenance script for importing site info. 2015-02-18 18:39:14 +01:00
sitelist.txt ellapsed => elapsed 2015-06-23 03:32:33 +00:00
sitescache.txt Split SiteLookup interface from SiteStore 2015-03-18 21:31:48 +01:00
skin.txt Add 'Special:MyLanguage' in 'All skins' category link 2018-05-26 16:06:02 +02:00
title.txt Fix case of some Title methods 2013-03-26 10:54:15 +01:00

/docs Directory README
======================

The 'docs' directory contain various text files that should help you understand
the most important parts of the code of MediaWiki. More in-depth documentation
can be found at:
  https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Code
  https://www.mediawiki.org/wiki/Special:MyLanguage/Developer_hub
API documentation is automatically generated and updated daily at:
  https://doc.wikimedia.org/mediawiki-core/master/php/html/

You can get a fresh version using 'make doc' or mwdocgen.php in the
../maintenance/ directory.


For end users, most of the documentation is located online at:
  https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents
Documentation for MediaWiki site administrators is at:
  https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Contents