記事中のH2/H3を本文から取得して目次を作ります。
同時に本文中にPHPでIDを自動挿入することで、長いページでもアンカー用URLが作りやすくなります。
さらにウィンドウTOPがどの目次項目範囲内なのかをスクロール中に表示してみます。

プラクティス・デモ

RAW HTML JS