Plugin Directory

Changeset 3758984


Ignore:
Timestamp:
10/21/2026 07:36:24 PM (3 weeks ago)
Author:
pfefferle
Message:

Update to version 5.11.0 from GitHub

Location:
webmention
Files:
6 added
2 deleted
18 edited
1 copied

Legend:

Unmodified
Added
Removed
  • webmention/tags/5.11.0/assets/css/webmention.css

    r3731170 r3758984  
    7373        bottom: 0;
    7474        right: 0;
     75        line-height: 0;
     76        color: #1e1e1e;
     77        background-color: #fff;
     78        border-radius: 50%;
     79}
     80
     81.emoji-overlay svg,
     82.reaction-icon svg {
     83        width: 1em;
     84        height: 1em;
     85        vertical-align: middle;
    7586}
    7687
  • webmention/tags/5.11.0/includes/class-comment-type.php

    r3423242 r3758984  
    3434
    3535        /**
    36          * Single Character Emoji Representation of the Comment Type. Optional.
     36         * SVG Icon of the Comment Type. Optional.
     37         *
     38         * Defaults to the original `comment` SVG from `@wordpress/icons` 18.0.0.
    3739         *
    3840         * @var string $icon
    3941         */
    40         public $icon = '💬';
     42        public $icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M18 5.5H6C5.30964 5.5 4.75 6.05964 4.75 6.75V16V18.4096C4.75 18.8725 5.32471 19.0869 5.62784 18.7371L8 16H18C18.6904 16 19.25 15.4404 19.25 14.75V6.75C19.25 6.05964 18.6904 5.5 18 5.5Z" vector-effect="non-scaling-stroke" /></svg>';
    4143
    4244        /**
  • webmention/tags/5.11.0/includes/class-comment-walker.php

    r3748985 r3758984  
    162162                $overlay = '';
    163163                if ( $args['overlay'] && $has_avatar ) {
    164                         $overlay = '<span class="emoji-overlay">' . $icon . '</span>';
     164                        $overlay = '<span class="emoji-overlay" aria-hidden="true">' . $icon . '</span>';
    165165                }
    166166
    … …  
    182182                                                        <?php echo $overlay; ?>
    183183                                                <?php else : ?>
    184                                                         <span class="reaction-icon"><?php echo $icon; ?></span>
     184                                                        <span class="reaction-icon" aria-hidden="true"><?php echo $icon; ?></span>
    185185                                                <?php endif; ?>
    186186                                        </a>
  • webmention/tags/5.11.0/includes/class-comment.php

    r3423242 r3758984  
    101101         * Register the comment types used by the Webmention plugin
    102102         *
     103         * The icons are the original SVGs from `@wordpress/icons` 18.0.0
     104         * (`packages/icons/src/library`): repost `update`, like `thumbs-up`,
     105         * favorite `star-filled`, tag `tag`, bookmark `pin`, listen `audio`,
     106         * watch `video`, read `page`, follow `people` and mention `comment`.
     107         *
    103108         * @return void
    104109         */
    … …  
    110115                                'singular'    => __( 'Repost', 'webmention' ),
    111116                                'description' => __( 'A repost on the indieweb is a post that is purely a 100% re-publication of another (typically someone else\'s) post.', 'webmention' ),
    112                                 'icon'        => '♻️',
     117                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M12 5.5L17.7929 11.2929C18.1834 11.6834 18.1834 12.3166 17.7929 12.7071L16 14.5M16 5.5H12V9.5M12 18.5L6.20711 12.7071C5.81658 12.3166 5.81658 11.6834 6.20711 11.2929L8 9.5M8 18.5H12V14.5" vector-effect="non-scaling-stroke" /></svg>',
    113118                                'class'       => 'p-repost',
    114119                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    123128                                'singular'    => __( 'Like', 'webmention' ),
    124129                                'description' => __( 'A like is a popular webaction button and in some cases post type on various silos such as Facebook and Instagram.', 'webmention' ),
    125                                 'icon'        => '👍',
     130                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M4.00002 12L5.00001 20M13.2295 4.75C12.7709 4.75 12.3398 4.96848 12.0686 5.33829L7.06032 12.1678C7.02166 12.2205 7.00519 12.2862 7.01443 12.351L7.87735 18.3914C7.94773 18.8841 8.36965 19.25 8.8673 19.25L17.2725 19.25C17.7062 19.25 18.0905 18.9705 18.224 18.5578L20.2211 12.3848C20.4823 11.5774 19.8804 10.75 19.0318 10.75L14.9758 10.75C14.3435 10.75 13.8711 10.1689 14 9.55L14.6389 6.48326C14.8252 5.58927 14.1427 4.75 13.2295 4.75Z" vector-effect="non-scaling-stroke" /></svg>',
    126131                                'class'       => 'p-like',
    127132                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    136141                                'singular'    => __( 'Favorite', 'webmention' ),
    137142                                'description' => __( 'A favorite is a common webaction on many silos (like Flickr, Twitter), typically visually indicated with a star symbol that fills in with a color when activated (pink, orange).', 'webmention' ),
    138                                 'icon'        => '⭐',
     143                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M12 5.71576L13.6106 8.97924C13.7563 9.27438 14.0379 9.47895 14.3636 9.52628L17.965 10.0496L15.359 12.5899C15.1233 12.8196 15.0157 13.1506 15.0714 13.475L15.6866 17.0619L12.4653 15.3684C12.174 15.2152 11.826 15.2152 11.5347 15.3684L8.31341 17.0619L8.92861 13.475C8.98425 13.1506 8.8767 12.8196 8.64102 12.5899L6.03497 10.0496L9.63644 9.52628C9.96215 9.47895 10.2437 9.27438 10.3894 8.97924L12 5.71576Z" fill="currentColor" vector-effect="non-scaling-stroke" /></svg>',
    139144                                'class'       => 'p-favorite',
    140145                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    149154                                'singular'    => __( 'Tag', 'webmention' ),
    150155                                'description' => __( 'Tags or tagging refers to categorizing or labeling content, your own or others (tag-reply), with words, phrases, names, or other information, optionally linked to specific people, events, locations, such as the practice of tagging posts being about certain people (person-tag), like tagging people or other items where (area-tag) they\'re depicted in a photo.', 'webmention' ),
    151                                 'icon'        => '📌',
     156                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M4.75 12.5429V4.85C4.75 4.79477 4.79477 4.75 4.85 4.75H12.5429C12.6755 4.75 12.8027 4.80268 12.8964 4.89645L20.1464 12.1464C20.3417 12.3417 20.3417 12.6583 20.1464 12.8536L12.8536 20.1464C12.6583 20.3417 12.3417 20.3417 12.1464 20.1464L4.89645 12.8964C4.80268 12.8027 4.75 12.6755 4.75 12.5429Z" vector-effect="non-scaling-stroke" /><path d="M9.75 8.75a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" fill="currentColor" stroke="none" /></svg>',
    152157                                'class'       => 'p-tag',
    153158                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    162167                                'singular'    => __( 'Bookmark', 'webmention' ),
    163168                                'description' => __( 'A bookmark (or linkblog) is a post that is primarily comprised of a URL, often title text from that URL, sometimes optional text describing, tagging, or quoting from its contents.', 'webmention' ),
    164                                 'icon'        => '🔖',
     169                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M5 19L10 14M13.5355 17.5355L6.46447 10.4645C7.731 9.19794 9.50794 8.75292 11.1332 9.12941L14.5 4.50002L19.5 9.50002L14.8706 12.8669C15.2471 14.4921 14.8021 16.269 13.5355 17.5355Z" vector-effect="non-scaling-stroke" /></svg>',
    165170                                'class'       => 'p-bookmark',
    166171                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    175180                                'singular'    => __( 'Listen', 'webmention' ),
    176181                                'description' => __( 'A "listen" is a passive type of post used to publish a song (music or audio track, including concert recordings or DJ sets) or podcast that you have listened to.', 'webmention' ),
    177                                 'icon'        => '🎧',
     182                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M13.25 16.5C13.25 18.0188 12.0188 19.25 10.5 19.25C8.98122 19.25 7.75 18.0188 7.75 16.5C7.75 14.9812 8.98122 13.75 10.5 13.75C12.0188 13.75 13.25 14.9812 13.25 16.5Z" fill="currentColor" stroke="none" /><path d="M10.5 19.25C12.0188 19.25 13.25 18.0188 13.25 16.5C13.25 14.9812 12.0188 13.75 10.5 13.75C8.98122 13.75 7.75 14.9812 7.75 16.5C7.75 18.0188 8.98122 19.25 10.5 19.25ZM10.5 19.25C13.4867 19.25 13.75 16.5 13.75 15.1379V7.99998C13.75 4.9108 16.4 5.00254 18 5.00233" vector-effect="non-scaling-stroke" /></svg>',
    178183                                'class'       => 'p-listen',
    179184                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    188193                                'singular'    => __( 'Watch', 'webmention' ),
    189194                                'description' => __( 'A watch is a semi-passive type of post used to publish that you have watched a video (movie, TV, film), or a live show (theater, concert).', 'webmention' ),
    190                                 'icon'        => '📺',
     195                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M10 15L15 12L10 9V15Z" fill="currentColor" stroke="none" /><path d="M4.75 6C4.75 5.30964 5.30964 4.75 6 4.75H18C18.6904 4.75 19.25 5.30964 19.25 6V18C19.25 18.6904 18.6904 19.25 18 19.25H6C5.30964 19.25 4.75 18.6904 4.75 18V6Z" vector-effect="non-scaling-stroke" /></svg>',
    191196                                'class'       => 'p-watch',
    192197                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    200205                                'label'       => __( 'Reads', 'webmention' ),
    201206                                'singular'    => __( 'Read', 'webmention' ),
    202                                 'icon'        => '📖',
     207                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M8.5 8.25H15.5M8.5 11.75H15.5M8.5 15.25H15.5M18.25 18V6C18.25 5.30964 17.6904 4.75 17 4.75H7C6.30964 4.75 5.75 5.30964 5.75 6L5.75 18C5.75 18.6904 6.30964 19.25 7 19.25H17C17.6904 19.25 18.25 18.6904 18.25 18Z" vector-effect="non-scaling-stroke" /></svg>',
    203208                                'class'       => 'p-read',
    204209                                'description' => __( 'To read or reading is the act of viewing and interpreting posts or other documents; on the IndieWeb, a read post expresses that something has been read, like a book or section thereof.', 'webmention' ),
    … …  
    214219                                'singular'    => __( 'Follow', 'webmention' ),
    215220                                'description' => __( 'Follow is a common feature (and often UI button) in silo UIs (like Twitter) that adds updates from that profile (typically a person) to the stream shown in an integrated reader, and sometimes creates a follow post either in the follower\'s stream ("… followed …" or "… is following …") thus visible to their followers, and/or in the notifications of the user being followed ("… followed you").', 'webmention' ),
    216                                 'icon'        => '👣',
     221                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M4.5 17V15C4.5 13.8954 5.39543 13 6.5 13H10.5C11.6046 13 12.5 13.8954 12.5 15V17M15 13H17.5C18.6046 13 19.5 13.8954 19.5 15V17M10.25 8.5C10.25 9.4665 9.4665 10.25 8.5 10.25C7.5335 10.25 6.75 9.4665 6.75 8.5C6.75 7.5335 7.5335 6.75 8.5 6.75C9.4665 6.75 10.25 7.5335 10.25 8.5ZM17.25 8.5C17.25 9.4665 16.4665 10.25 15.5 10.25C14.5335 10.25 13.75 9.4665 13.75 8.5C13.75 7.5335 14.5335 6.75 15.5 6.75C16.4665 6.75 17.25 7.5335 17.25 8.5Z" vector-effect="non-scaling-stroke" /></svg>',
    217222                                'class'       => 'p-follow',
    218223                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    227232                                'singular'    => __( 'Mention', 'webmention' ),
    228233                                'description' => __( 'A mention is a post which links to another post without explicitly being in response to it. In contrast, a reply, like, or repost are explicit responses to a post.', 'webmention' ),
    229                                 'icon'        => '💬',
     234                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M18 5.5H6C5.30964 5.5 4.75 6.05964 4.75 6.75V16V18.4096C4.75 18.8725 5.32471 19.0869 5.62784 18.7371L8 16H18C18.6904 16 19.25 15.4404 19.25 14.75V6.75C19.25 6.05964 18.6904 5.5 18 5.5Z" vector-effect="non-scaling-stroke" /></svg>',
    230235                                'class'       => 'p-mention',
    231236                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
  • webmention/tags/5.11.0/includes/handler/class-mf2.php

    r3494831 r3758984  
    147147                }
    148148
    149                 // If debugging is on just validate that URL is validly formatted
    150                 if ( WP_DEBUG ) {
    151                         return filter_var( $str, FILTER_VALIDATE_URL ) !== false;
    152                 }
    153 
    154                 // If debugging is off limit based on WordPress parameters
    155149                return wp_http_validate_url( $str );
    156150        }
  • webmention/tags/5.11.0/readme.md

    r3748985 r3758984  
    66- Requires at least: 6.2
    77- Tested up to: 7.1
    8 - Stable tag: 5.10.2
     8- Stable tag: 5.11.0
    99- Requires PHP: 7.4
    1010- License: MIT
    … …  
    119119
    120120Project and support maintained on github at [pfefferle/wordpress-webmention](https://github.com/pfefferle/wordpress-webmention).
     121
     122### 5.11.0
     123
     124* Security: Move the debug helpers to `local/`, with `WP_DEBUG` on they turned off `reject_unsafe_urls` for every outbound request on the site and let `MF2::is_url()` accept every well-formed URL
     125* Integrate with the ActivityPub reactions block: it shows all Webmention types and replaces the Webmention facepile where it is used
     126* Use SVG icons from `@wordpress/icons` instead of emojis for the comment types
     127* Replace the deprecated `wp_no_robots()` with the `wp_robots` filter
     128* Update dependencies
    121129
    122130### 5.10.2
  • webmention/tags/5.11.0/templates/api-message.php

    r3583033 r3758984  
    55        <meta name="viewport" content="width=device-width">
    66        <?php
    7         if ( function_exists( 'wp_no_robots' ) ) {
    8                 wp_no_robots();
    9         }
     7        add_filter( 'wp_robots', 'wp_robots_no_robots' );
     8        wp_robots();
    109        ?>
    1110        <title><?php _e( 'Webmention Endpoint', 'webmention' ); ?></title>
  • webmention/tags/5.11.0/templates/endpoint-form.php

    r3729672 r3758984  
    55        <meta name="viewport" content="width=device-width">
    66        <?php
    7         if ( function_exists( 'wp_no_robots' ) ) {
    8                 wp_no_robots();
    9         }
     7        add_filter( 'wp_robots', 'wp_robots_no_robots' );
     8        wp_robots();
    109        ?>
    1110        <title><?php esc_html_e( 'Webmention Endpoint', 'webmention' ); ?></title>
  • webmention/tags/5.11.0/webmention.php

    r3748985 r3758984  
    66 * Author: Matthias Pfefferle
    77 * Author URI: https://notiz.blog/
    8  * Version: 5.10.2
     8 * Version: 5.11.0
    99 * Requires at least: 6.2
    1010 * Requires PHP: 7.4
    … …  
    1717namespace Webmention;
    1818
    19 \define( 'WEBMENTION_VERSION', '5.10.2' );
     19\define( 'WEBMENTION_VERSION', '5.11.0' );
    2020
    2121\define( 'WEBMENTION_PLUGIN_DIR', \plugin_dir_path( __FILE__ ) );
    … …  
    2727require_once WEBMENTION_PLUGIN_DIR . 'includes/functions.php';
    2828
    29 if ( \WP_DEBUG ) {
    30         require_once WEBMENTION_PLUGIN_DIR . 'includes/debug.php';
     29// Load development tools.
     30if ( 'local' === \wp_get_environment_type() ) {
     31        $loader_file = WEBMENTION_PLUGIN_DIR . 'local/load.php';
     32        if ( \file_exists( $loader_file ) && \is_readable( $loader_file ) ) {
     33                require_once $loader_file;
     34        }
    3135}
    3236
    3337// Register the autoloader.
    3438Autoloader::register_path( __NAMESPACE__, WEBMENTION_PLUGIN_DIR . 'includes' );
     39
     40require_once WEBMENTION_PLUGIN_DIR . 'integration/load.php';
    3541
    3642// Initialize the plugin.
  • webmention/trunk/assets/css/webmention.css

    r3731170 r3758984  
    7373        bottom: 0;
    7474        right: 0;
     75        line-height: 0;
     76        color: #1e1e1e;
     77        background-color: #fff;
     78        border-radius: 50%;
     79}
     80
     81.emoji-overlay svg,
     82.reaction-icon svg {
     83        width: 1em;
     84        height: 1em;
     85        vertical-align: middle;
    7586}
    7687
  • webmention/trunk/includes/class-comment-type.php

    r3423242 r3758984  
    3434
    3535        /**
    36          * Single Character Emoji Representation of the Comment Type. Optional.
     36         * SVG Icon of the Comment Type. Optional.
     37         *
     38         * Defaults to the original `comment` SVG from `@wordpress/icons` 18.0.0.
    3739         *
    3840         * @var string $icon
    3941         */
    40         public $icon = '💬';
     42        public $icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M18 5.5H6C5.30964 5.5 4.75 6.05964 4.75 6.75V16V18.4096C4.75 18.8725 5.32471 19.0869 5.62784 18.7371L8 16H18C18.6904 16 19.25 15.4404 19.25 14.75V6.75C19.25 6.05964 18.6904 5.5 18 5.5Z" vector-effect="non-scaling-stroke" /></svg>';
    4143
    4244        /**
  • webmention/trunk/includes/class-comment-walker.php

    r3748985 r3758984  
    162162                $overlay = '';
    163163                if ( $args['overlay'] && $has_avatar ) {
    164                         $overlay = '<span class="emoji-overlay">' . $icon . '</span>';
     164                        $overlay = '<span class="emoji-overlay" aria-hidden="true">' . $icon . '</span>';
    165165                }
    166166
    … …  
    182182                                                        <?php echo $overlay; ?>
    183183                                                <?php else : ?>
    184                                                         <span class="reaction-icon"><?php echo $icon; ?></span>
     184                                                        <span class="reaction-icon" aria-hidden="true"><?php echo $icon; ?></span>
    185185                                                <?php endif; ?>
    186186                                        </a>
  • webmention/trunk/includes/class-comment.php

    r3423242 r3758984  
    101101         * Register the comment types used by the Webmention plugin
    102102         *
     103         * The icons are the original SVGs from `@wordpress/icons` 18.0.0
     104         * (`packages/icons/src/library`): repost `update`, like `thumbs-up`,
     105         * favorite `star-filled`, tag `tag`, bookmark `pin`, listen `audio`,
     106         * watch `video`, read `page`, follow `people` and mention `comment`.
     107         *
    103108         * @return void
    104109         */
    … …  
    110115                                'singular'    => __( 'Repost', 'webmention' ),
    111116                                'description' => __( 'A repost on the indieweb is a post that is purely a 100% re-publication of another (typically someone else\'s) post.', 'webmention' ),
    112                                 'icon'        => '♻️',
     117                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M12 5.5L17.7929 11.2929C18.1834 11.6834 18.1834 12.3166 17.7929 12.7071L16 14.5M16 5.5H12V9.5M12 18.5L6.20711 12.7071C5.81658 12.3166 5.81658 11.6834 6.20711 11.2929L8 9.5M8 18.5H12V14.5" vector-effect="non-scaling-stroke" /></svg>',
    113118                                'class'       => 'p-repost',
    114119                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    123128                                'singular'    => __( 'Like', 'webmention' ),
    124129                                'description' => __( 'A like is a popular webaction button and in some cases post type on various silos such as Facebook and Instagram.', 'webmention' ),
    125                                 'icon'        => '👍',
     130                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M4.00002 12L5.00001 20M13.2295 4.75C12.7709 4.75 12.3398 4.96848 12.0686 5.33829L7.06032 12.1678C7.02166 12.2205 7.00519 12.2862 7.01443 12.351L7.87735 18.3914C7.94773 18.8841 8.36965 19.25 8.8673 19.25L17.2725 19.25C17.7062 19.25 18.0905 18.9705 18.224 18.5578L20.2211 12.3848C20.4823 11.5774 19.8804 10.75 19.0318 10.75L14.9758 10.75C14.3435 10.75 13.8711 10.1689 14 9.55L14.6389 6.48326C14.8252 5.58927 14.1427 4.75 13.2295 4.75Z" vector-effect="non-scaling-stroke" /></svg>',
    126131                                'class'       => 'p-like',
    127132                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    136141                                'singular'    => __( 'Favorite', 'webmention' ),
    137142                                'description' => __( 'A favorite is a common webaction on many silos (like Flickr, Twitter), typically visually indicated with a star symbol that fills in with a color when activated (pink, orange).', 'webmention' ),
    138                                 'icon'        => '⭐',
     143                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M12 5.71576L13.6106 8.97924C13.7563 9.27438 14.0379 9.47895 14.3636 9.52628L17.965 10.0496L15.359 12.5899C15.1233 12.8196 15.0157 13.1506 15.0714 13.475L15.6866 17.0619L12.4653 15.3684C12.174 15.2152 11.826 15.2152 11.5347 15.3684L8.31341 17.0619L8.92861 13.475C8.98425 13.1506 8.8767 12.8196 8.64102 12.5899L6.03497 10.0496L9.63644 9.52628C9.96215 9.47895 10.2437 9.27438 10.3894 8.97924L12 5.71576Z" fill="currentColor" vector-effect="non-scaling-stroke" /></svg>',
    139144                                'class'       => 'p-favorite',
    140145                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    149154                                'singular'    => __( 'Tag', 'webmention' ),
    150155                                'description' => __( 'Tags or tagging refers to categorizing or labeling content, your own or others (tag-reply), with words, phrases, names, or other information, optionally linked to specific people, events, locations, such as the practice of tagging posts being about certain people (person-tag), like tagging people or other items where (area-tag) they\'re depicted in a photo.', 'webmention' ),
    151                                 'icon'        => '📌',
     156                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M4.75 12.5429V4.85C4.75 4.79477 4.79477 4.75 4.85 4.75H12.5429C12.6755 4.75 12.8027 4.80268 12.8964 4.89645L20.1464 12.1464C20.3417 12.3417 20.3417 12.6583 20.1464 12.8536L12.8536 20.1464C12.6583 20.3417 12.3417 20.3417 12.1464 20.1464L4.89645 12.8964C4.80268 12.8027 4.75 12.6755 4.75 12.5429Z" vector-effect="non-scaling-stroke" /><path d="M9.75 8.75a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z" fill="currentColor" stroke="none" /></svg>',
    152157                                'class'       => 'p-tag',
    153158                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    162167                                'singular'    => __( 'Bookmark', 'webmention' ),
    163168                                'description' => __( 'A bookmark (or linkblog) is a post that is primarily comprised of a URL, often title text from that URL, sometimes optional text describing, tagging, or quoting from its contents.', 'webmention' ),
    164                                 'icon'        => '🔖',
     169                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M5 19L10 14M13.5355 17.5355L6.46447 10.4645C7.731 9.19794 9.50794 8.75292 11.1332 9.12941L14.5 4.50002L19.5 9.50002L14.8706 12.8669C15.2471 14.4921 14.8021 16.269 13.5355 17.5355Z" vector-effect="non-scaling-stroke" /></svg>',
    165170                                'class'       => 'p-bookmark',
    166171                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    175180                                'singular'    => __( 'Listen', 'webmention' ),
    176181                                'description' => __( 'A "listen" is a passive type of post used to publish a song (music or audio track, including concert recordings or DJ sets) or podcast that you have listened to.', 'webmention' ),
    177                                 'icon'        => '🎧',
     182                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M13.25 16.5C13.25 18.0188 12.0188 19.25 10.5 19.25C8.98122 19.25 7.75 18.0188 7.75 16.5C7.75 14.9812 8.98122 13.75 10.5 13.75C12.0188 13.75 13.25 14.9812 13.25 16.5Z" fill="currentColor" stroke="none" /><path d="M10.5 19.25C12.0188 19.25 13.25 18.0188 13.25 16.5C13.25 14.9812 12.0188 13.75 10.5 13.75C8.98122 13.75 7.75 14.9812 7.75 16.5C7.75 18.0188 8.98122 19.25 10.5 19.25ZM10.5 19.25C13.4867 19.25 13.75 16.5 13.75 15.1379V7.99998C13.75 4.9108 16.4 5.00254 18 5.00233" vector-effect="non-scaling-stroke" /></svg>',
    178183                                'class'       => 'p-listen',
    179184                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    188193                                'singular'    => __( 'Watch', 'webmention' ),
    189194                                'description' => __( 'A watch is a semi-passive type of post used to publish that you have watched a video (movie, TV, film), or a live show (theater, concert).', 'webmention' ),
    190                                 'icon'        => '📺',
     195                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M10 15L15 12L10 9V15Z" fill="currentColor" stroke="none" /><path d="M4.75 6C4.75 5.30964 5.30964 4.75 6 4.75H18C18.6904 4.75 19.25 5.30964 19.25 6V18C19.25 18.6904 18.6904 19.25 18 19.25H6C5.30964 19.25 4.75 18.6904 4.75 18V6Z" vector-effect="non-scaling-stroke" /></svg>',
    191196                                'class'       => 'p-watch',
    192197                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    200205                                'label'       => __( 'Reads', 'webmention' ),
    201206                                'singular'    => __( 'Read', 'webmention' ),
    202                                 'icon'        => '📖',
     207                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M8.5 8.25H15.5M8.5 11.75H15.5M8.5 15.25H15.5M18.25 18V6C18.25 5.30964 17.6904 4.75 17 4.75H7C6.30964 4.75 5.75 5.30964 5.75 6L5.75 18C5.75 18.6904 6.30964 19.25 7 19.25H17C17.6904 19.25 18.25 18.6904 18.25 18Z" vector-effect="non-scaling-stroke" /></svg>',
    203208                                'class'       => 'p-read',
    204209                                'description' => __( 'To read or reading is the act of viewing and interpreting posts or other documents; on the IndieWeb, a read post expresses that something has been read, like a book or section thereof.', 'webmention' ),
    … …  
    214219                                'singular'    => __( 'Follow', 'webmention' ),
    215220                                'description' => __( 'Follow is a common feature (and often UI button) in silo UIs (like Twitter) that adds updates from that profile (typically a person) to the stream shown in an integrated reader, and sometimes creates a follow post either in the follower\'s stream ("… followed …" or "… is following …") thus visible to their followers, and/or in the notifications of the user being followed ("… followed you").', 'webmention' ),
    216                                 'icon'        => '👣',
     221                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M4.5 17V15C4.5 13.8954 5.39543 13 6.5 13H10.5C11.6046 13 12.5 13.8954 12.5 15V17M15 13H17.5C18.6046 13 19.5 13.8954 19.5 15V17M10.25 8.5C10.25 9.4665 9.4665 10.25 8.5 10.25C7.5335 10.25 6.75 9.4665 6.75 8.5C6.75 7.5335 7.5335 6.75 8.5 6.75C9.4665 6.75 10.25 7.5335 10.25 8.5ZM17.25 8.5C17.25 9.4665 16.4665 10.25 15.5 10.25C14.5335 10.25 13.75 9.4665 13.75 8.5C13.75 7.5335 14.5335 6.75 15.5 6.75C16.4665 6.75 17.25 7.5335 17.25 8.5Z" vector-effect="non-scaling-stroke" /></svg>',
    217222                                'class'       => 'p-follow',
    218223                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
    … …  
    227232                                'singular'    => __( 'Mention', 'webmention' ),
    228233                                'description' => __( 'A mention is a post which links to another post without explicitly being in response to it. In contrast, a reply, like, or repost are explicit responses to a post.', 'webmention' ),
    229                                 'icon'        => '💬',
     234                                'icon'        => '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" style="fill: none" stroke="currentColor" stroke-width="1.5"><path d="M18 5.5H6C5.30964 5.5 4.75 6.05964 4.75 6.75V16V18.4096C4.75 18.8725 5.32471 19.0869 5.62784 18.7371L8 16H18C18.6904 16 19.25 15.4404 19.25 14.75V6.75C19.25 6.05964 18.6904 5.5 18 5.5Z" vector-effect="non-scaling-stroke" /></svg>',
    230235                                'class'       => 'p-mention',
    231236                                // translators: %1$s username, %2$s opject format (post, audio, ...), %3$s URL, %4$s domain
  • webmention/trunk/includes/handler/class-mf2.php

    r3494831 r3758984  
    147147                }
    148148
    149                 // If debugging is on just validate that URL is validly formatted
    150                 if ( WP_DEBUG ) {
    151                         return filter_var( $str, FILTER_VALIDATE_URL ) !== false;
    152                 }
    153 
    154                 // If debugging is off limit based on WordPress parameters
    155149                return wp_http_validate_url( $str );
    156150        }
  • webmention/trunk/readme.md

    r3748985 r3758984  
    66- Requires at least: 6.2
    77- Tested up to: 7.1
    8 - Stable tag: 5.10.2
     8- Stable tag: 5.11.0
    99- Requires PHP: 7.4
    1010- License: MIT
    … …  
    119119
    120120Project and support maintained on github at [pfefferle/wordpress-webmention](https://github.com/pfefferle/wordpress-webmention).
     121
     122### 5.11.0
     123
     124* Security: Move the debug helpers to `local/`, with `WP_DEBUG` on they turned off `reject_unsafe_urls` for every outbound request on the site and let `MF2::is_url()` accept every well-formed URL
     125* Integrate with the ActivityPub reactions block: it shows all Webmention types and replaces the Webmention facepile where it is used
     126* Use SVG icons from `@wordpress/icons` instead of emojis for the comment types
     127* Replace the deprecated `wp_no_robots()` with the `wp_robots` filter
     128* Update dependencies
    121129
    122130### 5.10.2
  • webmention/trunk/templates/api-message.php

    r3583033 r3758984  
    55        <meta name="viewport" content="width=device-width">
    66        <?php
    7         if ( function_exists( 'wp_no_robots' ) ) {
    8                 wp_no_robots();
    9         }
     7        add_filter( 'wp_robots', 'wp_robots_no_robots' );
     8        wp_robots();
    109        ?>
    1110        <title><?php _e( 'Webmention Endpoint', 'webmention' ); ?></title>
  • webmention/trunk/templates/endpoint-form.php

    r3729672 r3758984  
    55        <meta name="viewport" content="width=device-width">
    66        <?php
    7         if ( function_exists( 'wp_no_robots' ) ) {
    8                 wp_no_robots();
    9         }
     7        add_filter( 'wp_robots', 'wp_robots_no_robots' );
     8        wp_robots();
    109        ?>
    1110        <title><?php esc_html_e( 'Webmention Endpoint', 'webmention' ); ?></title>
  • webmention/trunk/webmention.php

    r3748985 r3758984  
    66 * Author: Matthias Pfefferle
    77 * Author URI: https://notiz.blog/
    8  * Version: 5.10.2
     8 * Version: 5.11.0
    99 * Requires at least: 6.2
    1010 * Requires PHP: 7.4
    … …  
    1717namespace Webmention;
    1818
    19 \define( 'WEBMENTION_VERSION', '5.10.2' );
     19\define( 'WEBMENTION_VERSION', '5.11.0' );
    2020
    2121\define( 'WEBMENTION_PLUGIN_DIR', \plugin_dir_path( __FILE__ ) );
    … …  
    2727require_once WEBMENTION_PLUGIN_DIR . 'includes/functions.php';
    2828
    29 if ( \WP_DEBUG ) {
    30         require_once WEBMENTION_PLUGIN_DIR . 'includes/debug.php';
     29// Load development tools.
     30if ( 'local' === \wp_get_environment_type() ) {
     31        $loader_file = WEBMENTION_PLUGIN_DIR . 'local/load.php';
     32        if ( \file_exists( $loader_file ) && \is_readable( $loader_file ) ) {
     33                require_once $loader_file;
     34        }
    3135}
    3236
    3337// Register the autoloader.
    3438Autoloader::register_path( __NAMESPACE__, WEBMENTION_PLUGIN_DIR . 'includes' );
     39
     40require_once WEBMENTION_PLUGIN_DIR . 'integration/load.php';
    3541
    3642// Initialize the plugin.
Note: See TracChangeset for help on using the changeset viewer.