=== Simple Sticky TOC ===
Contributors: bonddesign
Tags: toc, table of contents, sticky, headings, anchor
Requires at least: 5.0
Tested up to: 6.8
Requires PHP: 7.2
Stable tag: 1.0.1
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Lightweight sticky table of contents for mobile and desktop. Automatically generates anchor links for h2–h4 headings. No jQuery.
== Description ==
Simple Sticky TOC automatically generates a sticky table of contents for single posts or pages by parsing `
`, ``, and `` tags. It is lightweight, mobile-friendly, and works without jQuery.
**Features:**
- Automatically detects and anchors h2–h4 headings
- Sticky TOC with vertical layout on desktop
- Sticky toggleable TOC on mobile
- Built-in RTL support (positioning + layout)
- Option to disable TOC on individual posts
- Option to customize TOC layout from your theme
- Auto-generated anchor IDs for headings
- Clean CSS, pure JavaScript, no jQuery
== Installation ==
1. Upload the plugin folder to the `/wp-content/plugins/` directory.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. The TOC will appear automatically above your post content.
== Theme Override Support ==
To override the default markup or styles:
1. Copy the default template files from the plugin:
- `frontend/partials/toc-template.php`
- `assets/css/toc.css`
- `assets/js/toc.js`
2. Paste them into your theme inside the following folder:
- `your-theme/simple-sticky-toc/`
Supported override files:
- `simple-sticky-toc/toc-template.php` – custom TOC markup
- `simple-sticky-toc/toc.css` – custom styles
- `simple-sticky-toc/toc.js` – custom JS behavior
== Frequently Asked Questions ==
= Can I choose which heading levels are used? =
Yes. Go to **Settings → BNDDSGN_Simple Sticky TOC** and select the depth (h2, h2–h3, or h2–h4).
= Can I disable TOC on some posts? =
Yes, there's a checkbox in the post editor sidebar to disable it per-post.
= Can I change the layout or style? =
Yes, copy `toc-template.php`, `toc.css`, or `toc.js` into your theme folder (`simple-sticky-toc/`) and customize freely.
= Is this plugin compatible with RTL sites? =
Yes, it automatically adjusts alignment and layout.
= Does it work with block themes (FSE)? =
Yes.
== Screenshots ==
1. Sticky TOC on desktop
2. Toggleable TOC on mobile
3. Admin panel for depth control
4. TOC layout in RTL mode
== Changelog ==
= 1.0.1 =
* Unified unique prefixes for all plugin functions, classes, constants, and options to prevent conflicts.
* Updated Contributors field to `bonddesign`.
* Updated Stable tag to match the release version.
* Removed macOS hidden files (`.DS_Store`, `__MACOSX`) from the distribution package.
= 1.0.0 =
* Initial release
* Auto-injects sticky TOC from headings (h2–h4)
* Responsive layout with sticky toggle button on mobile
* Per-post disable option
* Customizable template, CSS, and JS via theme override
* RTL support for layout and direction
* Clean structure (no jQuery)
== Upgrade Notice ==
= 1.0.1 =
Improved compatibility by unifying prefixes, updated contributor info, and cleaned release package from hidden files.
= 1.0.0 =
First public release with mobile toggle, RTL support, and theme overrides.