=== DIGITO Toolkit ===
Contributors: digitowebs
Tags: classic editor, duplicate post, maintenance mode, safe svg, under construction
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 8.2
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A lightweight toolkit with independently switchable Classic Editor, Duplicate Page & Post, Maintenance Mode, and Safe SVG Upload tools.

== Description ==

WordPress sites often need a few practical tools, which can mean installing several separate single-purpose plugins. DIGITO Toolkit brings four everyday site-management tools together in one modular plugin.

Enable only the modules you need. When a module is disabled, its feature hooks and behavior are not booted. The Toolkit uses familiar WordPress admin workflows, keeps settings local to your WordPress installation, and does not require a remote account.

= Classic Editor =

Enable Classic Editor to use the familiar classic WordPress editing experience for Posts and Pages. The module is intentionally limited to these core post types.

= Duplicate Page & Post =

Create a new draft copy of supported Posts, Pages, and eligible public custom post types from the WordPress admin. Authorized users can duplicate content without changing the original. The duplicate workflow copies the supported content data available to the module, including applicable terms, allowed metadata, and the existing featured-image reference. Some third-party plugin data may not copy exactly.

= Maintenance Mode =

Show a focused maintenance or under-construction page while site work is underway. Customize the headline and message, choose a Light or Dark presentation, select an optional logo from the WordPress Media Library, and optionally show a countdown based on your WordPress site timezone.

If public pages remain visible after enabling Maintenance Mode, test while logged out or in a private window and purge the relevant page-cache plugin, hosting cache, or CDN cache. A cache that serves stored HTML without reaching WordPress cannot be overridden by the Toolkit.

When a countdown ends, you can hide the countdown while Maintenance Mode remains active or automatically disable Maintenance Mode. Automatic expiry is checked on requests and does not depend on WP-Cron. Administrators can continue to access the site for recovery and configuration. Public maintenance responses use an appropriate 503 status with a Retry-After header.

= Safe SVG Upload =

Allow trusted administrators to upload suitable SVG graphics through WordPress's native Media Library and REST-backed media workflows. The module is off by default and requires both Toolkit configuration permission and WordPress's upload capability. On Multisite, SVG upload remains restricted to a super administrator.

Every accepted SVG is parsed and sanitized locally before WordPress stores it. The default upload limit is 1 MiB. Safe paths, basic shapes, gradients, and text are supported where the sanitizer can preserve them. Active or externally loaded content—including scripts, event handlers, animation, `foreignObject`, unsafe CSS, external references, data URLs, document type declarations, entities, and malformed XML—is rejected. Files that cannot be verified fail closed.

Sanitized SVG attachments integrate with Media Library previews and dimensions. The module does not optimize raster images, does not promise support for every SVG authoring feature, and does not make arbitrary SVG files safe merely because they use an `.svg` extension.

= Privacy and local processing =

DIGITO Toolkit does not include Toolkit telemetry, remote accounts, or unnecessary external data transmission. Toolkit settings are stored locally in WordPress. The optional Maintenance Mode logo uses an image already stored in the WordPress Media Library.

Duplicate Page & Post processes the selected source content locally for an authorized request. A created draft remains ordinary WordPress content under your site's normal editorial controls. Safe SVG Upload also performs its validation and sanitization locally and does not send uploaded graphics to a remote service.

= WordPress Multisite =

WordPress Multisite is supported on a best-effort, site-local configuration basis. Site-by-site activation has been validated. Network activation has also been exercised successfully on existing sites, but Toolkit configuration remains per-site.

Version 1.1.0 does not provide shared Network Admin settings, network-wide provisioning or new-site initialization, or complete network-wide uninstall cleanup.

== Installation ==

1. Install and activate DIGITO Toolkit through the WordPress Plugins screen.
2. Open the DIGITO Toolkit administration area.
3. Open Modules and enable only the tools you need.
4. Configure module-specific settings where applicable.

== Frequently Asked Questions ==

= What does DIGITO Toolkit include? =

