Making WordPress.org


Ignore:
Timestamp:
01/22/2024 01:13:35 AM (3 years ago)
Author:
dd32
Message:

Plugin Directory: Readme: Expand the number of warnings generated by the Readme parser.

This will allow for tools which reuse it to detect and warn about more invalid cases.

Props dd32, rabmalin, mukesh27.
Closes https://github.com/WordPress/wordpress.org/pull/190.
Fixes #7412.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/readme/class-parser.php

    r12582 r13133  
    145145         * @var array
    146146         */
    147         private $ignore_tags = array(
     147        public $ignore_tags = array(
    148148                'plugin',
    149149                'wordpress',
     
    226226                // Handle readme's which do `=== Plugin Name ===\nMy SuperAwesomePlugin Name\n...`
    227227                if ( 'plugin name' == strtolower( $this->name ) ) {
     228                        $this->warnings['invalid_plugin_name_header'] = true;
     229
    228230                        $this->name = $line = $this->get_first_nonwhitespace( $contents );
    229231
     
    274276                        $this->tags = array_map( 'trim', $this->tags );
    275277                        $this->tags = array_filter( $this->tags );
    276                         $this->tags = array_diff( $this->tags, $this->ignore_tags );
    277                         $this->tags = array_slice( $this->tags, 0, 5 );
     278                        if ( array_intersect( $this->tags, $this->ignore_tags ) ) {
     279                                $this->tags = array_diff( $this->tags, $this->ignore_tags );
     280                                $this->warnings['ignored_tags'] = true;
     281                        }
     282                        if ( count( $this->tags ) > 5 ) {
     283                                $this->tags = array_slice( $this->tags, 0, 5 );
     284                                $this->warnings['too_many_tags'] = true;
     285                        }
    278286                }
    279287                if ( ! empty( $headers['requires'] ) ) {
     
    409417                if ( ! $this->short_description && ! empty( $this->sections['description'] ) ) {
    410418                        $this->short_description = array_filter( explode( "\n", $this->sections['description'] ) )[0];
     419                        $this->warnings['no_short_description_present'] = true;
    411420                }
    412421
     
    415424                $this->short_description = $this->parse_markdown( $this->short_description );
    416425                $this->short_description = wp_strip_all_tags( $this->short_description );
    417                 $this->short_description = $this->trim_length( $this->short_description, 150 );
     426                $short_description       = $this->trim_length( $this->short_description, 150 );
     427                if ( $short_description !== $this->short_description ) {
     428                        if ( empty( $this->warnings['no_short_description_present'] ) ) {
     429                                $this->warnings['trimmed_short_description'] = true;
     430                        }
     431                        $this->short_description = $short_description;
     432                }
    418433
    419434                if ( isset( $this->sections['screenshots'] ) ) {
Note: See TracChangeset for help on using the changeset viewer.