MediaWiki master
MediaWiki\Tidy\RemexCompatMunger Class Reference

Inherits TreeHandler.

Collaboration diagram for MediaWiki\Tidy\RemexCompatMunger:

Public Member Functions

 __construct (Serializer $serializer, $trace=false)
 characters ( $preposition, $refElement, $text, $start, $length, $sourceStart, $sourceLength)
 comment ( $preposition, $refElement, $text, $sourceStart, $sourceLength)
 doctype ( $name, $public, $system, $quirks, $sourceStart, $sourceLength)
 endDocument ( $pos)
 endTag (Element $element, $sourceStart, $sourceLength)
 error ( $text, $pos)
 insertElement ( $preposition, $refElement, Element $element, $void, $sourceStart, $sourceLength)
 Insert or reparent an element.
 mergeAttributes (Element $element, Attributes $attrs, $sourceStart)
 removeNode (Element $element, $sourceStart)
 reparentChildren (Element $element, Element $newParent, $sourceStart)
 startDocument ( $fragmentNamespace, $fragmentName)

Detailed Description

Access: internal

Definition at line 18 of file RemexCompatMunger.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Tidy\RemexCompatMunger::__construct ( Serializer $serializer,
$trace = false )

Definition at line 120 of file RemexCompatMunger.php.

Member Function Documentation

◆ characters()

MediaWiki\Tidy\RemexCompatMunger::characters ( $preposition,
$sourceLength )

Definition at line 182 of file RemexCompatMunger.php.

◆ comment()

MediaWiki\Tidy\RemexCompatMunger::comment ( $preposition,
$sourceLength )

Definition at line 491 of file RemexCompatMunger.php.

◆ doctype()

MediaWiki\Tidy\RemexCompatMunger::doctype ( $name,
$sourceLength )

Definition at line 486 of file RemexCompatMunger.php.

◆ endDocument()

MediaWiki\Tidy\RemexCompatMunger::endDocument ( $pos)

Definition at line 132 of file RemexCompatMunger.php.

◆ endTag()

MediaWiki\Tidy\RemexCompatMunger::endTag ( Element $element,
$sourceLength )

◆ error()

MediaWiki\Tidy\RemexCompatMunger::error ( $text,
$pos )

Definition at line 496 of file RemexCompatMunger.php.

◆ insertElement()

MediaWiki\Tidy\RemexCompatMunger::insertElement ( $preposition,
Element $element,
$sourceLength )

Insert or reparent an element.

Create p-wrappers or split the tag stack as necessary.

Consider the following insertion locations. The parent may be:

  • A: A body or blockquote (!!needsPWrapping)
  • B: A p-wrapper (!!isPWrapper)
  • C: A descendant of a p-wrapper (!!ancestorPNode)
    • CS: With splittable formatting elements in the stack region up to the p-wrapper
    • CU: With one or more unsplittable elements in the stack region up to the p-wrapper
  • D: Not a descendant of a p-wrapper (!ancestorNode)
    • DS: With splittable formatting elements in the stack region up to the body or blockquote
    • DU: With one or more unsplittable elements in the stack region up to the body or blockquote

And consider that we may insert two types of element:

  • b: block
  • i: inline

We handle the insertion as follows:

  • A/i: Create a p-wrapper, insert under it
  • A/b: Insert as normal
  • B/i: Insert as normal
  • B/b: Close the p-wrapper, insert under the body/blockquote (wrap base) instead)
  • C/i: Insert as normal
  • CS/b: Split the tag stack, insert the block under cloned formatting elements which have the wrap base (the parent of the p-wrap) as their ultimate parent.
  • CU/b: Disable the p-wrap, by reparenting the currently open child of the p-wrap under the p-wrap's parent. Then insert the block as normal.
  • D/b: Insert as normal
  • DS/i: Split the tag stack, creating a new p-wrapper as the ultimate parent of the formatting elements thus cloned. The parent of the p-wrapper is the body or blockquote.
  • DU/i: Insert as normal

FIXME: fostering ($preposition == BEFORE) is mostly done by inserting as normal, the full algorithm is not followed.

Element | SerializerNode | null$refElement

Definition at line 271 of file RemexCompatMunger.php.

Referenced by MediaWiki\Tidy\RemexCompatMunger\reparentChildren().

◆ mergeAttributes()

MediaWiki\Tidy\RemexCompatMunger::mergeAttributes ( Element $element,
Attributes $attrs,
$sourceStart )

Definition at line 500 of file RemexCompatMunger.php.

◆ removeNode()

MediaWiki\Tidy\RemexCompatMunger::removeNode ( Element $element,
$sourceStart )

Definition at line 504 of file RemexCompatMunger.php.

◆ reparentChildren()

MediaWiki\Tidy\RemexCompatMunger::reparentChildren ( Element $element,
Element $newParent,
$sourceStart )

◆ startDocument()

MediaWiki\Tidy\RemexCompatMunger::startDocument ( $fragmentNamespace,
$fragmentName )

Definition at line 125 of file RemexCompatMunger.php.

The documentation for this class was generated from the following file: