{"id":194130,"date":"2024-06-07T12:08:55","date_gmt":"2024-06-07T12:08:55","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/html-api-debugger\/"},"modified":"2025-08-07T12:13:11","modified_gmt":"2025-08-07T12:13:11","slug":"html-api-debugger","status":"publish","type":"plugin","link":"https:\/\/ml.wordpress.org\/plugins\/html-api-debugger\/","author":7558788,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.8","stable_tag":"2.8","tested":"6.8.5","requires":"6.7","requires_php":"","requires_plugins":null,"header_name":"HTML API Debugger","header_author":"Jon Surrell","header_description":"Add a page to wp-admin for debugging the HTML API.","assets_banners_color":"","last_updated":"2025-08-07 12:13:11","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/github.com\/sirreal\/html-api-debugger","header_author_uri":"https:\/\/profiles.wordpress.org\/jonsurrell\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":6996,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["changelog","description"],"tags":{"0.1":{"tag":"0.1","author":"jonsurrell","date":"2024-06-07 12:09:07"},"0.2":{"tag":"0.2","author":"jonsurrell","date":"2024-06-07 15:39:22"},"0.3":{"tag":"0.3","author":"jonsurrell","date":"2024-06-10 14:10:03"},"0.4":{"tag":"0.4","author":"jonsurrell","date":"2024-06-21 19:05:26"},"0.5":{"tag":"0.5","author":"jonsurrell","date":"2024-07-05 16:44:29"},"0.6":{"tag":"0.6","author":"jonsurrell","date":"2024-07-16 13:17:08"},"0.7":{"tag":"0.7","author":"jonsurrell","date":"2024-07-16 13:38:09"},"0.8":{"tag":"0.8","author":"jonsurrell","date":"2024-07-17 15:02:04"},"0.9":{"tag":"0.9","author":"jonsurrell","date":"2024-07-17 18:11:51"},"1.0":{"tag":"1.0","author":"jonsurrell","date":"2024-07-31 11:29:04"},"1.1":{"tag":"1.1","author":"jonsurrell","date":"2024-07-31 19:43:15"},"1.2":{"tag":"1.2","author":"jonsurrell","date":"2024-08-01 07:38:10"},"1.3":{"tag":"1.3","author":"jonsurrell","date":"2024-08-08 17:07:13"},"1.4":{"tag":"1.4","author":"jonsurrell","date":"2024-08-23 17:18:54"},"1.5":{"tag":"1.5","author":"jonsurrell","date":"2024-08-26 16:14:02"},"1.6":{"tag":"1.6","author":"jonsurrell","date":"2024-09-12 12:43:02"},"1.7":{"tag":"1.7","author":"jonsurrell","date":"2024-10-14 14:01:03"},"1.8":{"tag":"1.8","author":"jonsurrell","date":"2024-10-18 09:51:30"},"1.9":{"tag":"1.9","author":"jonsurrell","date":"2024-10-24 09:56:10"},"2.0":{"tag":"2.0","author":"jonsurrell","date":"2024-10-25 11:15:42"},"2.1":{"tag":"2.1","author":"jonsurrell","date":"2024-10-25 14:41:53"},"2.2":{"tag":"2.2","author":"jonsurrell","date":"2024-11-13 16:26:01"},"2.3":{"tag":"2.3","author":"jonsurrell","date":"2024-11-19 15:14:17"},"2.4":{"tag":"2.4","author":"jonsurrell","date":"2024-12-10 17:41:46"},"2.5":{"tag":"2.5","author":"jonsurrell","date":"2024-12-10 17:41:46"},"2.6":{"tag":"2.6","author":"jonsurrell","date":"2024-12-11 18:56:41"},"2.7":{"tag":"2.7","author":"jonsurrell","date":"2025-06-17 09:22:52"},"2.8":{"tag":"2.8","author":"jonsurrell","date":"2025-08-07 12:13:11"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":3099293,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3341001,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/admin.php?page=html-api-debugger&html=<%21DOCTYPE+html>%0A<html+lang%3D\\\"en-US\\\">%0A<%21--\\ud83d\\ude0e--><head><title>HTML+API+Demo+Content<%2Ftitle><%2Fhead>%0A<body><h1>Brought+to+you+by+the+<a+href%3D\\\"https%3A%2F%2Fdeveloper.wordpress.org%2Freference%2Fclasses%2Fwp_html_processor%2F\\\"+target%3D\\\"_blank\\\"+rel%3D\\\"noreferrer\\\">WordPress+HTML+API<%2Fa><%2Fh1>%0A<svg+width%3D\\\"200px\\\"+height%3D\\\"64px\\\"+viewBox%3D\\\"-17+0+50+16\\\"+preserveAspectRatio%3D\\\"xMidYMid+meet\\\">%0A<text+y%3D\\\"12\\\"+x%3D\\\"-10\\\"><%21%5BCDATA%5B<%5D%5D><%2Ftext>%0A<text+y%3D\\\"12\\\"+x%3D\\\"16\\\"><%21%5BCDATA%5B%2F>%5D%5D><%2Ftext>%0A<path+transform%3D\\\"scale%28.75+0.75%29\\\"+d%3D\\\"M20+10c0-5.52-4.48-10-10-10S0+4.48+0+10s4.48+10+10+10+10-4.48+10-10zM10+1.01c4.97+0+8.99+4.02+8.99+8.99s-4.02+8.99-8.99+8.99S1.01+14.97+1.01+10+5.03+1.01+10+1.01zM8.01+14.82L4.96+6.61c.49-.03+1.05-.08+1.05-.08.43-.05.38-1.01-.06-.99+0+0-1.29.1-2.13.1-.15+0-.33+0-.52-.01+1.44-2.17+3.9-3.6+6.7-3.6+2.09+0+3.99.79+5.41+2.09-.6-.08-1.45.35-1.45+1.42+0+.66.38+1.22.79+1.88.31.54.5+1.22.5+2.21+0+1.34-1.27+4.48-1.27+4.48l-2.71-7.5c.48-.03.75-.16.75-.16.43-.05.38-1.1-.05-1.08+0+0-1.3.11-2.14.11-.78+0-2.11-.11-2.11-.11-.43-.02-.48+1.06-.05+1.08l.84.08+1.12+3.04zm6.02+2.15L16.64+10s.67-1.69.39-3.81c.63+1.14.94+2.42.94+3.81+0+2.96-1.56+5.58-3.94+6.97zM2.68+6.77L6.5+17.25c-2.67-1.3-4.47-4.08-4.47-7.25+0-1.16.2-2.23.65-3.23zm7.45+4.53l2.29+6.25c-.75.27-1.57.42-2.42.42-.72+0-1.41-.11-2.06-.3z\\\"%2F>%0A<%2Fsvg>%0A<style>%0A%40namespace+url%28%27http%3A%2F%2Fwww.w3.org%2F1999%2Fxhtml%27%29%3B%0A%40namespace+svg+url%28%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%29%3B%0Abody%2C+a+%7B+background%3A+rgb%2829%2C+35%2C+39%29%3B+color%3A+rgb%28240%2C+240%2C+241%29%3B+display%3A+flex%3B+flex-direction%3A+column%3B+align-items%3A+center%3B+text-align%3A+center%3B+%7D%0Asvg%7Cpath%2C+svg%7Ctext+%7B+fill%3A+rgba%28240%2C246%2C252%2C.6%29%3B+stroke%3A+none%3B+font-family%3Amonospace%3B+%7D%0A<%2Fstyle>%0A<%2Fbody><%2Fhtml>\",\"preferredVersions\":{\"php\":\"8.4\",\"wp\":\"latest\"},\"login\":true,\"plugins\":[\"html-api-debugger\"],\"steps\":[{\"step\":\"installPlugin\",\"pluginZipFile\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"html-api-debugger\"},\"options\":{\"activate\":true}}]}"}},"all_blocks":[],"tagged_versions":["0.1","0.2","0.3","0.4","0.5","0.6","0.7","0.8","0.9","1.0","1.1","1.2","1.3","1.4","1.5","1.6","1.7","1.8","1.9","2.0","2.1","2.2","2.3","2.4","2.5","2.6","2.7","2.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3187819,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3187819,"resolution":"2","location":"assets","locale":""}},"screenshots":[],"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[94,734,228490],"plugin_category":[59],"plugin_contributors":[234522,228491],"plugin_business_model":[],"class_list":["post-194130","plugin","type-plugin","status-publish","hentry","plugin_tags-debug","plugin_tags-development","plugin_tags-html-api","plugin_category-utilities-and-tools","plugin_contributors-bernhard-reiter","plugin_contributors-jonsurrell","plugin_committers-jonsurrell"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/html-api-debugger\/assets\/icon.svg?rev=3099293","icon":"https:\/\/ps.w.org\/html-api-debugger\/assets\/icon.svg?rev=3099293","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/html-api-debugger\/assets\/screenshot-1.png?rev=3187819","caption":""},{"src":"https:\/\/ps.w.org\/html-api-debugger\/assets\/screenshot-2.png?rev=3187819","caption":""}],"raw_content":"<!--section=changelog-->\n<h4>2.8<\/h4>\n\n<ul>\n<li>Silence _doing_it_wrong bookmark notices when providing from HTML context.<\/li>\n<li>Adjust doctype info to account for typo fix.<\/li>\n<\/ul>\n\n<h4>2.7<\/h4>\n\n<ul>\n<li>Preserve attribute value line breaks in tree views.<\/li>\n<li>Prevent plugin module from being enqueued on all pages.<\/li>\n<\/ul>\n\n<h4>2.6<\/h4>\n\n<ul>\n<li>Handle null bytes in selectors and context HTML.<\/li>\n<li>Fix another error when using WordPress 6.7.<\/li>\n<\/ul>\n\n<h4>2.5<\/h4>\n\n<ul>\n<li>Fix a crash when using WordPress 6.7.<\/li>\n<\/ul>\n\n<h4>2.4<\/h4>\n\n<ul>\n<li>Add experimental support for HTML API selectors.<\/li>\n<li>Display document title.<\/li>\n<\/ul>\n\n<h4>2.3<\/h4>\n\n<ul>\n<li>Inline tree copy buttons.<\/li>\n<li>Add line breaks to overflowing attribute names and values.<\/li>\n<\/ul>\n\n<h4>2.2<\/h4>\n\n<ul>\n<li>Drop support for WordPress 6.6.<\/li>\n<li>Drop basic fragment parsing and quirks mode support.<\/li>\n<li>Add advanced context and fragment parsing when supported (WordPress 6.8+).<\/li>\n<li>Add functionality to copy textual representations of the generated trees.<\/li>\n<\/ul>\n\n<h4>2.1<\/h4>\n\n<ul>\n<li>Add text-wrap styling fallback for unsupported browsers.<\/li>\n<\/ul>\n\n<h4>2.0<\/h4>\n\n<ul>\n<li>Add ability to replay token processing.<\/li>\n<li>Fix quirks mode fragment parsing.<\/li>\n<li>Drop support for WordPress 6.5.<\/li>\n<\/ul>\n\n<h4>1.9<\/h4>\n\n<ul>\n<li>Update WordPress Playground links to use current query args.<\/li>\n<li>Improve span highlighting reliability.<\/li>\n<li>Fix an uncuaght exception on undefined clearSpan function.<\/li>\n<\/ul>\n\n<h4>1.8<\/h4>\n\n<ul>\n<li>Highlight spans in HTML input on hover.<\/li>\n<li>Fix a bug in tree construction with self-closing tags in foreign content.<\/li>\n<\/ul>\n\n<h4>1.7<\/h4>\n\n<ul>\n<li>Update DOM tree when HTML document is mutated.<\/li>\n<li>Fix deprecation notice on WordPress 6.7.<\/li>\n<li>Register script modules unconditionally.<\/li>\n<\/ul>\n\n<h4>1.6<\/h4>\n\n<ul>\n<li>Replace TABLE based layout with CSS grid.<\/li>\n<li>Fix a crash on meta tags with a content attribute.<\/li>\n<li>Display namespace on tag closers.<\/li>\n<li>Display normalized HTML when supported.<\/li>\n<\/ul>\n\n<h4>1.5<\/h4>\n\n<ul>\n<li>Improve initial rendering and reduce layout shift.<\/li>\n<li>Allow copying playground links to latest, beta, and nightly versions.<\/li>\n<li>Allow copying playground links to specific wordpress-develop PRs.<\/li>\n<\/ul>\n\n<h4>1.4<\/h4>\n\n<ul>\n<li>Show invisible characters in the tree in attribute names, values, and tag names.<\/li>\n<li>Handle DOCTYPE nodes.<\/li>\n<li>Prevent newlines from automatically being added to the HTML input.<\/li>\n<li>Use async event directives if available.<\/li>\n<li>Handle DOCTYPE tokens and display information about quirks-mode.<\/li>\n<\/ul>\n\n<h4>1.3<\/h4>\n\n<ul>\n<li>Replace wp-api-fetch script dependency with native fetch.<\/li>\n<li>Improve error messages.<\/li>\n<li>Display templates consistently between DOM and HTML API trees.<\/li>\n<li>Use \"qualified\" names. SVG and MathML tags and attributes have some specialized casing.<\/li>\n<\/ul>\n\n<h4>1.2<\/h4>\n\n<ul>\n<li>Handle CDATA sections.<\/li>\n<li>Use WordPress Script Modules API for all modules.<\/li>\n<\/ul>\n\n<h4>1.1<\/h4>\n\n<ul>\n<li>Print tag namespaces.<\/li>\n<\/ul>\n\n<h4>1.0<\/h4>\n\n<ul>\n<li>Prevent flash of \"\ufffd\" replacing null-byte in input on initial render.<\/li>\n<li>Support HTML API quirks mode.<\/li>\n<li>Support for full HTML processor.<\/li>\n<li>Configurable hover information on nodes: depth and breadcrumbs or insertion mode.<\/li>\n<\/ul>\n\n<h4>0.9<\/h4>\n\n<ul>\n<li>Fix a bug where \"}\" was replaced as an invisible character.<\/li>\n<li>Add a quirks mode toggle that allows changing the DOCTYPE used.<\/li>\n<\/ul>\n\n<h4>0.8<\/h4>\n\n<ul>\n<li>Show invisible characters in processed HTML spans.<\/li>\n<li>Fix null-byte rendering in the initial page render.<\/li>\n<\/ul>\n\n<h4>0.7<\/h4>\n\n<ul>\n<li>Fix some issues where parsing errors could crash the client.<\/li>\n<\/ul>\n\n<h4>0.6<\/h4>\n\n<ul>\n<li>Add better unsupported error messages when possible. (WordPress &gt;= 6.7)<\/li>\n<\/ul>\n\n<h4>0.5<\/h4>\n\n<ul>\n<li>Use regular REST API result response shape.<\/li>\n<li>Display text content of \"atomic\" HTML API nodes like TEXTAREA or XMP.<\/li>\n<\/ul>\n\n<h4>0.4<\/h4>\n\n<ul>\n<li>Improve debugger visibility controls.<\/li>\n<li>Add handling for real\/virtual nodes.<\/li>\n<\/ul>\n\n<h4>0.3<\/h4>\n\n<ul>\n<li>Add button to copy instant playground link.<\/li>\n<\/ul>\n\n<h4>0.2<\/h4>\n\n<ul>\n<li>Remove redundant module.<\/li>\n<li>Rearrange debugging panes.<\/li>\n<li>Add option to show invisible characters.<\/li>\n<\/ul>\n\n<h4>0.1<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>\n\n<!--section=description-->\n<p>Add a WP Admin page for debugging the HTML API.<\/p>\n\n<h3>Contributing<\/h3>\n\n<p>Please file issues and pull requests on the <a href=\"https:\/\/github.com\/sirreal\/html-api-debugger\">GitHub repository<\/a>.<\/p>","raw_excerpt":"Add a WP Admin page for debugging the HTML API.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/194130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=194130"}],"author":[{"embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/jonsurrell"}],"wp:attachment":[{"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=194130"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=194130"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=194130"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=194130"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=194130"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ml.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=194130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}