{"id":350265,"date":"2026-08-24T01:28:18","date_gmt":"2026-08-24T01:28:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/flexidocs\/"},"modified":"2026-08-24T01:29:43","modified_gmt":"2026-08-24T01:29:43","slug":"webxpart-documentation-hub","status":"publish","type":"plugin","link":"https:\/\/bho.wordpress.org\/plugins\/webxpart-documentation-hub\/","author":23331196,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.0.4","requires":"5.9","requires_php":"7.2","requires_plugins":null,"header_name":"Webxpart Documentation Hub","header_author":"webxpart","header_description":"A lightweight, theme-agnostic documentation & knowledge base plugin. Run multiple documentations with unlimited nesting, live AJAX search, auto table of contents, breadcrumbs and navigation. Choose self-contained scoped styling or inherit your theme's design \u2014 either way it never breaks your theme.","assets_banners_color":"8f89e8","last_updated":"2026-08-24 01:29:43","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/webxpart-documentation-hub\/","header_author_uri":"https:\/\/profiles.wordpress.org\/webxpart\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":52,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"webxpart","date":"2026-08-24 01:29:43"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3662499,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3662499,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3662499,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3662499,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[10611,6941,234774,14090,9545],"plugin_category":[47],"plugin_contributors":[259846],"plugin_business_model":[],"class_list":["post-350265","plugin","type-plugin","status-publish","hentry","plugin_tags-docs","plugin_tags-documentation","plugin_tags-help-center","plugin_tags-knowledge-base","plugin_tags-wiki","plugin_category-education-and-support","plugin_contributors-webxpart","plugin_committers-webxpart"],"banners":{"banner":"https:\/\/ps.w.org\/webxpart-documentation-hub\/assets\/banner-772x250.png?rev=3662499","banner_2x":"https:\/\/ps.w.org\/webxpart-documentation-hub\/assets\/banner-1544x500.png?rev=3662499","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/webxpart-documentation-hub\/assets\/icon-128x128.png?rev=3662499","icon_2x":"https:\/\/ps.w.org\/webxpart-documentation-hub\/assets\/icon-256x256.png?rev=3662499","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Webxpart Documentation Hub adds a full documentation \/ knowledge base system to WordPress:<\/p>\n\n<ul>\n<li><strong>Multiple documentations<\/strong> \u2014 run as many separate documentations as you like on one site (e.g. \"User Guide\", \"Developer API\"), each with its own home, its own sidebar tree and its own URL space.<\/li>\n<li><strong>Unlimited nesting<\/strong> \u2014 a documentation is simply a top-level doc; everything beneath it becomes its sections and articles, to any depth.<\/li>\n<li><strong>Reader feedback<\/strong> \u2014 a \"Was this page helpful?\" prompt on every doc, with an optional comment when the answer is no.<\/li>\n<li><strong>Insights<\/strong> \u2014 see your lowest-rated docs, your most-read docs, and the searches that returned nothing at all. That last list is your writing backlog.<\/li>\n<li><strong>Access control<\/strong> \u2014 keep a documentation public, restrict it to logged-in users, or limit it to chosen roles. Restricted docs disappear from the sidebar, the search results and direct links.<\/li>\n<li><strong>Live AJAX search<\/strong> \u2014 instant results as you type, scoped to docs only.<\/li>\n<li><strong>Automatic table of contents<\/strong> \u2014 generated from your headings, with scroll-spy highlighting.<\/li>\n<li><strong>Breadcrumbs &amp; prev\/next navigation<\/strong> \u2014 plus a collapsible documentation sidebar.<\/li>\n<li><strong>Works with any theme<\/strong> \u2014 your theme renders the page; Webxpart Documentation Hub only fills the content area. All CSS is namespaced under a single wrapper class, so nothing leaks in or out. Nothing to configure to \"make it fit.\"<\/li>\n<\/ul>\n\n<h4>Two design modes<\/h4>\n\n<p>Under <strong>Webxpart Documentation Hub \u2192 Settings \u2192 Design mode<\/strong> you can choose how docs look:<\/p>\n\n<ul>\n<li><strong>Self-contained<\/strong> (default) \u2014 docs get their own polished, fully scoped styling with automatic dark mode. Pixel-consistent on every theme.<\/li>\n<li><strong>Inherit theme styles<\/strong> \u2014 docs adopt your active theme's fonts, colours and content styling. Webxpart Documentation Hub adds layout only, and tints its UI from your theme's own text colour, so the docs blend seamlessly into your site.<\/li>\n<\/ul>\n\n<h4>Why it doesn't break your theme<\/h4>\n\n<p>Every style rule is scoped under the <code>.wxdh<\/code> wrapper, and the wrapper carries its own local CSS reset and explicit base typography. That means your theme's CSS cannot distort the docs, and the plugin's CSS cannot escape to restyle the rest of your site. Re-skinning is done by overriding a few CSS custom properties (variables) \u2014 no template hacking required.<\/p>\n\n<h4>Shortcodes<\/h4>\n\n<ul>\n<li><code>[wxdh]<\/code> \u2014 full documentation layout (search + sidebar + a card for each documentation).<\/li>\n<li><code>[wxdh set=\"developer-api\"]<\/code> \u2014 the same layout scoped to one documentation. Accepts a slug or an ID.<\/li>\n<li><code>[wxdh_search]<\/code> \u2014 a live search box you can place anywhere.<\/li>\n<li><code>[wxdh_list]<\/code> \u2014 a grid of all documentations. (<code>[wxdh_categories]<\/code> still works as an alias.)<\/li>\n<\/ul>\n\n<h4>Template overrides<\/h4>\n\n<p>Copy any file from the plugin's <code>\/templates\/<\/code> folder into <code>your-theme\/wxdh\/<\/code> to customise it safely \u2014 it will survive plugin updates.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>webxpart-documentation-hub<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP via Plugins \u2192 Add New \u2192 Upload Plugin.<\/li>\n<li>Activate the plugin.<\/li>\n<li>Go to <strong>Webxpart Documentation Hub \u2192 Documentations<\/strong> and create your first documentation, then use \"Add child\" to build out its sections and articles.<\/li>\n<li>Create a page (e.g. \"Documentation\") containing the <code>[wxdh]<\/code> shortcode, then select it under <strong>Webxpart Documentation Hub \u2192 Settings \u2192 Documentation home<\/strong>. Your theme renders that page normally, so the docs sit inside your own header and footer.<\/li>\n<li>Configure the remaining options under <strong>Webxpart Documentation Hub \u2192 Settings<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20my%20theme%3F\"><h3>Does it work with my theme?<\/h3><\/dt>\n<dd><p>Yes. Webxpart Documentation Hub never renders the page itself \u2014 your theme does, exactly as it does for any other post or page. The plugin only adds its doc UI inside the content area, wrapped in an isolated, self-contained container. This works the same on classic and block (FSE) themes.<\/p><\/dd>\n<dt id=\"can%20i%20change%20the%20colours%3F\"><h3>Can I change the colours?<\/h3><\/dt>\n<dd><p>Yes \u2014 override the CSS variables (e.g. <code>--wxdh-accent<\/code>) on the <code>.wxdh<\/code> selector in your theme's stylesheet. Dark mode is automatic based on the visitor's system preference.<\/p><\/dd>\n<dt id=\"what%20data%20does%20the%20plugin%20collect%3F\"><h3>What data does the plugin collect?<\/h3><\/dt>\n<dd><p>Only what it needs to show you the Insights screen, and all of it stays in your own database \u2014 nothing is ever sent anywhere.<\/p>\n\n<p>Search analytics store the search term and how many results it returned. Feedback stores the vote, any comment left, and a salted one-way hash built from the visitor's IP address and browser. The hash exists solely to stop the same person voting twice on one page; the IP address itself is never stored and cannot be recovered from it. No cookies are set, and no personal data is collected.<\/p>\n\n<p>Both features can be switched off under <strong>Webxpart Documentation Hub \u2192 Settings<\/strong>, and everything recorded can be deleted at any time from <strong>Webxpart Documentation Hub \u2192 Insights<\/strong>.<\/p><\/dd>\n<dt id=\"will%20my%20docs%20be%20deleted%20if%20i%20uninstall%3F\"><h3>Will my docs be deleted if I uninstall?<\/h3><\/dt>\n<dd><p>No. Your docs and categories stay in the database and reappear if you install the plugin again.<\/p>\n\n<p>Uninstalling removes the plugin's own data only: its settings, the feedback and search-analytics tables, and the per-doc counters (views and helpful\/unhelpful votes) stored as post meta.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<li>Multiple documentations, each a top-level doc with unlimited nesting beneath it.<\/li>\n<li>Reader feedback (\"Was this page helpful?\") with an optional comment on negative votes.<\/li>\n<li>Insights screen: lowest-rated docs, most-viewed docs, top searches and searches that returned nothing.<\/li>\n<li>Access control per documentation: public, logged-in only, or restricted to chosen roles.<\/li>\n<li>Documentations admin screen for building and reordering the tree.<\/li>\n<li>Live AJAX search, automatic table of contents, breadcrumbs and previous\/next navigation.<\/li>\n<li>Shortcodes: <code>[wxdh]<\/code>, <code>[wxdh set=\"...\"]<\/code>, <code>[wxdh_search]<\/code> and <code>[wxdh_list]<\/code>.<\/li>\n<li>Self-contained or theme-inheriting design modes, with automatic dark mode.<\/li>\n<\/ul>","raw_excerpt":"A lightweight documentation and knowledge base plugin that works with any theme without breaking your design.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/350265","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=350265"}],"author":[{"embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/webxpart"}],"wp:attachment":[{"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=350265"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=350265"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=350265"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=350265"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=350265"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/bho.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=350265"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}