Changeset 14709
- Timestamp:
- 03/13/2026 01:41:57 PM (6 weeks ago)
- Location:
- sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities
- Files:
-
- 2 added
- 8 edited
- 1 moved
-
class-mcp-server.php (modified) (1 diff)
-
class-registrar.php (modified) (1 diff)
-
plugins/plugin-directory/class-ability-base.php (moved) (moved from sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/plugins/plugin-directory/class-resource-base.php) (4 diffs)
-
plugins/plugin-directory/prompts/class-prepare-plugin.php (modified) (1 diff)
-
plugins/plugin-directory/resources/class-plugin-faq.php (modified) (2 diffs)
-
plugins/plugin-directory/resources/class-plugin-guidelines.php (modified) (2 diffs)
-
plugins/plugin-directory/resources/class-plugin-headers.php (modified) (2 diffs)
-
plugins/plugin-directory/resources/class-readme-standard.php (modified) (2 diffs)
-
plugins/plugin-directory/resources/class-reserved-slugs.php (modified) (4 diffs)
-
plugins/plugin-directory/tools (added)
-
plugins/plugin-directory/tools/class-validate-readme.php (added)
Legend:
- Unmodified
- Added
- Removed
-
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/class-mcp-server.php
r14703 r14709 55 55 'WordPress.org MCP Server — provides tools, resources, and prompts for interacting with WordPress.org services.', 56 56 'Use prompts/list to discover available workflows for specific tasks. Browse wporg://* resources for reference documentation.', 57 'All write operations require authentication via application password. To set up authentication, visit: https://login.wordpress.org/?action=authorize_application&app_id=c4c73a54-96d7-47b9-9bdc-1a66b9b04505',58 57 ) 59 58 ), -
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/class-registrar.php
r14703 r14709 54 54 Plugin_Directory\Resources\Plugin_FAQ::register(); 55 55 56 // Tools. 57 Plugin_Directory\Tools\Validate_Readme::register(); 58 56 59 // Prompts. 57 60 Plugin_Directory\Prompts\Prepare_Plugin::register(); -
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/plugins/plugin-directory/class-ability-base.php
r14708 r14709 1 1 <?php 2 2 /** 3 * Base class for plugin directory resourceabilities.3 * Base class for plugin directory abilities. 4 4 * 5 * Provides shared helpers for resources that pull content from6 * developer.wordpress.org (blog ID 33).5 * Provides shared utilities for abilities that interact with the 6 * plugin-directory plugin or developer.wordpress.org content. 7 7 * 8 8 * @package WordPressdotorg\Abilities\Plugins\Plugin_Directory … … 16 16 17 17 /** 18 * Resource_Base class.18 * Ability_Base class. 19 19 */ 20 class Resource_Base {20 class Ability_Base { 21 21 22 22 /** … … 26 26 */ 27 27 const DEVELOPER_BLOG_ID = 33; 28 29 /** 30 * Register the plugin-directory autoloader if it hasn't been loaded yet. 31 * 32 * This is needed when abilities reference classes from the plugin-directory 33 * plugin (e.g. Readme\Validator, Trademarks) that may not be autoloaded yet. 34 */ 35 protected static function maybe_load_plugin_directory(): void { 36 static $loaded = false; 37 38 if ( $loaded ) { 39 return; 40 } 41 42 $autoloader = WP_PLUGIN_DIR . '/plugin-directory/class-autoloader.php'; 43 44 if ( ! file_exists( $autoloader ) ) { 45 return; 46 } 47 48 require_once $autoloader; 49 \WordPressdotorg\Plugin_Directory\Autoloader\register_class_path( 50 'WordPressdotorg\\Plugin_Directory', 51 WP_PLUGIN_DIR . '/plugin-directory' 52 ); 53 54 $loaded = true; 55 } 56 57 /** 58 * Convert HTML to markdown when available, falling back to plain text. 59 * 60 * Uses the wp_html_to_markdown() function from the html-to-md mu-plugin 61 * when available. Falls back to stripping tags if the converter is not loaded. 62 * 63 * @param string $html The HTML string to convert. 64 * @return string The converted text. 65 */ 66 protected static function html_to_text( string $html ): string { 67 if ( function_exists( 'wp_html_to_markdown' ) ) { 68 return wp_html_to_markdown( $html ); 69 } 70 71 return wp_strip_all_tags( $html ); 72 } 28 73 29 74 /** … … 63 108 } 64 109 65 $mime_type = 'text/html'; 66 67 if ( function_exists( 'wp_html_to_markdown' ) ) { 68 $text = wp_html_to_markdown( $text ); 69 $mime_type = 'text/markdown'; 70 } 110 $text = self::html_to_text( $text ); 111 $mime_type = function_exists( 'wp_html_to_markdown' ) ? 'text/markdown' : 'text/plain'; 71 112 72 113 return array( -
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/plugins/plugin-directory/prompts/class-prepare-plugin.php
r14703 r14709 87 87 ## Step 3: Validate readme.txt 88 88 89 Use the `wporg/ validate-readme` tool with the contents of `{$plugin_path}/readme.txt`.89 Use the `wporg/plugins/plugin-directory/validate-readme` tool with the contents of `{$plugin_path}/readme.txt`. 90 90 91 91 If no readme.txt exists, create one following the `wporg://plugins/plugin-directory/readme-standard` resource. -
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/plugins/plugin-directory/resources/class-plugin-faq.php
r14703 r14709 10 10 namespace WordPressdotorg\Abilities\Plugins\Plugin_Directory\Resources; 11 11 12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\ Resource_Base;12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\Ability_Base; 13 13 14 14 defined( 'ABSPATH' ) || exit; … … 17 17 * Plugin_FAQ class. 18 18 */ 19 class Plugin_FAQ extends Resource_Base {19 class Plugin_FAQ extends Ability_Base { 20 20 21 21 /** -
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/plugins/plugin-directory/resources/class-plugin-guidelines.php
r14703 r14709 10 10 namespace WordPressdotorg\Abilities\Plugins\Plugin_Directory\Resources; 11 11 12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\ Resource_Base;12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\Ability_Base; 13 13 14 14 defined( 'ABSPATH' ) || exit; … … 17 17 * Plugin_Guidelines class. 18 18 */ 19 class Plugin_Guidelines extends Resource_Base {19 class Plugin_Guidelines extends Ability_Base { 20 20 21 21 /** -
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/plugins/plugin-directory/resources/class-plugin-headers.php
r14703 r14709 10 10 namespace WordPressdotorg\Abilities\Plugins\Plugin_Directory\Resources; 11 11 12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\ Resource_Base;12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\Ability_Base; 13 13 14 14 defined( 'ABSPATH' ) || exit; … … 17 17 * Plugin_Headers class. 18 18 */ 19 class Plugin_Headers extends Resource_Base {19 class Plugin_Headers extends Ability_Base { 20 20 21 21 /** -
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/plugins/plugin-directory/resources/class-readme-standard.php
r14703 r14709 10 10 namespace WordPressdotorg\Abilities\Plugins\Plugin_Directory\Resources; 11 11 12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\ Resource_Base;12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\Ability_Base; 13 13 14 14 defined( 'ABSPATH' ) || exit; … … 17 17 * Readme_Standard class. 18 18 */ 19 class Readme_Standard extends Resource_Base {19 class Readme_Standard extends Ability_Base { 20 20 21 21 /** -
sites/trunk/wordpress.org/public_html/wp-content/plugins/wporg-abilities/plugins/plugin-directory/resources/class-reserved-slugs.php
r14703 r14709 10 10 namespace WordPressdotorg\Abilities\Plugins\Plugin_Directory\Resources; 11 11 12 use WordPressdotorg\Abilities\Plugins\Plugin_Directory\Ability_Base; 12 13 use WordPressdotorg\Plugin_Directory\Admin\Metabox\Review_Tools; 13 14 use WordPressdotorg\Plugin_Directory\Trademarks; … … 18 19 * Reserved_Slugs class. 19 20 */ 20 class Reserved_Slugs {21 class Reserved_Slugs extends Ability_Base { 21 22 22 23 /** … … 46 47 */ 47 48 public static function execute(): array { 48 self::maybe_load_plugin_directory _autoloader();49 self::maybe_load_plugin_directory(); 49 50 50 51 if ( class_exists( Trademarks::class ) && class_exists( Review_Tools::class ) ) { … … 60 61 'mimeType' => 'text/markdown', 61 62 ), 62 );63 }64 65 /**66 * Register the plugin-directory autoloader if it hasn't been loaded yet.67 */68 private static function maybe_load_plugin_directory_autoloader(): void {69 if ( class_exists( Trademarks::class, false ) ) {70 return;71 }72 73 $autoloader = WP_PLUGIN_DIR . '/plugin-directory/class-autoloader.php';74 75 if ( ! file_exists( $autoloader ) ) {76 return;77 }78 79 require_once $autoloader;80 \WordPressdotorg\Plugin_Directory\Autoloader\register_class_path(81 'WordPressdotorg\\Plugin_Directory',82 WP_PLUGIN_DIR . '/plugin-directory'83 63 ); 84 64 }
Note: See TracChangeset
for help on using the changeset viewer.