Mocursor Smart TOC
Mocursor Smart TOC is a lightweight, feature-packed Gutenberg block that automatically generates a linked table of contents from the headings in your posts and pages. Simply drop it into your content — it just works. Also available as a [mctoc] shortcode for classic editor users. The block is fully dynamic, accessible, lightweight, and theme-aware. It uses WordPress design tokens and CSS custom properties so it inherits your theme’s colors, fonts, and spacing automatically. Shortcode Support The Mocursor Smart TOC block is also available as a [mctoc] shortcode for use in the classic editor, widgets, or theme templates. Basic usage: [mctoc] With options: [mctoc title="On This Page" include_h2="true" include_h3="true" include_h4="false" numbering="nested" collapsed="true" sticky="true" offset="100" skip="1" exclude_headings="Related Posts,Comments" back_to_top="true" align="right" justify=""] Available shortcode attributes: title — TOC heading text (default: “Table of Contents”) include_h2 — Include H2 headings: “true” or “false” (default: “true”) include_h3 — Include H3 headings: “true” or “false” (default: “true”) include_h4 — Include H4 headings: “true” or “false” (default: “true”) exclude_headings — Comma-separated heading texts to exclude numbering — Numbering style: “none”, “decimal”, or “nested” (default: “none”) collapsed — Start collapsed: “true” or “false” (default: “false”) sticky — Enable sticky mode: “true” or “false” (default: “false”) offset — Scroll offset in pixels for fixed headers (default: 80) skip — Number of headings to skip from the start (default: 0) back_to_top — Show “Back to Top” link: “true” or “false” (default: “false”) align — Floating block alignment: “left”, “center”, or “right”. Left/right allow nearby content to wrap beside the TOC. justify — No-wrap TOC position: “left”, “center”, or “right”. Surrounding content stays above and below the TOC. Ideal Use Cases Mocursor Smart TOC is perfect for: Long-form blog posts — Help readers navigate 2,000+ word articles with ease. Documentation and knowledge bases — Technical docs, how-to guides, and reference pages. Online courses and tutorials — Give learners a clear roadmap of every lesson section. Legal, policy, and compliance pages — Terms of service, privacy policies, and similar documents. Product and feature pages — Long product descriptions with multiple sections. Recipe and travel blogs — Readers can jump to the section they care about. Wiki-style internal sites — Any WordPress site used as an internal wiki or resource library. Accessibility-focused sites — The TOC gives keyboard and screen reader users a reliable way to navigate. Classic editor users — The shortcode works perfectly in the classic editor. Why Choose Mocursor Smart TOC? Zero configuration needed — Drop the block in and it works immediately. 100% Gutenberg-native + Shortcode — Built as a real Gutenberg block with a classic shortcode fallback. Dynamic and always up to date — Server-rendered, always matches the current content. Incredibly lightweight — No JavaScript frameworks. Pure vanilla JS for all interactivity. Deeply customizable — Rich inspector controls for heading levels, numbering, collapsibility, sticky mode, and more. Accessible by default — Proper ARIA attributes, keyboard navigation, semantic HTML, and focus management. Theme-aware — Uses WordPress design tokens and CSS custom properties. No lock-in — Deactivate the plugin and your content is untouched. Privacy-friendly — No external requests, no tracking, no analytics, no cookies. Open source — Licensed under GPLv2. Block Features Automatic heading detection for H2, H3, and H4 Heading level filtering with individual checkboxes Exclude specific headings by text Skip first N headings option Three numbering styles: None, Decimal, Nested Collapsible TOC with configurable default state Smooth scrolling with configurable offset Active heading highlight via IntersectionObserver Back to Top link Sticky mode Live editor preview Full block editor design controls (colors, typography, spacing, borders) Left, center, and right floating alignment using native block controls Left, center, and right no-wrap justification for positioning without shifting surrounding content beside the TOC Shortcode support with full attribute control How to Use Method 1: Block Editor Install and activate the plugin. Open any post or page in the block editor. Click the block inserter (+), search for “Mocursor Smart TOC”, and insert the block. For a floating layout where text can wrap beside the TOC, use the block toolbar alignment (left, center, or right). For positioning without text wrapping, open Layout → Justify TOC (No Text Wrap) and choose Left, Center, or Right. Publish — the TOC renders with smooth scrolling and active heading tracking. Method 2: Shortcode In any post, page, or widget, type [mctoc]. Optionally use floating alignment: [mctoc title="Contents" numbering="decimal" align="left"]. Or use no-wrap positioning: [mctoc title="Contents" numbering="decimal" justify="right"]. Method 3: PHP Template Tips: Place the TOC inside a Group block with a max-width for a contained look. Enable sticky mode for sidebar layouts. Use the shortcode in classic editor widgets or template files.
PixelVault – Media Library Folders & Asset Manager
📁 PixelVault is the free way to organize your WordPress media library with unlimited, drag-and-drop media folders, and now to present those folders as a downloadable Document Library on the front end. Sort images, videos, PDFs, audio, and documents into nested, colour-coded folders right inside the Media Library, then publish any folder as a browsable asset manager for your visitors. Stop scrolling through hundreds of unsorted attachments. PixelVault lets you categorize media into folders and subfolders, filter instantly, and find any file in seconds — a proper file manager for your WordPress media. Folders are virtual — physical files never move, no URLs change, nothing breaks, and standard WordPress export/import keeps working without any special steps. 🆕 Document Library block (new in 1.2.0) Turn any media folder into a browsable, downloadable document library on the front end, no page builder required. The PixelVault Document Library Gutenberg block renders a folder as an accessible file browser with a sidebar folder tree, breadcrumb navigation, in-library search, pagination, and per-file downloads. 🗂️ Folder tree and breadcrumb: visitors browse nested folders without page reloads 🔍 Search and pagination: find files fast inside large folders ⬇️ Per-file download plus Download-all ZIP: grab one file or the whole folder in a click 🎨 Three design presets (Cards, Compact, Minimal), with an accent colour and a framed option ♿ Accessibility-first: full keyboard navigation (WAI-ARIA tree pattern), screen-reader friendly 📱 Fully responsive: grid and list layouts adapt to mobile 🔒 Respects folder visibility: restricted folders stay hidden from guests Perfect for knowledge bases, press kits, resource centres, download portals, and product documentation. ✨ Core Features 📂 Unlimited nested folders and subfolders — no depth limit, no folder count limit 🔗 Assign files to multiple folders — one file can appear in as many folders as you like 🎨 Folder colour coding — colour-label folders for instant visual orientation 🖱️ Drag-and-drop sidebar — reorder folders, move files, and create subfolders by dragging ⚡ Auto-assign uploads — new files go straight into whichever folder is selected 🔍 Search and sort — find folders instantly; sort manually, by name, or by file count ⌨️ Keyboard shortcut — press “n” to create a new folder 🖲️ Right-click context menu — Rename, Delete, Lock, Create subfolders, Copy gallery shortcode, Import ZIP to folder, Download all files 🌐 RTL language support — full right-to-left layout 🛠️ Organisation and Productivity Tools 📦 ZIP File Import Right-click any folder and choose “Import ZIP to folder”. Upload a .zip archive and PixelVault extracts and assigns every image, video, audio file, and PDF directly into that folder. 🗺️ Media Usage Map Right-click any image and choose “Where is this used?” to see every post, page, or custom post type that references the file — useful before replacing or deleting files. ⬇️ Bulk Download as ZIP Right-click any folder to download all its files as a ZIP archive. 🔒 Folder Locking Lock any folder to prevent accidental renaming, deletion, moving, or file reassignment. Locked folders display a padlock badge. 📊 Storage Analytics Full storage overview with total size, average file size, file-type breakdown chart, top-10 largest files, and per-folder size distribution. Available under Settings → Analytics and as a WordPress Dashboard widget. ✏️ Bulk Alt Text Editor Batch-edit alt text on all images that are missing it — useful for accessibility and image SEO. Edit multiple files at once without opening each one individually. 🔄 Media Replace Swap any file in place, keeping the same URL and attachment ID. All existing references on posts and pages continue to work automatically. 🎯 Smart Filters Dynamic built-in views that update automatically: Missing Alt Text, Unused Files, Recent Uploads, and Large Files. 🗂️ Auto-Categorise Existing Media Bulk-organise your existing media library in one click via the import icon at the bottom of the folder panel. Choose a rule: 📅 By Year — creates a folder per year (e.g. 2023, 2024). 🗓️ By Month — creates a folder per month (e.g. January 2024, February 2024). 🏷️ By File Type — creates Images, Videos, Audio, PDFs, Documents, and Spreadsheets folders. Choose Unassigned only to leave already-organised files untouched, or All files to reassign everything. PixelVault previews the result before making any changes. 🚚 Import from Other Plugins One-click migration from FileBird, Real Media Library, WP Media Folder, and Enhanced Media Library. Folder hierarchy and all file assignments are copied automatically. Go to Settings → Tools → Import from Another Plugin. The original plugin’s data is never modified. 💾 Export and Import Back up your entire folder structure as a JSON file and restore it on any WordPress site — no SQL required. 🔐 Role Permissions Granular folder access per WordPress user role: control who can create, edit, and delete folders independently. 🧩 Gutenberg, Elementor, and Divi 📚 PixelVault Document Library block — publish a folder as an accessible, downloadable file library with a folder tree, search, pagination, and Download-all ZIP 🖼️ PixelVault Gallery block — insert a folder’s contents as a responsive gallery with lightbox directly in the block editor 📝 [pixelvault_gallery] shortcode — classic editor, widgets, and theme template support 🎛️ Elementor — folder panel works inside the Elementor media modal 🏗️ Divi — folder panel works in the Divi backend builder and the Divi Front End Builder 🌍 Universal compatibility — PixelVault hooks into WordPress’s native media modal, so it works with any theme or page builder 🏛️ Architecture: Virtual Taxonomy PixelVault stores folder assignments in WordPress’s native taxonomy tables (wp_term_relationships). Physical files stay exactly where they are. Deleting a folder never deletes files. 👩💻 For Developers Full REST API and documented action/filter hooks. 🔌 REST API — Full CRUD at /wp-json/rayetun-medianest/v1/folders. Authenticate with X-WP-Nonce. ⚙️ Action hooks (selection): rayetun_medianest_folder_created( $term_id, $folder_id, $args ) rayetun_medianest_folder_renamed( $term_id, $new_name ) rayetun_medianest_folder_moved( $term_id, $new_parent, $old_parent ) rayetun_medianest_folder_deleted( $term_id, $folder_object ) rayetun_medianest_folders_reordered( $ordered_term_ids ) rayetun_medianest_attachment_assigned( $attachment_id, $term_ids, $context ) 🔧 Filter hooks (selection): rayetun_medianest_get_folders( $folders, $post_type ) — modify the folder list rayetun_medianest_auto_assign_target( $term_id, $attachment_id ) — override the upload target folder rayetun_medianest_smart_folders( $defs ) — register custom dynamic folders JavaScript hooks (via @wordpress/hooks) let you add items to the folder/image context menus and the bulk-action bar. A full list of PHP and JavaScript hooks with examples ships in HOOKS.md inside the plugin.