Joli Table Of Contents
Joli Table Of Contents is the most customizable and performance-focused table of contents plugin for WordPress. It works out of the box for beginners β thanks to a built-in Onboarding Wizard β and offers deep control for advanced users and developers.
Easily insert a table of contents into all your posts with either the Auto-insert, the Gutenberg Block, or the Shortcode.
π Documentation | β Get PRO
π Why Joli Table Of Contents?
β Beginner-Friendly Onboarding Wizard
After activation, a step-by-step setup wizard walks you through the most important settings β no configuration headaches, no reading documentation. Youβll have a working, good-looking TOC in minutes.
π¨ Instant Customization with the Color Palette System
The new Color Palette makes customization effortless. Set just the Accent color and it automatically propagates across your entire TOC β thatβs 90% of the visual work done in a single click. Fine-tune everything else at your own pace.
π§ Smart Heading Detection
Joli Table Of Contents accurately detects headings from third-party shortcodes and blocks that donβt appear directly in the editor but are rendered on the front end. Since v3, you can now choose between Content scope (default β prevents unwanted headings from appearing) and Extended scope for advanced use cases.
π Gutenberg Block with Inline Editing
Use the dedicated Gutenberg Block to insert a table of contents anywhere in your post. The block lets you hide or edit specific headings inline β no settings page needed.
β‘ Performance First
No jQuery dependency. Minified CSS and JavaScript. Conditional style loading based on active settings β only the code you need is loaded. Built for fast websites.
π Migrate from Another TOC Plugin β Without Touching Your Content
Already using Easy Table of Contents, LuckyWP Table of Contents, or another plugin? You can switch to Joli TOC without updating a single shortcode across your posts.
Use the built-in filter to map Joli TOC to your existing shortcode tag:
add_filter('jolitoc_shortcode_tag', function(){ return 'toc'; });
This works with any custom tag, so your existing [toc] (or any other) shortcodes continue to work immediately after switching.
β¨ Key Features
Design & Themes:
* Professional looking themes (Default, Original, Hero, + all legacy themes)
* Dark mode support for v3 themes
* Color Palette system β set one color, style the whole TOC
* Fully customizable: padding, margin, borders, fonts, colors, icons
* Custom CSS support
* CSS variable architecture for deep theming
* Custom theme engine (create your own theme)
Insertion methods:
* Auto-insert (by post type and position)
* Gutenberg Block
* Shortcode [joli-toc]
Auto-insert positions:
* Before/After the content
* Before/After H1
* Before first H2 / After first H2
* After first paragraph
Headings & Detection:
* Detect headings from third-party blocks and shortcodes
* Heading scope: Content (default) or Extended
* Show headings by custom depth (H2 to H6)
* Hide or edit specific headings via the block
* Disable headings by text or CSS class
Navigation & UX:
* Reading time estimate (new in v3)
* Hierarchical or Flat view
* Multiple numbering styles (with regional number support)
* Customizable numbering separator and suffix
* Smooth scrolling
* Folding/unfolding with animation
* Pretty URL hash (e.g. mysite.com/article/#section-title)
* Latin & non-latin character support
* Multilingual hash transliteration
* Responsive β hover events work as touch on mobile
Other:
* Import / Export settings
* Import presets for quick setup
* Custom CSS section
* Fully responsive
* multi-page support
* RTL support
* WPML compatible
* No jQuery
* Developer hooks (see full list)
β Whatβs New in v3
π§ Onboarding Wizard
New users are greeted with a step-by-step onboarding wizard that configures the most important settings for their site β without needing to touch advanced options.
π¨ Color Palette System
A brand-new reusable color palette makes customization fast and consistent. Define your Accent color once and watch it style your entire TOC automatically.
πΌ New & Updated Themes
v3 ships with new and upgraded themes: Default (replaces Basic Light/Dark), Original, and Hero β all with dark mode support and theme-specific style variants.
π Redesigned Settings Page
The admin interface has been fully redesigned with:
* A search bar to quickly find any setting
* A Live Preview panel β see your changes in real time
* A Quick Settings Panel for the most common options
* Better color pickers with palette support
* Session checker to prevent lost changes
π New Style Options
New styling controls include: header border style/width/radius/color, numbering badge colors, base font size, and toggle button styles.
π’ Improved Numbering System
The numbering engine has been upgraded to behave like a proper list β including support for regional numbering formats. Hexadecimal and binary modes have been removed.
π TOC Alignment
Choose between left, center, and right alignment for the entire TOC block.
π Reading Time Estimate
Automatically display an estimated reading time inside the TOC header.
π PRO Features
Get Joli Table Of Contents Pro
Premium Themes:
Widgets:
* π Timeline TOC β display the TOC as a visual timeline on the side of the screen, with proportionally spaced markers
* β
Floating TOC Widget β follows the user as they scroll, shows the active section
* β
Slide-Out TOC Widget β fixed panel on the side of the screen
* β
Sticky Sidebar TOC β TOC in a sidebar widget that sticks while scrolling
* β
Progress Bar Widget β reading progress indicator at the top of the page
PRO-only customization:
* β Collapsible headings
* β View more button (Partial fold)
* β Independent top-level heading styling
* Separator between top-level headings
* Multi-columns mode
* Per-device TOC visibility (in-content vs. sidebar)
* Fade past headings
Advanced auto-insert rules:
* Filter by post type, post title, or post ID
* Exclude specific posts by title or ID
* Different settings per post type (theme, layout, everything)
Custom Post Type support with per-post-type settings.
π§ Shortcode
Insert the TOC anywhere using the shortcode:
[joli-toc]
Migrating from another plugin? Keep your existing shortcode tag without updating any content:
add_filter('jolitoc_shortcode_tag', function(){ return 'toc'; });
This is compatible with shortcode tags used by Easy Table of Contents, LuckyWP Table of Contents, and others.
π£ Developer Hooks
Joli Table Of Contents provides a full set of action and filter hooks for developers.
Common examples (add to your themeβs functions.php):
Disable auto-insert globally:
add_filter(βjoli_toc_disable_autoinsertβ, function(){ return true; });
Disable JS or CSS:
add_filter(βjoli_toc_disable_jsβ, function(){ return true; });
add_filter(βjoli_toc_disable_stylesβ, function(){ return true; });
Customize the TOC title dynamically:
add_filter(βjoli_toc_toc_titleβ, function( $title ){ return βMy Custom Titleβ; });
π More Plugins by WPJoli
| Domain | Exposures | Headers | Last Checked |
|---|---|---|---|
| b*o*.o*o*.fr (WP 6.9.4) | D | 2026-05-08 08:33:57 | |
| t*r*a*l*s*t*a*a*e*i*.fi | F | 2026-05-08 07:50:22 | |
| i*s*o*e*.com | F | 2026-05-08 06:42:29 | |
| 1*k*g*m*s.com (WP 6.9.4) | F | 2026-05-08 06:10:16 | |
| w*a*h*r*u*t*n.com (WP 6.9.4) | F | 2026-05-08 04:31:23 | |
| l*s*r*a*e*o*z*n*.pl (WP 6.9.4) | F | 2026-05-08 02:21:53 | |
| t*o*a*i*l*t*o*.pl (WP 6.9.4) | F | 2026-05-08 02:21:53 | |
| b*s*-*h*t.de (WP 6.9.4) | F | 2026-05-08 01:08:00 | |
| z*m*i*-*e*t*n*.com (WP 6.8.5) | F | 2026-05-08 00:51:51 | |
| b*a*t*b*o*w*l*s.com (WP 6.9.4) | F | 2026-05-08 00:25:21 | |
| s*r*i*g*e*t*w*i*s*a*d*.com (WP 6.9.4) | F | 2026-05-08 00:11:59 | |
| p*a*e*-*r*i*a*s.com | A | 2026-05-08 00:07:39 | |
| c*a*m*r*.com (WP 6.9.4) | F | 2026-05-07 23:21:49 | |
| s*r*-*o*s*g*r.com (WP 6.9.4) | F | 2026-05-07 23:06:46 | |
| s*o*t*e*.com (WP 6.9.4) | F | 2026-05-07 23:00:45 | |
| n*w*e*l*n*c*s*n*s*n*i*e.c*.nz (WP 6.7.4) | F | 2026-05-07 22:56:47 | |
| 1*3*g*i*e.com (WP 6.9.4) | F | 2026-05-07 22:56:42 | |
| l*r*m*u*.com | F | 2026-05-07 21:33:16 | |
| l*z*s*f*.gr (WP 6.9.4) | F | 2026-05-07 20:39:49 | |
| c*u*f*a*c*d*v*l*p*e*e*t*u*a*l*.com | A | 2026-05-07 19:32:47 | |
| y*m*t*.jp | D | 2026-05-07 18:52:25 | |
| v*r*e*i*k*o*t*n*.com (WP 6.9.4) | F | 2026-05-07 18:43:45 | |
| m*a*k*s*n*t.fi | B | 2026-05-07 18:24:16 | |
| s*o*h*a*.com (WP 6.9.4) | F | 2026-05-07 17:16:36 | |
| d*d*b*t*.k*.ua (WP 6.9.4) | D | 2026-05-07 16:56:33 | |
| l*s*e*r*a*e*r.fr (WP 5.8.13) | F | 2026-05-07 14:23:12 | |
| i*f*-*a*a*a.com (WP 6.9.4) | F | 2026-05-07 12:24:18 | |
| k*e*s*i*s*d.o*.ua (WP 6.9.4) | D | 2026-05-07 11:43:50 | |
| p*n*r*.dev (WP 6.9.4) | F | 2026-05-07 11:02:28 | |
| l*m*a*v*n*c*.com (WP 6.9.4) | F | 2026-05-07 08:35:22 | |
| n*l.vn (WP 6.2.2) | D | 2026-05-07 08:18:46 | |
| s*h*l*r*h*p*l*c*.com (WP 6.9.4) | F | 2026-05-07 07:59:49 | |
| e*s*v*l*e*a*e*t*t*p*a*n*n*.com | F | 2026-05-07 07:29:01 | |
| c*m*r*r*i*i*m*o.com (WP 6.9.4) | F | 2026-05-07 03:38:59 | |
| p*c*-*h*n*-*l*e*.org | A | 2026-05-07 03:36:35 | |
| t*n*a*i*b*t*i*g.com | F | 2026-05-07 03:11:07 | |
| c*i*r*l*n*.com | D | 2026-05-07 02:31:47 | |
| p*o*i*a*l*m*d*a.com (WP 6.9) | F | 2026-05-07 01:59:56 | |
| c*a*s*g*m*n*p*s*h*r.com | F | 2026-05-07 01:41:48 | |
| l*g*o*s*r*e*.com (WP 6.9.4) | F | 2026-05-07 00:28:18 | |
| b*d*r*c*o*.com (WP 6.8.1) | C | 2026-05-06 23:27:51 | |
| l*-*i*b*i*e.fr | F | 2026-05-06 23:09:31 | |
| e*r*p*c*.com (WP 6.9.4) | D | 2026-05-06 23:02:17 | |
| m*t*i*y*r*e*.com (WP 6.9.4) | D | 2026-05-06 22:52:55 | |
| i*d*n*s*a*u*f*a*p.com (WP 6.9.4) | F | 2026-05-06 20:39:20 | |
| g*e*r*d*n.fr (WP 6.9.4) | F | 2026-05-06 20:35:55 | |
| i*s*a*e*.net (WP 6.9.1) | D | 2026-05-06 20:35:55 | |
| h*a*g*i*r*c.net | B | 2026-05-06 20:14:32 | |
| c*p*u*o*t*o*a*d*c*.cy (WP 6.9.4) | D | 2026-05-06 19:14:34 | |
| c*m*u*i*y*a*k*t*e*d*r.com | F | 2026-05-06 17:37:42 | |
| m*s*c*a*t*r*i*d*c*d*m*.com (WP 6.9.4) | F | 2026-05-06 17:01:13 | |
| n*w*m*s*e*.be (WP 6.9.4) | F | 2026-05-04 13:21:12 | |
| v*l*s*s*a*i*e*.com | F | 2026-05-04 12:24:31 | |
| n*w*m*s*e*.fr (WP 6.9.4) | F | 2026-05-04 12:05:57 | |
| s*t*p*i*k*a*i*r.com | B | 2026-05-04 11:02:49 | |
| p*r*n*s*n*a*t*c*n*e*t*s.com | F | 2026-05-04 10:59:53 | |
| p*r*n*s*e*f*n*s*c*n*e*t*s.com | F | 2026-05-04 10:56:25 | |
| m*g*c*j*r*s.com | F | 2026-05-04 10:15:10 | |
| b*r*e*8*a.com (WP 6.9.4) | F | 2026-05-04 09:51:47 | |
| s*a*e*.net (WP 6.9.4) | D | 2026-05-04 09:07:43 | |
| d*h*c*z.com | F | 2026-05-04 06:32:27 | |
| d*b*s*e*t*r*.nl (WP 6.9.4) | F | 2026-05-04 06:03:08 | |
| g*e*t*u*s*e*o*i*s.com | D | 2026-05-04 04:27:50 | |
| p*y*d*p*k*e*a*.com (WP 6.7.4) | F | 2026-05-04 02:05:13 | |
| f*s*b*l*w*t*e*l*v*.com (WP 6.3.8) | F | 2026-05-04 01:43:42 | |
| u*-*e*e*o.com (WP 6.7.5) | F | 2026-05-03 19:15:06 | |
| s*r*t*o*y*m.com (WP 6.9.4) | F | 2026-05-03 18:19:23 | |
| j*b*r*o*l*w*l*g.com | F | 2026-05-03 17:06:57 | |
| j*b*r*o*l*w.com | F | 2026-05-03 17:06:57 | |
| w*n*e*-*e*k.com | F | 2026-05-03 15:25:24 | |
| e*o*o*i*s*t*i*.com (WP 6.9.4) | F | 2026-05-03 13:25:18 | |
| c*m*a*a*t*s*m*t*s*.org | F | 2026-05-03 13:19:44 | |
| h*a*t*.a*t*i*u*c*r*.c*.id (WP 6.9.4) | C | 2026-05-03 12:54:12 | |
| p*t*e*m*n*.com (WP 6.9.4) | D | 2026-05-03 12:28:14 | |
| u*e*o*s*t*i*g*k*a*.com (WP 6.9.4) | F | 2026-05-03 12:09:52 | |
| m*c*i*i*e*m*n*o*c*.com | A | 2026-05-03 11:09:43 | |
| j*l*c*r*e*s*t*.com (WP 6.9.4) | F | 2026-05-03 10:36:03 | |
| m*t.c*m.vn | F | 2026-05-03 10:10:19 | |
| m*e*.one (WP 6.9.4) | F | 2026-05-03 09:26:44 | |
| s*o*a*k*i*k*e.com | F | 2026-05-03 07:22:25 | |
| m*c*i*e*e*r*i*g*a*e*i*k.com (WP 6.9.4) | F | 2026-05-03 05:57:47 | |
| b*e*n*l*m*n*r*a*.org | F | 2026-05-03 04:39:37 | |
| b*o*.v*k*n*d*r*k*.at (WP 6.9.4) | B | 2026-05-03 04:04:01 | |
| b*o*.v*k*n*d*r*c*.ie (WP 6.9.4) | B | 2026-05-03 04:04:01 | |
| b*o*.v*k*n*-*i*e*t.c*.uk (WP 6.9.4) | B | 2026-05-03 04:04:01 | |
| b*u*u*i*e*.nl | F | 2026-05-03 03:46:25 | |
| s*n*p*.com (WP 6.9.4) | D | 2026-05-03 03:21:12 | |
| c*t*i*f*i*e*g.com (WP 6.9.4) | F | 2026-05-03 03:07:34 | |
| p*n*p.pe | F | 2026-05-03 02:06:15 | |
| e*s*.fr (WP 6.9.4) | F | 2026-05-03 01:03:25 | |
| m*i*o*f*m*l*a*e.net | A | 2026-05-03 00:29:04 | |
| g*l*y*e*.com | F | 2026-05-03 00:08:41 | |
| a*m*s*i*n*i*.com | D | 2026-05-02 23:51:58 | |
| u*i*e*e*a*n.fr | F | 2026-05-02 23:47:13 | |
| h*r*d*n*t*.jp | D | 2026-05-02 23:15:18 | |
| m*-*u*s*n*.co | A | 2026-05-02 22:27:05 | |
| g*i*a*g*r.com | F | 2026-05-02 22:25:24 | |
| s*o*-*a*a*d*l*n*h*.com | D | 2026-05-02 21:40:08 | |
| e*.j*r*e*l*r*s*a*.com | F | 2026-05-02 21:28:52 | |
| c*t*h*a*t*i*.com (WP 6.9.4) | B | 2026-05-02 20:06:26 |