PHPackages                             humanmade/hm-toc - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. humanmade/hm-toc

ActiveWordpress-plugin[Utility &amp; Helpers](/categories/utility)

humanmade/hm-toc
================

WordPress plugin that adds anchors to headings in post content and generates table of contents from headings.

1.1.7(1y ago)43.2k↑75%1[2 issues](https://github.com/humanmade/hm-table-of-contents-plugin/issues)GPL-2.0-or-laterPHP

Since Sep 6Pushed 4mo ago10 watchersCompare

[ Source](https://github.com/humanmade/hm-table-of-contents-plugin)[ Packagist](https://packagist.org/packages/humanmade/hm-toc)[ RSS](/packages/humanmade-hm-toc/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (9)Dependencies (2)Versions (11)Used By (0)

HM Table of Contents
====================

[](#hm-table-of-contents)

WordPress plugin with the following features:

- Generate table of contents that lists all headings (Ordered hierachically) in post content.
- Automatically add anchors links after all headings in post content.
- Block to add these to pages and template.
- Adds 'active' class to the current heading in the table of contents.

FAQ
---

[](#faq)

### I don't want to automatically add anchor links to headings.

[](#i-dont-want-to-automatically-add-anchor-links-to-headings)

You can remove the filter that adds these with the following snippet. Doing it like this means that the plugin will still ensures headings all have IDs.

```
// Don't append an anchor link to each heading.
add_filter( 'hm_toc.contents.anchor_html', '__return_empty_string' );
```

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance49

Moderate activity, may be stable

Popularity27

Limited adoption so far

Community17

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 53.8% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~10 days

Recently: every ~16 days

Total

9

Last Release

537d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/494927?v=4)[Matthew Haines-Young](/maintainers/mattheu)[@mattheu](https://github.com/mattheu)

---

Top Contributors

[![mattheu](https://avatars.githubusercontent.com/u/494927?v=4)](https://github.com/mattheu "mattheu (28 commits)")[![gonzomir](https://avatars.githubusercontent.com/u/827958?v=4)](https://github.com/gonzomir "gonzomir (14 commits)")[![kadamwhite](https://avatars.githubusercontent.com/u/442115?v=4)](https://github.com/kadamwhite "kadamwhite (4 commits)")[![roborourke](https://avatars.githubusercontent.com/u/23417?v=4)](https://github.com/roborourke "roborourke (3 commits)")[![alwaysblank](https://avatars.githubusercontent.com/u/23412884?v=4)](https://github.com/alwaysblank "alwaysblank (2 commits)")[![MiguelAxcar](https://avatars.githubusercontent.com/u/90911997?v=4)](https://github.com/MiguelAxcar "MiguelAxcar (1 commits)")

### Embed Badge

![Health badge](/badges/humanmade-hm-toc/health.svg)

```
[![Health](https://phpackages.com/badges/humanmade-hm-toc/health.svg)](https://phpackages.com/packages/humanmade-hm-toc)
```

###  Alternatives

[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/builder-plugin

Builder plugin for October CMS

17147.2k1](/packages/rainlab-builder-plugin)[pfefferle/wordpress-activitypub

The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.

5671.4k1](/packages/pfefferle-wordpress-activitypub)[civicrm/civicrm-drupal-8

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

18238.1k2](/packages/civicrm-civicrm-drupal-8)[mediawiki/semantic-glossary

A terminology markup extension with a Semantic MediaWiki back-end

1352.4k](/packages/mediawiki-semantic-glossary)[humanmade/lottie-lite

A lightweight Lottie Animations Extension for WordPress

374.3k](/packages/humanmade-lottie-lite)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