Version 1.1.0 includes Classic Editor, Duplicate Page & Post, Maintenance Mode, and Safe SVG Upload.

= Who can upload SVG files? =

Only a trusted administrator who can both configure DIGITO Toolkit and upload files may upload SVG files while the module is enabled. On Multisite, the user must also be a super administrator. Other roles do not gain SVG upload permission automatically.

= Why was my SVG rejected? =

Safe SVG Upload accepts a deliberately limited set of non-active SVG content. Files can be rejected because they are malformed, exceed the 1 MiB default limit, contain scripts or event handlers, reference external or embedded resources, use unsafe CSS or animation, or include features the sanitizer cannot safely preserve. Exporting a simpler SVG from your graphics application often helps.

= Can I enable only one module? =

Yes. Each module can be enabled or disabled independently from DIGITO Toolkit > Modules.

= What happens when a module is disabled? =

Its feature hooks and behavior are not booted. Existing WordPress content and saved Toolkit settings are not deleted merely because a module is disabled.

= Can I use Toolkit with another Classic Editor or Duplicate plugin? =

The Toolkit has been tested alongside the official Classic Editor plugin and Yoast Duplicate Post. Similar features can overlap safely, but you may see separate editor controls or duplicate actions when more than one plugin provides the same feature.

= What happens if two Maintenance Mode plugins are enabled? =

Only one maintenance response can handle a public request. In testing with WP Maintenance Mode, DIGITO Toolkit provided the frontend maintenance response without an administrator lockout or redirect loop. Keep only one maintenance system enabled when you want a predictable public result.

= Does Maintenance Mode lock administrators out? =

No. Authorized administrators bypass the public maintenance response so they can manage and recover the site. If normal access is unavailable, a trusted administrator can use the documented wp-config.php recovery constant.

= Does the countdown rely on WP-Cron? =

No. Countdown completion is handled when a request reaches the site. At the configured end time, the countdown can be hidden or Maintenance Mode can be disabled automatically.

= Does the plugin collect or send my data? =

No Toolkit telemetry, remote account, or unnecessary external data transmission is included. Settings are stored locally in WordPress.

= Does it support WordPress Multisite? =

Multisite support is best effort and site-local. It is not a full network-management solution. See the Multisite section above for the v1.1.0 boundary.

= What happens to settings when I deactivate the plugin? =

Deactivation preserves Toolkit settings and does not delete content created with the Duplicate module.

= What happens when I uninstall it? =

Deleting the plugin through WordPress removes Toolkit-owned module state, schema, and Maintenance Mode settings. It does not delete posts, taxonomy relationships, metadata, users, Media Library items, or other plugins' settings. On Multisite, cleanup applies only to the current site's ordinary options and does not iterate across the network.

== Screenshots ==

1. Enable Safe SVG Upload from the DIGITO Toolkit Modules screen; the module is off by default.
2. A sanitized SVG attachment displayed in the WordPress Media Library with its preview and dimensions.

== Changelog ==

= 1.1.0 =
* Added the independently switchable Safe SVG Upload module.
* Added fail-closed SVG parsing and sanitization with authorization, size, MIME, and content validation.
* Added native Media Library and REST-backed upload support, SVG previews, and attachment dimensions.
* Added temporary-file locking and final stored-file integrity verification.
* Added Safe SVG guidance, security documentation, automated coverage, and real WordPress acceptance testing.

= 1.0.1 =
* Improved Maintenance Mode interception priority for compatibility with frontend callbacks.
* Added practical cache guidance to the Maintenance settings screen and documentation.
* Added a native Settings shortcut on the Plugins screen.
* Added the official DIGITO WEBS author URL.

= 1.0.0 =
* Initial release candidate of DIGITO Toolkit.
* Added independently switchable Classic Editor, Duplicate Page & Post, and Maintenance Mode modules.
* Added customizable Maintenance Mode with optional logo and countdown controls.
* Added modular admin controls, capability-aware actions, and local settings handling.
* Validated the WordPress 7.1 and PHP 8.2 baseline with key compatibility scenarios.
