Skip to content

Releases: jeffersonrucu/wp-docsify

v3.3.1

Choose a tag to compare

@github-actions github-actions released this 21 Aug 15:28
5b949ab

What's Changed

Full Changelog: v3.3.0...v3.3.1

v3.3.0 - Docs served from the plugin folder by default

Choose a tag to compare

@jeffersonrucu jeffersonrucu released this 15 Aug 22:09

Changed

  • Default docs directory is now the docs bundled with the plugin (src/docs), instead of wp-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

Choose a tag to compare

@jeffersonrucu jeffersonrucu released this 15 Aug 20:17

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

Choose a tag to compare

@jeffersonrucu jeffersonrucu released this 05 Aug 19:08
a5d994b

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

Choose a tag to compare

@jeffersonrucu jeffersonrucu released this 05 Aug 17:50
03c0803

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 Access class 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_DIR points the documentation at any absolute path. Also available as the docsify_docs_dir filter, with docsify_docs_base_path for the URL.
  • The DOCSIFYDOCS_DEFAULT_* constants can now be set from wp-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

Choose a tag to compare

@jeffersonrucu jeffersonrucu released this 05 Aug 16:19

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 (was wp-docsify). Deactivate and delete the old plugin before activating this one — your documentation lives in wp-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 existing pt_BR/ folder is moved up one level automatically; an en_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_styles filter. 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

Choose a tag to compare

@jeffersonrucu jeffersonrucu released this 15 Jun 23:09
c7bcb64

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_LANGUAGES in config.php.
  • The plugin automatically detects the WordPress site's current locale.
  • Each supported language has its own doc.md inside 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.

image


🛠️ Structural Refactor

Cleaner, more maintainable codebase:

  • New config.php file 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

  1. Change your site's language to pt_BR or en_US.
  2. Make sure the correct localized doc.md loads.
  3. Verify translation files load correctly.
  4. Try accessing the documentation with a user that lacks permission — confirm the Access Denied screen appears.
  5. 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

Choose a tag to compare

@jeffersonrucu jeffersonrucu released this 13 Jun 19:02

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 .md files
  • Automatic reading of files from src/docs/
  • Dedicated page template (template-wp-docsify.php)
  • Support for README.md as the documentation home page
  • Seamless integration with WordPress themes