Make WordPress Core

Changeset 57317


Ignore:
Timestamp:
01/19/2024 10:05:37 PM (3 years ago)
Author:
dmsnell
Message:

HTML API: Add support for PRE and LISTING elements.

Adds support for the following HTML elements to the HTML Processor:

  • PRE, LISTING

Previously, these elements were not supported and the HTML Processor would bail when encountering them. Now, with this patch applied, it will proceed to parse an HTML document when encountering those tags.

Developed in WordPress/wordpress-develop#5903

Props jonsurrell, dmsnell
Fixes #60283

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/html-api/class-wp-html-processor.php

    r57316 r57317  
    103103 *  - Custom elements: All custom elements are supported. :)
    104104 *  - Form elements: BUTTON, DATALIST, FIELDSET, LABEL, LEGEND, METER, PROGRESS, SEARCH.
    105  *  - Formatting elements: B, BIG, CODE, EM, FONT, I, SMALL, STRIKE, STRONG, TT, U, WBR.
     105 *  - Formatting elements: B, BIG, CODE, EM, FONT, I, PRE, SMALL, STRIKE, STRONG, TT, U, WBR.
    106106 *  - Heading elements: H1, H2, H3, H4, H5, H6, HGROUP.
    107107 *  - Links: A.
    … …  
    113113 *  - Templating elements: SLOT.
    114114 *  - Text decoration: RUBY.
    115  *  - Deprecated elements: ACRONYM, BLINK, CENTER, DIR, ISINDEX, KEYGEN, MULTICOL, NEXTID, SPACER.
     115 *  - Deprecated elements: ACRONYM, BLINK, CENTER, DIR, ISINDEX, KEYGEN, LISTING, MULTICOL, NEXTID, SPACER.
    116116 *
    117117 * ### Supported markup
    … …  
    685685                        case '-HEADER':
    686686                        case '-HGROUP':
     687                        case '-LISTING':
    687688                        case '-MAIN':
    688689                        case '-MENU':
    689690                        case '-NAV':
    690691                        case '-OL':
     692                        case '-PRE':
    691693                        case '-SEARCH':
    692694                        case '-SECTION':
    … …  
    731733
    732734                                $this->insert_html_element( $this->state->current_token );
     735                                return true;
     736
     737                        /*
     738                         * > A start tag whose tag name is one of: "pre", "listing"
     739                         */
     740                        case '+PRE':
     741                        case '+LISTING':
     742                                if ( $this->state->stack_of_open_elements->has_p_in_button_scope() ) {
     743                                        $this->close_a_p_element();
     744                                }
     745                                $this->insert_html_element( $this->state->current_token );
     746                                $this->state->frameset_ok = false;
    733747                                return true;
    734748
    … …  
    10081022                        case 'LI':
    10091023                        case 'LINK':
    1010                         case 'LISTING':
    10111024                        case 'MARQUEE':
    10121025                        case 'MATH':
    … …  
    10221035                        case 'PARAM':
    10231036                        case 'PLAINTEXT':
    1024                         case 'PRE':
    10251037                        case 'RB':
    10261038                        case 'RP':
  • trunk/tests/phpunit/tests/html-api/wpHtmlProcessor.php

    r57316 r57317  
    255255                        'INPUT'     => array( 'INPUT' ),
    256256                        'LINK'      => array( 'LINK' ),
    257                         'LISTING'   => array( 'LISTING' ),
    258257                        'MARQUEE'   => array( 'MARQUEE' ),
    259258                        'MATH'      => array( 'MATH' ),
    … …  
    268267                        'PARAM'     => array( 'PARAM' ),
    269268                        'PLAINTEXT' => array( 'PLAINTEXT' ),
    270                         'PRE'       => array( 'PRE' ),
    271269                        'RB'        => array( 'RB' ),
    272270                        'RP'        => array( 'RP' ),
  • trunk/tests/phpunit/tests/html-api/wpHtmlProcessorBreadcrumbs.php

    r57316 r57317  
    177177                        'INPUT',
    178178                        'LINK',
    179                         'LISTING', // Deprecated, use PRE instead.
    180179                        'MARQUEE', // Deprecated.
    181180                        'MATH',
    … …  
    189188                        'OPTION',
    190189                        'PLAINTEXT', // Neutralized.
    191                         'PRE',
    192190                        'RB', // Neutralized.
    193191                        'RP',
Note: See TracChangeset for help on using the changeset viewer.