MediaWiki  master
MediaWiki\Tidy\RemexCompatMunger Class Reference
Inheritance diagram for MediaWiki\Tidy\RemexCompatMunger:
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. More...
 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 17 of file RemexCompatMunger.php.

Constructor & Destructor Documentation

◆ __construct()

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

Definition at line 119 of file RemexCompatMunger.php.

Member Function Documentation

◆ characters()

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

Definition at line 181 of file RemexCompatMunger.php.

◆ comment()

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

Definition at line 490 of file RemexCompatMunger.php.

◆ doctype()

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

Definition at line 485 of file RemexCompatMunger.php.

◆ endDocument()

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

Definition at line 131 of file RemexCompatMunger.php.

◆ endTag()

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

Definition at line 475 of file RemexCompatMunger.php.

◆ error()

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

Definition at line 495 of file RemexCompatMunger.php.

◆ insertElement()

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

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 270 of file RemexCompatMunger.php.

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

◆ mergeAttributes()

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

Definition at line 499 of file RemexCompatMunger.php.

◆ removeNode()

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

Definition at line 503 of file RemexCompatMunger.php.

◆ reparentChildren()

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

◆ startDocument()

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

Definition at line 124 of file RemexCompatMunger.php.

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