=== Imran Table of Contents ===
Contributors: imranacademy
Tags: table, toc, auto table of contents, wordpress table of contents, table of contents, 
Requires at least: 5.8
Tested up to: 6.9
Requires PHP: 7.2
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

A beautiful, lightweight Table of Contents plugin with sticky option, smooth scroll, and scroll spy — no jQuery needed.

== Description ==

Imran Table of Contents is a lightweight, fast, and highly customizable TOC plugin for WordPress.

It automatically generates a clean and user-friendly table of contents based on your headings and helps improve user experience, navigation, and SEO.

🚀 Key Features:

* Automatic TOC generation
* Manual shortcode support [imran_toc]
* Works with Elementor and Gutenberg
* Heading control (H1–H6 selection)
* Sticky sidebar TOC
* Mobile floating TOC
* Collapse / expand option
* Smooth scrolling and scrollspy
* Search inside TOC
* Click analytics tracking
* Dark mode support
* Insert position control

⚡ Performance Focused:
This plugin is lightweight and does not rely on heavy external libraries.

🎯 Perfect for:

* Bloggers
* SEO experts
* Affiliate marketers
* Content-heavy websites

📌 Usage:
Simply install and activate. The TOC will appear automatically, or use the shortcode anywhere:
[imran_toc]

This plugin is designed to give you full control over your content structure while keeping everything simple and fast.

All options:
`[imran_toc title="Table of Contents" headings="h2,h3,h4" list="ul" position="top" max="0" exclude_text="Intro,Summary" smooth="true" spy="true" sticky="false"]`

= Shortcode Parameters =

* **title** — TOC box heading text. Default: `"Table of Contents"`
* **headings** — Comma-separated heading tags to include. Default: `"h2,h3,h4"`
* **list** — List style: `ul` (unordered) or `ol` (ordered). Default: `"ul"`
* **position** — Where to place the TOC: `top`, `bottom`, `after_first_paragraph`, `after_first_h2`. Default: `"top"`
* **max** — Maximum headings to show. `0` means unlimited. Default: `0`
* **exclude_text** — Comma-separated heading texts to skip. Default: empty
* **smooth** — Smooth scroll on click: `true` or `false`. Default: `"true"`
* **spy** — Highlight active section while scrolling: `true` or `false`. Default: `"true"`
* **sticky** — Stick TOC while scrolling: `true` or `false`. Default: `"false"`

== Installation ==

1. Upload the `Imran Table of Contents` folder to `/wp-content/plugins/`.
2. Activate the plugin through the **Plugins** menu in WordPress.
3. Go to **Settings → Imran TOC** to configure defaults.
4. Optionally place `[imran_toc]` in any post or page to override auto-insert position.

== Frequently Asked Questions ==

= Does this plugin slow down my site? =
No. It uses vanilla JavaScript (no jQuery) and injects minimal inline CSS/JS only on pages where the TOC is displayed.

= Can I use the shortcode and auto-insert at the same time? =
No — if `[imran_toc]` is found in the post content, auto-insert is automatically disabled for that post to prevent duplicates.

= How do I exclude a heading from the TOC? =
Use the **Exclude by Text** field in **Settings → Imran TOC**, or use the `exclude_text` shortcode attribute. Enter partial or full heading text, separated by commas.

= What heading levels are supported? =
H2, H3, and H4. You can configure which levels to include via settings or the `headings` shortcode attribute.

= Is the TOC accessible? =
Yes. The TOC is wrapped in a `<nav>` element with an `aria-label` attribute for screen reader support.

= Does it work with the Gutenberg block editor? =
Yes, it works with both the Classic Editor and the Gutenberg block editor.

= Does it support WordPress Multisite? =
Yes. On plugin deletion, settings are removed from all sites in the network via `uninstall.php`.

== Screenshots ==

1. TOC displayed at the top of a post with scrollspy highlighting the active section.
2. Admin Settings page under Settings → Imran TOC.
3. Shortcode placed inside the Gutenberg block editor.

== Changelog ==

= 1.0.0 =
* Initial release.
* Auto-insert TOC based on H2, H3, H4 headings.
* Shortcode `[imran_toc]` with full parameter support.
* Sticky TOC option.
* ScrollSpy — highlights active heading while scrolling.
* Smooth scroll to heading anchors.
* Admin settings page under Settings → Imran TOC.
* Exclude specific headings by text.
* Max headings limit option.
* Flexible insert position: top, bottom, after first paragraph, after first H2.
* Ordered and unordered list support.
* No jQuery — vanilla JavaScript only.
* Multisite compatible with clean uninstall via uninstall.php.
* Text domain: `imran-by-table-of-contents`.
* Requires WordPress 5.8+, PHP 7.2+.

== Upgrade Notice ==

= 1.0.0 =
Initial release. No upgrade needed.

== License ==

This plugin is licensed under GPLv2 or later.
See: https://www.gnu.org/licenses/gpl-2.0.html
