Changeset 3415717
- Timestamp:
- 12/09/2025 06:39:19 PM (4 months ago)
- Location:
- link-extension-for-xfn
- Files:
-
- 5 added
- 4 edited
-
assets/blueprints/blueprint.json (modified) (3 diffs)
-
trunk/DEPLOY-1.0.3.md (added)
-
trunk/assets/blueprints/blueprint-improved.json (added)
-
trunk/assets/blueprints/blueprint.json (modified) (3 diffs)
-
trunk/cors-server.py (added)
-
trunk/deploy-blueprint-only.sh (added)
-
trunk/link-extension-for-xfn.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/test-blueprint.html (added)
Legend:
- Unmodified
- Added
- Removed
-
link-extension-for-xfn/assets/blueprints/blueprint.json
r3415636 r3415717 1 1 { 2 2 "$schema": "https://playground.wordpress.net/blueprint-schema.json", 3 "landingPage": "/ wp-admin/post-new.php",3 "landingPage": "/xfn-demo/", 4 4 "preferredVersions": { 5 5 "php": "8.0", … … 12 12 "networking": true 13 13 }, 14 "login": true, 14 15 "steps": [ 15 {16 "step": "login",17 "username": "admin",18 "password": "password"19 },20 16 { 21 17 "step": "installPlugin", … … 31 27 { 32 28 "step": "runPHP", 33 "code": "<?php require '/wordpress/wp-load.php'; wp_insert_post(array('post_title' => 'XFN Demo Post - Try It Out!', 'post_content' => '<!-- wp:heading --><h2 class=\"wp-block-heading\">Welcome to XFN Link Extension Demo</h2><!-- /wp:heading --><!-- wp:paragraph --><p>This demo showcases how XFN (XHTML Friends Network) relationships work across different block types. Inspect the links below to see the <code>rel</code> attributes in action!</p><!-- /wp:paragraph --><!-- wp:heading {\"level\":3} --><h3 class=\"wp-block-heading\">Inline Paragraph Links with Multiple XFN Attributes</h3><!-- /wp:heading --><!-- wp:paragraph --><p>I work with <a href=\"https://example.com/sarah\" rel=\"colleague met co-worker\">Sarah, my colleague</a> at the office. She is also someone I have met in person. Check out <a href=\"https://example.com/john\" rel=\"friend met\">my friend John'\''s website</a> - we'\''ve been friends for years! You can also visit <a href=\"https://courtneyr.dev\" rel=\"me\">my personal website</a> to learn more about me.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>My <a href=\"https://example.com/family\" rel=\"sibling met\">brother'\''s blog</a> has great content about technology and design.</p><!-- /wp:paragraph --><!-- wp:heading {\"level\":3} --><h3 class=\"wp-block-heading\">Button Block with XFN</h3><!-- /wp:heading --><!-- wp:paragraph --><p>This button has multiple XFN relationships (friend + met + colleague):</p><!-- /wp:paragraph --><!-- wp:buttons --><div class=\"wp-block-buttons\"><!-- wp:button {\"metadata\":{\"rel\":\"friend met colleague\"}} --><div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https://example.com/coworker-friend\">Visit My Friend & Colleague</a></div><!-- /wp:button --></div><!-- /wp:buttons --><!-- wp:heading {\"level\":3} --><h3 class=\"wp-block-heading\">Embed Block with XFN</h3><!-- /wp:heading --><!-- wp:paragraph --><p>This YouTube video is from a friend'\''s channel (XFN: friend + met):</p><!-- /wp:paragraph --><!-- wp:embed {\"url\":\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\"type\":\"video\",\"providerNameSlug\":\"youtube\",\"metadata\":{\"rel\":\"friend met\"}} --><figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">https://www.youtube.com/watch?v=dQw4w9WgXcQ</div></figure><!-- /wp:embed --><!-- wp:heading {\"level\":3} --><h3 class=\"wp-block-heading\">How to Inspect XFN Attributes</h3><!-- /wp:heading --><!-- wp:list {\"ordered\":true} --><ol class=\"wp-block-list\"><!-- wp:list-item --><li>Right-click any link above and select <strong>Inspect</strong></li><!-- /wp:list-item --><!-- wp:list-item --><li>Look for the <code>rel</code> attribute in the <code><a></code> tag</li><!-- /wp:list-item --><!-- wp:list-item --><li>For inline links: <code>rel=\"colleague met co-worker\"</code></li><!-- /wp:list-item --><!-- wp:list-item --><li>For embeds: <code>data-xfn-rel=\"friend met\"</code> on the figure element</li><!-- /wp:list-item --></ol><!-- /wp:list --><!-- wp:paragraph --><p><strong>Now try adding your own XFN relationships!</strong> Go to <strong>Settings → Link Extension for XFN</strong> and enable Inspector Controls to add XFN to buttons, images, and embeds via the sidebar.</p><!-- /wp:paragraph -->', 'post_status' => 'draft')); ?>"29 "code": "<?php require '/wordpress/wp-load.php'; update_option('xfn_link_extension_options', array('enable_inspector_controls' => true, 'enable_floating_toolbar' => false)); ?>" 34 30 }, 35 31 { 36 "step": "runPHP", 37 "code": "<?php require '/wordpress/wp-load.php'; update_option('xfn_link_extension_options', array('enable_inspector_controls' => true, 'enable_floating_toolbar' => false)); ?>" 32 "step": "runPHPWithOptions", 33 "options": { 34 "code": "<?php\n\t\t\t\trequire_once '/wordpress/wp-load.php';\n\t\t\t\t$content = getenv('CONTENT');\n\n\t\t\t\t// Insert the post exactly as it is\n\t\t\t\tremove_all_filters('content_save_pre');\n\t\t\t\tremove_all_filters('content_filtered_save_pre');\n\t\t\t\tremove_all_filters('excerpt_save_pre');\n\t\t\t\tremove_all_filters('pre_comment_content');\n\t\t\t\tremove_all_filters('pre_user_description');\n\n\t\t\t\twp_insert_post([\n\t\t\t\t\t'post_title' => 'XFN Demo - Try It Out!',\n\t\t\t\t\t'post_content' => $content,\n\t\t\t\t\t'post_status' => 'publish',\n\t\t\t\t\t'post_type' => 'page',\n\t\t\t\t\t'post_name' => 'xfn-demo',\n\t\t\t\t]);\n\t\t\t\t", 35 "env": { 36 "CONTENT": "<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Welcome to XFN Link Extension Demo</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This demo showcases how XFN (XHTML Friends Network) relationships work across different block types. <strong>Right-click any link below and select \"Inspect\"</strong> to see the <code>rel</code> attributes in action!</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">📝 Inline Paragraph Links with Multiple XFN Attributes</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>I work with <a href=\"https://example.com/sarah\" rel=\"colleague met co-worker\">Sarah, my colleague</a> at the office. She is also someone I have met in person. Check out <a href=\"https://example.com/john\" rel=\"friend met\">my friend John's website</a> - we've been friends for years! You can also visit <a href=\"https://courtneyr.dev\" rel=\"me\">my personal website</a> to learn more about me.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>My <a href=\"https://example.com/family\" rel=\"sibling met\">brother's blog</a> has great content about technology and design.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">🔘 Button Block with XFN</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This button has multiple XFN relationships (friend + met + colleague):</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:buttons -->\n<div class=\"wp-block-buttons\"><!-- wp:button {\"metadata\":{\"rel\":\"friend met colleague\"}} -->\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https://example.com/coworker-friend\" rel=\"friend met colleague\">Visit My Friend & Colleague</a></div>\n<!-- /wp:button --></div>\n<!-- /wp:buttons -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">📺 Embed Block with XFN</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This YouTube video is from a friend's channel. <strong>Inspect the <code><figure></code> element</strong> to see <code>data-xfn-rel=\"friend met\"</code>:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:embed {\"url\":\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\"type\":\"video\",\"providerNameSlug\":\"youtube\",\"responsive\":true,\"metadata\":{\"rel\":\"friend met\"}} -->\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps://www.youtube.com/watch?v=dQw4w9WgXcQ\n</div></figure>\n<!-- /wp:embed -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">🔍 How to Inspect XFN Attributes</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Right-click any link above and select <strong>Inspect</strong></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Look for the <code>rel</code> attribute in the <code><a></code> tag</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>For inline links: <code>rel=\"colleague met co-worker\"</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>For embeds: <code>data-xfn-rel=\"friend met\"</code> on the <code><figure></code> element</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">✅ Expected Results</h3>\n<!-- /wp:heading -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Link Text</th><th>Expected rel Attribute</th></tr></thead><tbody><tr><td>Sarah, my colleague</td><td><code>rel=\"colleague met co-worker\"</code></td></tr><tr><td>my friend John's website</td><td><code>rel=\"friend met\"</code></td></tr><tr><td>my personal website</td><td><code>rel=\"me\"</code></td></tr><tr><td>brother's blog</td><td><code>rel=\"sibling met\"</code></td></tr><tr><td>Visit My Friend & Colleague (button)</td><td><code>rel=\"friend met colleague\"</code></td></tr><tr><td>YouTube embed</td><td><code>data-xfn-rel=\"friend met\"</code> on figure</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">🎨 Try It Yourself!</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Want to add your own XFN relationships?</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Go to <strong>Settings → Link Extension for XFN</strong> (Inspector Controls are already enabled)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Select any button or embed block</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Look in the right sidebar for the <strong>XFN Relationships</strong> panel</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Choose relationships and they'll automatically save</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>For inline paragraph links, select text, create a link, click <strong>Advanced</strong>, expand the <strong>XFN</strong> section, and choose your relationships!</p>\n<!-- /wp:paragraph -->" 37 } 38 } 38 39 } 39 40 ] -
link-extension-for-xfn/trunk/assets/blueprints/blueprint.json
r3415636 r3415717 1 1 { 2 2 "$schema": "https://playground.wordpress.net/blueprint-schema.json", 3 "landingPage": "/ wp-admin/post-new.php",3 "landingPage": "/xfn-demo/", 4 4 "preferredVersions": { 5 5 "php": "8.0", … … 12 12 "networking": true 13 13 }, 14 "login": true, 14 15 "steps": [ 15 {16 "step": "login",17 "username": "admin",18 "password": "password"19 },20 16 { 21 17 "step": "installPlugin", … … 31 27 { 32 28 "step": "runPHP", 33 "code": "<?php require '/wordpress/wp-load.php'; wp_insert_post(array('post_title' => 'XFN Demo Post - Try It Out!', 'post_content' => '<!-- wp:heading --><h2 class=\"wp-block-heading\">Welcome to XFN Link Extension Demo</h2><!-- /wp:heading --><!-- wp:paragraph --><p>This demo showcases how XFN (XHTML Friends Network) relationships work across different block types. Inspect the links below to see the <code>rel</code> attributes in action!</p><!-- /wp:paragraph --><!-- wp:heading {\"level\":3} --><h3 class=\"wp-block-heading\">Inline Paragraph Links with Multiple XFN Attributes</h3><!-- /wp:heading --><!-- wp:paragraph --><p>I work with <a href=\"https://example.com/sarah\" rel=\"colleague met co-worker\">Sarah, my colleague</a> at the office. She is also someone I have met in person. Check out <a href=\"https://example.com/john\" rel=\"friend met\">my friend John'\''s website</a> - we'\''ve been friends for years! You can also visit <a href=\"https://courtneyr.dev\" rel=\"me\">my personal website</a> to learn more about me.</p><!-- /wp:paragraph --><!-- wp:paragraph --><p>My <a href=\"https://example.com/family\" rel=\"sibling met\">brother'\''s blog</a> has great content about technology and design.</p><!-- /wp:paragraph --><!-- wp:heading {\"level\":3} --><h3 class=\"wp-block-heading\">Button Block with XFN</h3><!-- /wp:heading --><!-- wp:paragraph --><p>This button has multiple XFN relationships (friend + met + colleague):</p><!-- /wp:paragraph --><!-- wp:buttons --><div class=\"wp-block-buttons\"><!-- wp:button {\"metadata\":{\"rel\":\"friend met colleague\"}} --><div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https://example.com/coworker-friend\">Visit My Friend & Colleague</a></div><!-- /wp:button --></div><!-- /wp:buttons --><!-- wp:heading {\"level\":3} --><h3 class=\"wp-block-heading\">Embed Block with XFN</h3><!-- /wp:heading --><!-- wp:paragraph --><p>This YouTube video is from a friend'\''s channel (XFN: friend + met):</p><!-- /wp:paragraph --><!-- wp:embed {\"url\":\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\"type\":\"video\",\"providerNameSlug\":\"youtube\",\"metadata\":{\"rel\":\"friend met\"}} --><figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">https://www.youtube.com/watch?v=dQw4w9WgXcQ</div></figure><!-- /wp:embed --><!-- wp:heading {\"level\":3} --><h3 class=\"wp-block-heading\">How to Inspect XFN Attributes</h3><!-- /wp:heading --><!-- wp:list {\"ordered\":true} --><ol class=\"wp-block-list\"><!-- wp:list-item --><li>Right-click any link above and select <strong>Inspect</strong></li><!-- /wp:list-item --><!-- wp:list-item --><li>Look for the <code>rel</code> attribute in the <code><a></code> tag</li><!-- /wp:list-item --><!-- wp:list-item --><li>For inline links: <code>rel=\"colleague met co-worker\"</code></li><!-- /wp:list-item --><!-- wp:list-item --><li>For embeds: <code>data-xfn-rel=\"friend met\"</code> on the figure element</li><!-- /wp:list-item --></ol><!-- /wp:list --><!-- wp:paragraph --><p><strong>Now try adding your own XFN relationships!</strong> Go to <strong>Settings → Link Extension for XFN</strong> and enable Inspector Controls to add XFN to buttons, images, and embeds via the sidebar.</p><!-- /wp:paragraph -->', 'post_status' => 'draft')); ?>"29 "code": "<?php require '/wordpress/wp-load.php'; update_option('xfn_link_extension_options', array('enable_inspector_controls' => true, 'enable_floating_toolbar' => false)); ?>" 34 30 }, 35 31 { 36 "step": "runPHP", 37 "code": "<?php require '/wordpress/wp-load.php'; update_option('xfn_link_extension_options', array('enable_inspector_controls' => true, 'enable_floating_toolbar' => false)); ?>" 32 "step": "runPHPWithOptions", 33 "options": { 34 "code": "<?php\n\t\t\t\trequire_once '/wordpress/wp-load.php';\n\t\t\t\t$content = getenv('CONTENT');\n\n\t\t\t\t// Insert the post exactly as it is\n\t\t\t\tremove_all_filters('content_save_pre');\n\t\t\t\tremove_all_filters('content_filtered_save_pre');\n\t\t\t\tremove_all_filters('excerpt_save_pre');\n\t\t\t\tremove_all_filters('pre_comment_content');\n\t\t\t\tremove_all_filters('pre_user_description');\n\n\t\t\t\twp_insert_post([\n\t\t\t\t\t'post_title' => 'XFN Demo - Try It Out!',\n\t\t\t\t\t'post_content' => $content,\n\t\t\t\t\t'post_status' => 'publish',\n\t\t\t\t\t'post_type' => 'page',\n\t\t\t\t\t'post_name' => 'xfn-demo',\n\t\t\t\t]);\n\t\t\t\t", 35 "env": { 36 "CONTENT": "<!-- wp:heading -->\n<h2 class=\"wp-block-heading\">Welcome to XFN Link Extension Demo</h2>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This demo showcases how XFN (XHTML Friends Network) relationships work across different block types. <strong>Right-click any link below and select \"Inspect\"</strong> to see the <code>rel</code> attributes in action!</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">📝 Inline Paragraph Links with Multiple XFN Attributes</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>I work with <a href=\"https://example.com/sarah\" rel=\"colleague met co-worker\">Sarah, my colleague</a> at the office. She is also someone I have met in person. Check out <a href=\"https://example.com/john\" rel=\"friend met\">my friend John's website</a> - we've been friends for years! You can also visit <a href=\"https://courtneyr.dev\" rel=\"me\">my personal website</a> to learn more about me.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>My <a href=\"https://example.com/family\" rel=\"sibling met\">brother's blog</a> has great content about technology and design.</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">🔘 Button Block with XFN</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This button has multiple XFN relationships (friend + met + colleague):</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:buttons -->\n<div class=\"wp-block-buttons\"><!-- wp:button {\"metadata\":{\"rel\":\"friend met colleague\"}} -->\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https://example.com/coworker-friend\" rel=\"friend met colleague\">Visit My Friend & Colleague</a></div>\n<!-- /wp:button --></div>\n<!-- /wp:buttons -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">📺 Embed Block with XFN</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p>This YouTube video is from a friend's channel. <strong>Inspect the <code><figure></code> element</strong> to see <code>data-xfn-rel=\"friend met\"</code>:</p>\n<!-- /wp:paragraph -->\n\n<!-- wp:embed {\"url\":\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\",\"type\":\"video\",\"providerNameSlug\":\"youtube\",\"responsive\":true,\"metadata\":{\"rel\":\"friend met\"}} -->\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\nhttps://www.youtube.com/watch?v=dQw4w9WgXcQ\n</div></figure>\n<!-- /wp:embed -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">🔍 How to Inspect XFN Attributes</h3>\n<!-- /wp:heading -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Right-click any link above and select <strong>Inspect</strong></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Look for the <code>rel</code> attribute in the <code><a></code> tag</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>For inline links: <code>rel=\"colleague met co-worker\"</code></li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>For embeds: <code>data-xfn-rel=\"friend met\"</code> on the <code><figure></code> element</li>\n<!-- /wp:list-item --></ol>\n<!-- /wp:list -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">✅ Expected Results</h3>\n<!-- /wp:heading -->\n\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Link Text</th><th>Expected rel Attribute</th></tr></thead><tbody><tr><td>Sarah, my colleague</td><td><code>rel=\"colleague met co-worker\"</code></td></tr><tr><td>my friend John's website</td><td><code>rel=\"friend met\"</code></td></tr><tr><td>my personal website</td><td><code>rel=\"me\"</code></td></tr><tr><td>brother's blog</td><td><code>rel=\"sibling met\"</code></td></tr><tr><td>Visit My Friend & Colleague (button)</td><td><code>rel=\"friend met colleague\"</code></td></tr><tr><td>YouTube embed</td><td><code>data-xfn-rel=\"friend met\"</code> on figure</td></tr></tbody></table></figure>\n<!-- /wp:table -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">🎨 Try It Yourself!</h3>\n<!-- /wp:heading -->\n\n<!-- wp:paragraph -->\n<p><strong>Want to add your own XFN relationships?</strong></p>\n<!-- /wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li>Go to <strong>Settings → Link Extension for XFN</strong> (Inspector Controls are already enabled)</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Select any button or embed block</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Look in the right sidebar for the <strong>XFN Relationships</strong> panel</li>\n<!-- /wp:list-item -->\n\n<!-- wp:list-item -->\n<li>Choose relationships and they'll automatically save</li>\n<!-- /wp:list-item --></ul>\n<!-- /wp:list -->\n\n<!-- wp:paragraph -->\n<p>For inline paragraph links, select text, create a link, click <strong>Advanced</strong>, expand the <strong>XFN</strong> section, and choose your relationships!</p>\n<!-- /wp:paragraph -->" 37 } 38 } 38 39 } 39 40 ] -
link-extension-for-xfn/trunk/link-extension-for-xfn.php
r3415636 r3415717 4 4 * Plugin URI: https://github.com/courtneyr-dev/xfn-link-extension 5 5 * Description: Extends the native Gutenberg link interface to include XFN (XHTML Friends Network) relationship options across all blocks that support links. Features floating toolbar access, Inspector Controls integration, and Link Advanced panel support. 6 * Version: 1.0. 16 * Version: 1.0.3 7 7 * Requires at least: 6.4 8 8 * Tested up to: 6.9 … … 22 22 23 23 // Define plugin constants 24 define( 'XFN_LINK_EXTENSION_VERSION', '1.0. 1' );24 define( 'XFN_LINK_EXTENSION_VERSION', '1.0.3' ); 25 25 define( 'XFN_LINK_EXTENSION_PLUGIN_FILE', __FILE__ ); 26 26 define( 'XFN_LINK_EXTENSION_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); -
link-extension-for-xfn/trunk/readme.txt
r3415636 r3415717 4 4 Tags: xfn, links, relationships, accessibility, gutenberg 5 5 Tested up to: 6.9 6 Stable tag: 1.0. 16 Stable tag: 1.0.3 7 7 License: GPLv2 or later 8 8 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 318 318 319 319 ## Changelog 320 321 = 1.0.3 = 322 * Fixed: WordPress Playground blueprint now works correctly with proper JSON structure 323 * Fixed: Demo page now publishes (not draft) and lands at /xfn-demo/ for immediate access 324 * Fixed: Button blocks now correctly include rel attribute in rendered HTML 325 * Fixed: Content filters disabled to preserve XFN rel attributes in demo 326 * Improved: Enhanced demo content with visual indicators, testing instructions, and results table 327 * Improved: Better inline link examples showing multiple XFN attributes working together 328 * Technical: Blueprint uses runPHPWithOptions with environment variables (Playground best practice) 329 * Technical: Added login: true for automatic authentication in Playground demo 330 * Technical: CORS-enabled development server for local blueprint testing 331 332 = 1.0.2 = 333 * Added: Full embed block support (YouTube, Twitter, WordPress embeds, etc.) 334 * Added: Server-side filter to output XFN attributes on frontend for embed blocks 335 * Added: WordPress Playground blueprint for live preview on WordPress.org 336 * Added: Comprehensive demo post with inline links, buttons, and embeds showing multiple XFN attributes 337 * Fixed: Blueprint.json now in correct location for WordPress.org Playground integration 338 * Fixed: Embed blocks now properly output XFN relationships to frontend HTML (rel or data-xfn-rel) 339 * Updated: Documentation to include embed block support throughout 340 * Updated: Inspector Controls now support core/embed block type 341 * Technical: Added xfn_render_embed_block() filter hooking into render_block 320 342 321 343 = 1.0.1 =
Note: See TracChangeset
for help on using the changeset viewer.