mirror of
https://github.com/WordPress/WordPress.git
synced 2024-10-30 23:39:42 +01:00
a636cd1c42
This patch introduces two related changes: - It adds missing subclass methods on the HTML Processor which needed to be implemented since it started visiting virtual nodes. These methods need to account for the fact that not all tokens truly exist. - It adds a new concept and internal method, `is_virtual()`, indicating if the currently-matched token comes from the raw text in the input HTML document or if it was the byproduct of semantic parsing rules. This internal method and new vocabulary around token provenance considerably simplifies the logic spread throughout the rest of the class and its subclass methods. Developed in https://github.com/WordPress/wordpress-develop/pull/6860 Discussed in https://core.trac.wordpress.org/ticket/61348 Follow-up to [58304]. Props dmsnell, jonsurrell, gziolo. See #61348. Built from https://develop.svn.wordpress.org/trunk@58558 git-svn-id: http://core.svn.wordpress.org/trunk@58006 1a063a9b-81f0-0310-95a4-ce76da25c4cd
83 lines
1.6 KiB
PHP
83 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* HTML API: WP_HTML_Stack_Event class
|
|
*
|
|
* @package WordPress
|
|
* @subpackage HTML-API
|
|
* @since 6.6.0
|
|
*/
|
|
|
|
/**
|
|
* Core class used by the HTML Processor as a record for stack operations.
|
|
*
|
|
* This class is for internal usage of the WP_HTML_Processor class.
|
|
*
|
|
* @access private
|
|
* @since 6.6.0
|
|
*
|
|
* @see WP_HTML_Processor
|
|
*/
|
|
class WP_HTML_Stack_Event {
|
|
/**
|
|
* Refers to popping an element off of the stack of open elements.
|
|
*
|
|
* @since 6.6.0
|
|
*/
|
|
const POP = 'pop';
|
|
|
|
/**
|
|
* Refers to pushing an element onto the stack of open elements.
|
|
*
|
|
* @since 6.6.0
|
|
*/
|
|
const PUSH = 'push';
|
|
|
|
/**
|
|
* References the token associated with the stack push event,
|
|
* even if this is a pop event for that element.
|
|
*
|
|
* @since 6.6.0
|
|
*
|
|
* @var WP_HTML_Token
|
|
*/
|
|
public $token;
|
|
|
|
/**
|
|
* Indicates which kind of stack operation this event represents.
|
|
*
|
|
* May be one of the class constants.
|
|
*
|
|
* @since 6.6.0
|
|
*
|
|
* @see self::POP
|
|
* @see self::PUSH
|
|
*
|
|
* @var string
|
|
*/
|
|
public $operation;
|
|
|
|
/**
|
|
* Indicates if the stack element is a real or virtual node.
|
|
*
|
|
* @since 6.6.0
|
|
*
|
|
* @var string
|
|
*/
|
|
public $provenance;
|
|
|
|
/**
|
|
* Constructor function.
|
|
*
|
|
* @since 6.6.0
|
|
*
|
|
* @param WP_HTML_Token $token Token associated with stack event, always an opening token.
|
|
* @param string $operation One of self::PUSH or self::POP.
|
|
* @param string $provenance "virtual" or "real".
|
|
*/
|
|
public function __construct( $token, $operation, $provenance ) {
|
|
$this->token = $token;
|
|
$this->operation = $operation;
|
|
$this->provenance = $provenance;
|
|
}
|
|
}
|