{"id":349867,"date":"2026-08-18T13:47:51","date_gmt":"2026-08-18T13:47:51","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/doc-vista\/"},"modified":"2026-08-19T06:03:33","modified_gmt":"2026-08-19T06:03:33","slug":"zipped-docs","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/zipped-docs\/","author":23537579,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"3.0.1","stable_tag":"3.0.1","tested":"7.0.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Zipped Docs","header_author":"Zun Ul Noor","header_description":"Full documentation CMS with custom post types, categories, TOC,","assets_banners_color":"","last_updated":"2026-08-19 06:03:33","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/zunulnoor.vercel.app","header_plugin_uri":"https:\/\/github.com\/ZunulNoor\/Zipped-Docs","header_author_uri":"https:\/\/zunulnoor.vercel.app","rating":5,"author_block_rating":0,"active_installs":0,"downloads":50,"num_ratings":1,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"3.0.1":{"tag":"3.0.1","author":"zunulnoor","date":"2026-08-19 06:03:33"}},"upgrade_notice":{"3.0.0":"<p>Released as Zipped Docs with the new <code>zipped-docs<\/code> slug and <code>zipped_docs_*<\/code> identifiers.<\/p>","2.0.0":"<p>This is a major upgrade with significant database changes. The doc graph is rebuilt automatically on activation. Settings from v1.0.0 are preserved.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":1},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3652901,"resolution":"128x128","location":"assets","locale":"","width":655,"height":655}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["3.0.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Frontend documentation layout with sidebar TOC, search, and content","2":"Admin dashboard with stats and doc management","3":"Settings panel with tabbed interface","4":"Meta box for per-doc product, category, and ordering"}},"plugin_section":[],"plugin_tags":[10611,276293,6941,276292,14090],"plugin_category":[],"plugin_contributors":[276294],"plugin_business_model":[],"class_list":["post-349867","plugin","type-plugin","status-publish","hentry","plugin_tags-docs","plugin_tags-docs-engine","plugin_tags-documentation","plugin_tags-documentation-management","plugin_tags-knowledge-base","plugin_contributors-zunulnoor","plugin_committers-zunulnoor"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/zipped-docs\/assets\/icon-128x128.png?rev=3652901","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Zipped Docs transforms WordPress into a full-featured documentation platform. Perfect for product documentation, knowledge bases, help centers, and developer docs.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Custom Post Type<\/strong> \u2014 Dedicated <code>zipped_docs_doc<\/code> post type keeps docs separate from blog posts.<\/li>\n<li><strong>Category Taxonomies<\/strong> \u2014 Organize docs with hierarchical categories, default category protection, per-doc ordering.<\/li>\n<li><strong>Navigation Rail<\/strong> \u2014 Fixed-position floating rail with group indicators, hover preview panel, dynamic content-boundary visibility.<\/li>\n<li><strong>Chapter Engine<\/strong> \u2014 H1-based chapter management with smooth transitions, URL hash sync, independent scroll tracking.<\/li>\n<li><strong>Hierarchical Table of Contents<\/strong> \u2014 Auto-generated from heading tags (H1-H6), collapsible sections, scroll-spy with IntersectionObserver.<\/li>\n<li><strong>Client-Side Search<\/strong> \u2014 Instant on-page search with keyboard-navigable suggestions, in-content highlighting, TOC filtering, REST API fallback.<\/li>\n<li><strong>Precomputed Doc Graph<\/strong> \u2014 Zero-latency page loads via cached data structures rebuilt on save. Single-query builder.<\/li>\n<li><strong>Reading Progress Bar<\/strong> \u2014 Optional per-chapter progress indicator at the top of each doc.<\/li>\n<li><strong>Breadcrumbs<\/strong> \u2014 Automatic breadcrumb navigation shows category &gt; doc path.<\/li>\n<li><strong>Prev \/ Next Navigation<\/strong> \u2014 Sequential doc navigation through the category tree.<\/li>\n<li><strong>Related Articles<\/strong> \u2014 Auto-suggested related docs from the same category.<\/li>\n<li><strong>Fully Customizable<\/strong> \u2014 Theme color, typography, sidebar width, TOC depth, TOC colors, all adjustable from 8-tab Settings panel.<\/li>\n<li><strong>Shortcode<\/strong> \u2014 Simple <code>[zippeddocs product=\"category-slug\"]<\/code> embeds documentation anywhere.<\/li>\n<li><strong>Gutenberg Compatible<\/strong> \u2014 Full block editor support for rich doc content.<\/li>\n<li><strong>REST API<\/strong> \u2014 Public search endpoint for headless or AJAX integration.<\/li>\n<li><strong>Custom Capabilities<\/strong> \u2014 Fine-grained roles: <code>zipped_docs_editor<\/code> role, read\/create\/edit\/delete\/manage permissions.<\/li>\n<li><strong>Uninstall Cleanup<\/strong> \u2014 Full data removal on deletion, with settings toggle and <code>ZIPPED_DOCS_PRESERVE_DATA<\/code> constant support.<\/li>\n<li><strong>Deactivation Flow<\/strong> \u2014 Branded modal with Keep Data \/ Remove All Data options.<\/li>\n<li><strong>Modular Admin JS<\/strong> \u2014 Custom modal system (<code>ZippedDocsPopup<\/code>), delete confirmations, keyboard-navigable dialogs.<\/li>\n<li><strong>Security Hardened<\/strong> \u2014 Stored XSS prevention, nonce sanitization, POST filtering, output escaping throughout.<\/li>\n<\/ul>\n\n<h4>Shortcode Examples<\/h4>\n\n<pre><code>[zippeddocs product=\"category-slug\"]\n[zippeddocs product=\"express\" doc_id=\"123\"]\n[zippeddocs product=\"storfox\" toc_depth=\"4\"]\n<\/code><\/pre>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not collect or transmit any personal data. All data stays on your server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>zipped-docs<\/code> folder to <code>\/wp-content\/plugins\/<\/code> or install via WordPress plugin admin.<\/li>\n<li>Activate the plugin through the 'Plugins' screen.<\/li>\n<li>Go to Zipped Docs \u2192 Settings to configure appearance.<\/li>\n<li>Use <code>[zippeddocs product=\"category-slug\"]<\/code> shortcode on any page\/post to display documentation.<\/li>\n<li>Create docs under Zipped Docs \u2192 Add New, assign product tags.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20i%20use%20multiple%20products%3F\"><h3>Can I use multiple products?<\/h3><\/dt>\n<dd><p>Yes. Create product terms under Zipped Docs \u2192 Products, then tag each doc with the appropriate product.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20caching%20plugins%3F\"><h3>Does this work with caching plugins?<\/h3><\/dt>\n<dd><p>Yes. The precomputed doc graph avoids dynamic queries, making it compatible with most caching solutions.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20colors%3F\"><h3>Can I customize colors?<\/h3><\/dt>\n<dd><p>Yes. All visual settings are available under Zipped Docs \u2192 Settings, including theme color, TOC colors, typography, and highlight colors.<\/p><\/dd>\n<dt id=\"is%20it%20translation-ready%3F\"><h3>Is it translation-ready?<\/h3><\/dt>\n<dd><p>Yes. All frontend strings use WordPress i18n functions and the <code>zipped-docs<\/code> text domain.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.0.1<\/h4>\n\n<ul>\n<li>Security: Server-side re-validation of import decisions and document data \u2014 tampered decision payloads can no longer bypass validation or inject data<\/li>\n<li>Security: Media import URLs restricted to http\/https schemes<\/li>\n<li>Security: Imported doc status whitelisted against valid statuses on create\/update<\/li>\n<li>Fix: Replace\/update now verifies the referenced post exists and is a Zipped Docs doc before modifying it<\/li>\n<li>Security: Inline admin <code>&lt;style&gt;<\/code>\/<code>&lt;script&gt;<\/code> blocks moved into enqueued assets; settings input now unslashed before sanitization<\/li>\n<li>Fix: Typo in plugin URI pointing to repository, delete action restricted to <code>zipped_docs_doc<\/code> posts<\/li>\n<li>Dev: Version bumped to 3.0.1<\/li>\n<\/ul>\n\n<h4>3.0.0<\/h4>\n\n<ul>\n<li>Major: Released as \"Zipped Docs\" \u2014 plugin slug <code>zipped-docs<\/code>, text domain <code>zipped-docs<\/code>, prefix <code>zipped_docs_<\/code>, and <code>ZIPPED_DOCS_*<\/code> constants<\/li>\n<li>New: Doc URLs use the <code>?zipped_docs=<\/code> query parameter for doc navigation<\/li>\n<li>Security: Hardened import\/export \u2014 real <code>check_ajax_referer()<\/code> in upload\/preview handlers, per-field validation of import decisions, <code>intval<\/code>\/<code>filter_var<\/code> sanitization<\/li>\n<li>Dev: Version bumped to 3.0.0<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>New: Navigation Rail \u2014 ChatGPT-style floating rail with dot indicators, hover preview panel, smooth slide transitions, dynamic content-boundary detection<\/li>\n<li>New: Activation redirect \u2014 auto-redirect to Zipped Docs Dashboard after plugin activation<\/li>\n<li>New: Deactivation flow \u2014 branded modal with Keep Data \/ Remove All Data options, AJAX preference storage<\/li>\n<li>New: Custom capabilities system \u2014 zipped_docs_editor role, fine-grained doc\/settings\/category permissions<\/li>\n<li>New: Admin modal system \u2014 ZippedDocsPopup replaces native confirm() across admin with branded dialogs<\/li>\n<li>Enhancement: Security hardening \u2014 stored XSS fix in search suggestions, nonce sanitization with sanitize_key(), POST filtering via array_intersect_key()<\/li>\n<li>Enhancement: Performance \u2014 N+1 query elimination in graph builder (single WP_Query), dashboard pagination (20\/page), wp_count_posts() for stats<\/li>\n<li>Enhancement: Dead code removal \u2014 unused get_default() method, empty doc_index field, orphaned transient cleanup<\/li>\n<li>Fix: Memory leaks \u2014 keydown listener no longer accumulates, ChapterEngine callbacks reset on init<\/li>\n<li>Dev: Version bumped to 2.2.0<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Major: Full CSS namespace isolation \u2014 no conflicts with themes or page builders<\/li>\n<li>Major: Premium mobile TOC with floating sticky card, overlay panel, backdrop blur, body scroll lock<\/li>\n<li>Major: JavaScript isolation \u2014 all DOM operations scoped to plugin wrapper<\/li>\n<li>New: Google Font integration \u2014 inherit theme font or load any Google Font<\/li>\n<li>Enhancement: Refined mobile typography \u2014 optimized heading sizes for small screens<\/li>\n<li>Enhancement: Active heading auto-scrolls into view in mobile TOC panel<\/li>\n<li>Tweak: Admin bar offset now uses scoped class instead of global <code>.admin-bar<\/code><\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Major: SaaS-grade upgrade with hierarchical TOC, collapsible sections, scroll-spy<\/li>\n<li>Major: Precomputed doc graph for instant page loads<\/li>\n<li>Major: Client-side search with content highlighting<\/li>\n<li>Major: Multi-product support<\/li>\n<li>Major: Reading progress bar, breadcrumbs, prev\/next navigation, related articles<\/li>\n<li>Enhancement: Mobile-responsive sidebar with drawer behavior<\/li>\n<li>Enhancement: Tabbed settings panel with color pickers<\/li>\n<li>Enhancement: Admin dashboard with stats and filters<\/li>\n<li>Enhancement: Gutenberg editor meta box for doc settings<\/li>\n<li>Security: Nonce protection on all admin actions<\/li>\n<li>Security: Input sanitization and output escaping throughout<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<\/ul>","raw_excerpt":"Full documentation CMS with custom post types, categories, hierarchical TOC, client-side search, and multi-product support.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/349867","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=349867"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/zunulnoor"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=349867"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=349867"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=349867"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=349867"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=349867"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=349867"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}