Multi-Content Revisions/Rendering and Caching

This page is part of the MCR proposal. Status: collecting notes.
  • Typically, the rendering of one slot will be independent of other slots. It's produced by the getParserOutput method of the slot's Content object.
  • Some content models however may allow access to other slots (of the same revision, or of other pages), e.g. to render a wikitext infobox based on data stored separately from the wikitext.
  • To accommodate such access
    • Content::getParserOutput() should get the relevant RevisionRecord as an (optional?) parameter.
    • Parser needs a setRevisionRecord method, analogous to the setUser and setTitle methods that similarly exist to provide context.

  • The ParserCache key will have to be based on the slot name as well as the page title.
  • The purging mechanism should also be per-slot.
  • The web cache will be for a rendering of all slots of the current revision. Single slot views using the slot=foo parameter will probably not need to be cached.