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