Title: Tavoos Article TOC
Author: mmhdih
Published: <strong>October 15, 2026</strong>
Last modified: October 15, 2026

---

Search plugins

![](https://ps.w.org/tavoos-article-toc/assets/banner-772x250.png?rev=3749244)

![](https://ps.w.org/tavoos-article-toc/assets/icon-256x256.png?rev=3749244)

# Tavoos Article TOC

 By [mmhdih](https://profiles.wordpress.org/mmhdih/)

[Download](https://downloads.wordpress.org/plugin/tavoos-article-toc.1.0.0.zip)

 * [Details](https://kea.wordpress.org/plugins/tavoos-article-toc/#description)
 * [Reviews](https://kea.wordpress.org/plugins/tavoos-article-toc/#reviews)
 *  [Installation](https://kea.wordpress.org/plugins/tavoos-article-toc/#installation)
 * [Development](https://kea.wordpress.org/plugins/tavoos-article-toc/#developers)

 [Support](https://wordpress.org/support/plugin/tavoos-article-toc/)

## Description

Tavoos Article TOC builds a navigation box from article headings. It does not summarize
prose or use AI. Article text and saved heading IDs are never rewritten in the database.

By default, it runs on single posts containing at least three H2 headings. The box
appears immediately before the first eligible heading, opens on desktop (768px and
up), and stays collapsed on smaller screens. Native details/summary controls support
keyboard operation.

Tavoos Article TOC focuses on article navigation for Persian and other Unicode content.
It combines RTL-aware styling, preserved authored heading IDs, collision-safe generated
anchors, keyboard focus on the destination heading, reduced-motion scrolling, and
compatibility with the original Tavoos TOC snippet. Assets are local and loaded 
only on eligible singular pages.

Features:

 * Heading levels H2-H6, public post types, threshold, title, position, expansion,
   and scroll offset settings.
 * Scoped WordPress content detection with an optional article-body CSS selector
   for custom themes.
 * Preserved authored IDs, collision-safe Unicode anchors, and safe aliases for 
   duplicate authored IDs.
 * Keyboard focus moves to the selected heading; reduced motion produces immediate
   scrolling.
 * Native browser smooth scrolling with no animation loops; fragment history supports
   Back and Forward.
 * Translation-ready interface using the tavoos-article-toc text domain; logical
   CSS properties for RTL and LTR.
 * No external API, CDN, fonts, telemetry, cookies, or visitor storage.
 * Local files and small dependency-free JavaScript, loaded only for eligible singular
   content.

The plugin requires JavaScript. With JavaScript disabled, the article remains readable
without a table of contents. Themes must call wp_head(), wp_footer(), and normally
the_content(). Where the_content() is bypassed, set the custom article-body selector;
never target body or html. A malformed selector results in no table.

Heading links are a flat ordered list with visual indentation for selected subheading
levels. Headings inside nav, aside, footer, header, hidden/aria-hidden regions, .
tvs-upd, .tvs-rel, .tavoos-toc-exclude or [data-tavoos-toc-exclude] are excluded.
Content added after page load requires the documented refresh event.

## Screenshots

[⌊Display settings: heading levels, threshold, placement, expansion, and scroll 
offset.⌉⌊Display settings: heading levels, threshold, placement, expansion, and 
scroll offset.⌉[

Display settings: heading levels, threshold, placement, expansion, and scroll offset.

[⌊An automatically generated table of contents in a Persian article.⌉⌊An automatically
generated table of contents in a Persian article.⌉[

An automatically generated table of contents in a Persian article.

## Installation

 1. Upload tavoos-article-toc.zip under Plugins > Add New > Upload Plugin, or copy 
    the tavoos-article-toc folder into wp-content/plugins.
 2. Activate Tavoos Article TOC.
 3. Open Settings > Article TOC. The defaults work for normal single posts.
 4. Test on staging with your theme before enabling it on a live site.

## FAQ

### How are interface translations supplied?

The plugin uses WordPress translation functions and does not bundle locale translation
catalogs. WordPress.org language packs can provide translations when they are available.
Without a matching language pack, interface strings fall back to English. Persian
headings and RTL layout work independently of interface translation.

### Does this send my content to an AI service?

No. This is a heading-based table of contents. It makes no external requests.

### What happens if the original Tavoos snippet is still enabled?

The plugin detects .tvs-toc or script#tvs-toc anywhere in the page and does not 
add a second table. It also removes its own table if delayed legacy markup appears.
It does not edit or disable any other plugin or snippet. The original HFCM snippets
may contain unrelated code; remove only the TOC-specific JavaScript and CSS after
a separate, approved migration. As long as the legacy code remains, this plugin 
intentionally yields to it, so its settings do not control the old table.

### Why is there no table on an article?

Check that display is enabled, the post type is selected, the article has enough
eligible headings, JavaScript is enabled, and there is no legacy table/script. Archives,
feeds, embeds, previews, password-locked content, and REST responses are not enhanced.
For a theme that bypasses the_content(), set a valid article-body selector. CSS-
hidden responsive copies may require a more specific selector.

### Can I omit headings?

Add class tavoos-toc-exclude or the attribute data-tavoos-toc-exclude to a heading
or its enclosing group. Existing navigation, sidebar, header, footer, hidden and
legacy related-content regions are excluded automatically.

### Can a page builder refresh the table after changing content?

Yes. After replacing/inserting article content, dispatch document.dispatchEvent(
new Event(‘tavoos-toc:refresh’)). The page must already be an eligible singular 
request with this plugin’s assets loaded. This plugin does not continuously rescan
changing content.

### How are existing and duplicate IDs handled?

A heading’s unique existing ID is retained, including Persian text and special characters.
New IDs are prefixed with tavoos-toc- and are checked against the whole document.
If an authored heading ID collides with an earlier element, a separate anchor is
inserted next to that heading. The plugin’s links target that alias, leaving the
authored ID unchanged. It does not repair malformed source markup or resolve pre-
existing duplicate IDs in other links.

### What settings are stored?

One WordPress option, tavoos_article_toc_options. It holds display settings only.
Deactivation keeps it; deletion removes it for the current site. On multisite, remove
settings on each site before a network-wide uninstall if full cleanup is required.
No article content or visitor data is stored.

### Is the directory slug reserved or publication approved?

No. This ZIP uses the proposed slug tavoos-article-toc. WordPress.org availability,
ownership, username, and final directory review must be verified separately before
submission. This package is not a publication or approval claim.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Tavoos Article TOC” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ mmhdih ](https://profiles.wordpress.org/mmhdih/)

[Translate “Tavoos Article TOC” into your language.](https://translate.wordpress.org/projects/wp-plugins/tavoos-article-toc)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/tavoos-article-toc/),
check out the [SVN repository](https://plugins.svn.wordpress.org/tavoos-article-toc/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/tavoos-article-toc/)
by [RSS](https://plugins.trac.wordpress.org/log/tavoos-article-toc/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * First standalone release with configurable, accessible, translation-ready article
   navigation.

## Meta

 *  Version **1.0.0**
 *  Last updated **3 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.2 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/tavoos-article-toc/)
 * Tags
 * [accessibility](https://kea.wordpress.org/plugins/tags/accessibility/)[headings](https://kea.wordpress.org/plugins/tags/headings/)
   [rtl](https://kea.wordpress.org/plugins/tags/rtl/)[table of contents](https://kea.wordpress.org/plugins/tags/table-of-contents/)
 *  [Advanced View](https://kea.wordpress.org/plugins/tavoos-article-toc/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/tavoos-article-toc/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/tavoos-article-toc/reviews/)

## Contributors

 *   [ mmhdih ](https://profiles.wordpress.org/mmhdih/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/tavoos-article-toc/)