diff options
author | Andrew Dolgov <[email protected]> | 2022-12-13 20:08:43 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2022-12-13 20:08:43 +0300 |
commit | 8ea537123d1cef38f25f9fbe92e3a9c0f89de55a (patch) | |
tree | 0b40ea733af15c1f33403e42afc8afa14d48b87c /plugins/af_readability/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php | |
parent | 313f12ae9306fc62bbbfa10310a2feb20aa274c5 (diff) |
move af_readability out of master tree
Diffstat (limited to 'plugins/af_readability/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php')
-rw-r--r-- | plugins/af_readability/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php | 127 |
1 files changed, 0 insertions, 127 deletions
diff --git a/plugins/af_readability/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php b/plugins/af_readability/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php deleted file mode 100644 index 00d3951fd..000000000 --- a/plugins/af_readability/vendor/masterminds/html5/src/HTML5/Parser/TreeBuildingRules.php +++ /dev/null @@ -1,127 +0,0 @@ -<?php - -namespace Masterminds\HTML5\Parser; - -/** - * Handles special-case rules for the DOM tree builder. - * - * Many tags have special rules that need to be accomodated on an - * individual basis. This class handles those rules. - * - * See section 8.1.2.4 of the spec. - * - * @todo - colgroup and col special behaviors - * - body and head special behaviors - */ -class TreeBuildingRules -{ - protected static $tags = array( - 'li' => 1, - 'dd' => 1, - 'dt' => 1, - 'rt' => 1, - 'rp' => 1, - 'tr' => 1, - 'th' => 1, - 'td' => 1, - 'thead' => 1, - 'tfoot' => 1, - 'tbody' => 1, - 'table' => 1, - 'optgroup' => 1, - 'option' => 1, - ); - - /** - * Returns true if the given tagname has special processing rules. - */ - public function hasRules($tagname) - { - return isset(static::$tags[$tagname]); - } - - /** - * Evaluate the rule for the current tag name. - * - * This may modify the existing DOM. - * - * @return \DOMElement The new Current DOM element. - */ - public function evaluate($new, $current) - { - switch ($new->tagName) { - case 'li': - return $this->handleLI($new, $current); - case 'dt': - case 'dd': - return $this->handleDT($new, $current); - case 'rt': - case 'rp': - return $this->handleRT($new, $current); - case 'optgroup': - return $this->closeIfCurrentMatches($new, $current, array( - 'optgroup', - )); - case 'option': - return $this->closeIfCurrentMatches($new, $current, array( - 'option', - )); - case 'tr': - return $this->closeIfCurrentMatches($new, $current, array( - 'tr', - )); - case 'td': - case 'th': - return $this->closeIfCurrentMatches($new, $current, array( - 'th', - 'td', - )); - case 'tbody': - case 'thead': - case 'tfoot': - case 'table': // Spec isn't explicit about this, but it's necessary. - - return $this->closeIfCurrentMatches($new, $current, array( - 'thead', - 'tfoot', - 'tbody', - )); - } - - return $current; - } - - protected function handleLI($ele, $current) - { - return $this->closeIfCurrentMatches($ele, $current, array( - 'li', - )); - } - - protected function handleDT($ele, $current) - { - return $this->closeIfCurrentMatches($ele, $current, array( - 'dt', - 'dd', - )); - } - - protected function handleRT($ele, $current) - { - return $this->closeIfCurrentMatches($ele, $current, array( - 'rt', - 'rp', - )); - } - - protected function closeIfCurrentMatches($ele, $current, $match) - { - if (in_array($current->tagName, $match, true)) { - $current->parentNode->appendChild($ele); - } else { - $current->appendChild($ele); - } - - return $ele; - } -} |