=== Raoa ToC Linker ===
Contributors: raoatech
Tags: table-of-contents, toc, navigation, headings, gutenberg
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Automatically Generate a Table of Contents for Posts and Pages. Supports auto-insert, shortcode, and a sidebar widget.

== Description ==

Raoa ToC Linker makes long-form WordPress content easier to scan. It reads headings from rendered post content, assigns stable anchor IDs, and builds a navigable table of contents.

You can insert the table of contents automatically, place it with a shortcode, or show it in a sidebar widget. Authors can override behavior per post. Readers get smooth scrolling, optional URL hashes, a collapsible list, and widget highlighting for the section in view.

= Features =

* Automatic heading detection from rendered HTML (`the_content`)
* Compatible with the Classic Editor, the block editor, and Elementor output (no Elementor PHP dependency)
* Auto-insert before the first heading, after the first paragraph, or after a chosen paragraph
* Shortcode `[raoa_toc_linker]` with attributes for title, levels, theme, and more
* Sidebar widget with optional sticky positioning and active-section highlight
* Appearance presets (Default, Minimal, Bordered, Dark, Custom colors)
* Hierarchical or flat lists, optional counters, collapsible toggle
* Per-post enable, heading levels, and insert mode (Classic meta box and block editor)
* Smooth scroll with offset, optional URL hashes, and respect for reduced motion
* Developer actions, filters, and helper functions

= Shortcode =

`[raoa_toc_linker]`

Optional attributes include `title`, `levels`, `hierarchical`, `counter`, `theme`, `collapsible`, `hidden`, `smooth_scroll`, `anchors`, `offset`, `class`, and `label`.

= Privacy =

Raoa ToC Linker does not send data to remote services. It does not track readers. Settings are stored in the WordPress options table; per-post overrides are stored as post meta.

== Installation ==

1. Upload the `raoa-toc-linker` folder to the `/wp-content/plugins/` directory, or install the plugin through the WordPress Plugins screen.
2. Activate Raoa ToC Linker through the Plugins screen.
3. Go to Settings → Raoa ToC Linker to choose post types, heading levels, appearance, and behavior.
4. Publish a post with at least two headings (h2–h4 by default). The table of contents appears before the first heading on enabled post types.
5. Optionally add the **Raoa ToC Linker Table of Contents** widget, or place `[raoa_toc_linker]` in the content.

== Frequently Asked Questions ==

= Why is the table of contents not showing? =

Confirm the post type is enabled under Settings → Raoa ToC Linker → General, that the post has at least the minimum number of matching headings, and that it is not disabled in the per-post Raoa ToC Linker panel. The theme template must call `the_content()` for the main content.

= Does it work with Elementor? =

Yes, when Elementor headings render as `h1`–`h6` in the content output. The plugin does not require Elementor PHP classes.

= Can I use only the sidebar widget? =

Yes. Turn off auto-insert in settings and do not add the shortcode. Add the Raoa ToC Linker widget to a sidebar or as a Legacy Widget in the block widgets screen.

= Does it collect personal data or phone home? =

No. There are no remote requests, analytics, or tracking.

= How do I exclude headings? =

Add the exclude CSS class (default `raoa-toc-linker-exclude`) to a container. Headings inside `nav`, `aside`, `footer`, and `header` are skipped automatically. Developers can also filter `raoa_toc_linker_parsed_headings`.

= How do I hide the table of contents on one post? =

Edit the post and set Enable table of contents to No in the Raoa ToC Linker panel (Classic meta box or block editor document sidebar).

== Screenshots ==

1. Settings — General tab: post types, heading levels, and auto-insert.
2. Settings — Appearance tab: themes, colors, and counters.
3. Table of contents on a blog post.

== Changelog ==

= 1.0.0 =
* Initial release.

== Upgrade Notice ==

= 1.0.0 =
Initial release of Raoa ToC Linker.
