Releases: jeffersonrucu/wp-docsify
Release list
v3.3.1
What's Changed
- chore(ci): add static analysis pipeline for pull requests by @jeffersonrucu in #6
- chore(release): 3.3.1 by @jeffersonrucu in #7
Full Changelog: v3.3.0...v3.3.1
v3.3.0 - Docs served from the plugin folder by default
Changed
- Default docs directory is now the docs bundled with the plugin (
src/docs), instead ofwp-content/uploads/docsify-docs.
Projects that version their documentation inside the plugin (in src/docs) no longer need any extra configuration: the versioned files are served as is. This also fixes environments where DOCSIFYDOCS_DOCS_DIR was not defined and new pages returned 404 because they only existed in src/docs, not in uploads.
Migration
If you relied on the previous behaviour (docs living in the uploads directory so they survive plugin updates), set the constant in wp-config.php:
define( 'DOCSIFYDOCS_DOCS_DIR', WP_CONTENT_DIR . '/uploads/docsify-docs' );The docsify_docs_dir filter also still overrides the directory at runtime.
3.2.0
Minor release. Adds interactive API documentation to the Docsify page, bundled with the plugin.
Added
API reference with Swagger UI. A Markdown page holding a link named swagger is replaced by the interactive documentation for the specification it points at:
[swagger](api/openapi.json)The path is resolved from the documentation folder, so an API reference lives beside the rest of the docs and is written the same way. An absolute URL works too, when the API hosts its own file.
OpenAPI files served under the access rule. JSON, YAML and YML are handed out by the file endpoint, so a specification stays behind the same role check as the page it belongs to, instead of being readable by direct URL.
Swagger UI bundled with the plugin. Version 5.32.11, Apache-2.0, no CDN request — the same rule every other asset in the plugin already follows.
Changed
The API reference follows the documentation, not the stock Swagger look. It picks up the theme color from the settings and the typography of the page, its tables drop the boxed grid, code samples use a light theme matching Docsify's own, and the loading state is a plain spinner instead of the uppercase LOADING label Swagger prints inside it.
The reference is mounted next to .markdown-section rather than inside it. Docsify styles every table, heading and code token within that element, and those rules were landing on Swagger's markup — the parameter and response tables in particular came out with a heavy grid and misread inline code as syntax highlighting.
README rewritten. The project structure was missing most of the source files, the admin settings screen was not covered, and the screenshots showed screens that no longer exist. Screenshots are now captured from the plugin as it runs today.
Notes
Nothing changes on existing documentation. The API reference only appears on pages that link to an OpenAPI file.
Try it out sends the request from the visitor's browser, so the API has to allow the documentation origin through CORS.
Install
Download docsify-docs-3.2.0.zip and upload it under Plugins > Add New Plugin > Upload Plugin. Do not unzip it first.
Full Changelog: v3.1.1...v3.2.0
🤖 Generated with Claude Code
3.1.1
Patch release. Three defects found while exercising 3.1.0 in a browser on a real WordPress install. All three affect any site, not a particular setup.
Fixed
Blank documentation page behind a cache or JavaScript optimizer. WP Rocket's "delay JavaScript execution" rewrites every script tag to a type the browser will not run and only restores them on the first user interaction. Docsify has to run at load: it reads window.$docsify, then fetches and renders the Markdown. Measured on a real install: 90 of 111 scripts rewritten, $docsify, Docsify, mermaid and d3 all undefined, #app empty, zero requests for the .md files, and no JavaScript error to point at it. A cached copy of the page made it worse, since it is served before WordPress loads.
The page now declares DONOTCACHEPAGE, DONOTROCKETOPTIMIZE, DONOTMINIFY, DONOTCACHEOBJECT and DONOTASYNCCSS, plus the litespeed_control_set_nocache filter LiteSpeed reads instead of a constant.
Collapsed sidebar sections disappeared from the menu. Docsify hides every non-anchor child of a collapsed item, which assumes the group heading is a link. A heading written as plain text, the usual way to write a _sidebar.md, renders as .group-title and was hidden along with the list, leaving no way to reopen the section.
The admin bar printed unstyled over the documentation. The page drops the theme styles, so the bar had no stylesheet, and no room either, since docsify pins its layout to the top of the viewport. It is now hidden on the documentation page only; other pages and wp-admin are untouched.
Upgrade Notice
Recommended for anyone on 3.1.0, and required if your site runs a page cache or a JavaScript optimizer. After updating, purge your cache once so the stored copy of the documentation page is dropped.
Install
Download docsify-docs-3.1.1.zip and upload it under Plugins > Add New Plugin > Upload Plugin. Do not unzip it first.
Full Changelog: v3.1.0...v3.1.1
🤖 Generated with Claude Code
3.1.0
Big Changes
- Markdown files are served by WordPress under the same role rule as the page, so restricted documentation is no longer readable by direct URL. On by default.
- The documentation folder can live anywhere, including under version control with the project, via
DOCSIFYDOCS_DOCS_DIR.
What's Changed
Docsify fetches every .md over the network, so restricting the page was never enough on its own: a documentation folder reachable by URL is readable by anyone who guesses the path. The new Protect Files setting closes that gap.
- Files are served through
/docsify-docs-files/, behind the same access rule as the page, and a deny rule is written next to them so the folder itself answers nothing. - The access rule moved into a single
Accessclass shared by the page template and the endpoint. - Only a fixed list of extensions is handed out, paths that escape the documentation folder are refused, and authorization runs before the filesystem is touched so a 404 cannot report which files exist.
DOCSIFYDOCS_DOCS_DIRpoints the documentation at any absolute path. Also available as thedocsify_docs_dirfilter, withdocsify_docs_base_pathfor the URL.- The
DOCSIFYDOCS_DEFAULT_*constants can now be set fromwp-config.php, so a project keeps its own defaults in the repository rather than only in the database. - An empty allowed-roles list now shows the access-denied page instead of redirecting home.
Upgrade Notice
Protected file delivery is on after the update. Documentation keeps rendering, but the .md files stop answering on their old URLs.
The endpoint is a rewrite rule, so it needs pretty permalinks. If your permalinks are set to Plain, the setting reports itself as inactive and nothing changes. On nginx, or any server that ignores .htaccess, add the equivalent deny for the documentation folder to your server configuration.
Install
Download docsify-docs-3.1.0.zip and upload it under Plugins > Add New Plugin > Upload Plugin. Do not unzip it first.
Full Changelog: v3.0.0...v3.1.0
🤖 Generated with Claude Code
Docsify Docs 3.0.0 – Rename, bundled assets and logo picker
Download docsify-docs-3.0.0.zip below and install it from Plugins > Add New Plugin > Upload Plugin in WordPress. Do not unzip it first.
Breaking changes
- The plugin folder and text domain are now
docsify-docs(waswp-docsify). Deactivate and delete the old plugin before activating this one — your documentation lives inwp-content/uploads/and is not touched. - Documentation is pt_BR only and lives directly in
wp-content/uploads/docsify-docs/, with no per-locale subfolder. An existingpt_BR/folder is moved up one level automatically; anen_US/folder is left where it is but no longer rendered.
Options, documentation files and page templates are migrated automatically on the first admin page load.
What's new
- Logo picker — choose the logo from the Media Library instead of overwriting
_media/logo.svg. Falls back to the sample logo when empty or when the attachment is deleted. - No external requests — Docsify, Mermaid and D3 are bundled with the plugin. jsDelivr and unpkg are gone.
- Style isolation — theme and block styles are no longer loaded on the documentation page, so a theme cannot break the Docsify layout. Opt out with the
docsify_docs_isolate_stylesfilter. The page dropped from ~48 KB to ~19 KB of HTML. - Documentation page generator — create the page with the correct template in one click, then View page, Edit page, Reset page, or edit its URL inline.
- Admin UI fully translated to pt_BR.
- Legacy options are normalized during migration instead of being copied verbatim.
- Step-by-step install and setup instructions in
readme.txt.
Requirements
WordPress 5.9+, PHP 7.4+. No Composer needed.
Passes the official WordPress.org Plugin Check with no errors.
WP Docsify 2.0 – Multi-language Support & Access Control
The second major release of the WP Docsify plugin is here!
This version focuses on internationalization, access control, and structural improvements to make your documentation experience even more flexible and secure.
🌐 Multi-language Support
You can now deliver localized documentation experiences to your users:
- Language support is now configured via
WPDOCSIFY_SUPPORTED_LANGUAGESinconfig.php. - The plugin automatically detects the WordPress site's current locale.
- Each supported language has its own
doc.mdinside the/docs/{locale}/folder. - Seamless fallback to English (
en_US) if the locale is not supported. - Translation files and plugin strings are loaded based on the active locale.
🔒 Access Validation
Keep your documentation secure and user-specific:
- Only authorized users can access the documentation page.
- If a user doesn't have permission, they’ll see a friendly Access Denied screen with a button to return to the homepage.
- No more silent redirects — better feedback, better UX.
🛠️ Structural Refactor
Cleaner, more maintainable codebase:
- New
config.phpfile to centralize constants and configuration. - All template files have been moved to a new
/templates/directory. - Improved organization for easier development and scalability.
🧪 How to Test
- Change your site's language to
pt_BRoren_US. - Make sure the correct localized
doc.mdloads. - Verify translation files load correctly.
- Try accessing the documentation with a user that lacks permission — confirm the Access Denied screen appears.
- Test templates to ensure nothing is broken after the refactor.
📁 Updated Folder Structure
wp-docsify/
├── config.php
├── src/
│ ├── assets/
│ │ └── style.css
│ ├── docs/
│ │ ├── pt_BR/
│ │ │ ├── README.md
│ │ │ ├── _navbar.md
│ │ │ ├── _sidebar.md
│ │ │ └── ...
│ │ └── en_US/
│ │ └── ...
│ └── templates/
│ ├── access-denied.php
│ └── wp-docsify.php
├── languages/
│ └── *.mo, *.po, *.pot
├── README.md
├── wp-docsify.php
└── ...
WP Docsify 1.0 – Initial Stable Release
First official release of the WP Docsify plugin for WordPress!
🚀 What's New
This initial version offers full support for rendering documentation using the Docsify library, directly integrated with WordPress.
✅ Included Features
- Creation and management of documentation using
.mdfiles - Automatic reading of files from
src/docs/ - Dedicated page template (
template-wp-docsify.php) - Support for
README.mdas the documentation home page - Seamless integration with WordPress themes
