Все зависит от того, как там в статье у вас все это оформляется.
Если предположить, что в начале статьи ставится пустой div с классом, в котором должно быть размещено оглавление
<div class="content"></div>
А заголовки задаются элементами с классом и обязательным атрибутом id
<h2 id="rzd4" class="header">Заголовок раздела 4</h2>
Тогда можно использовать такой скрипт, разместив его в конце body
<script>
const headers = [...document.querySelectorAll('.header[id]')];
const content = headers.reduce((cont, hd) => {
const li= document.createElement('li');
const a = document.createElement('a');
a.setAttribute('href', '#' + hd.id);
a.textContent = hd.textContent;
li.append(a);
cont.append(li);
return cont;
},
document.createElement('ul')
);
document.querySelector('.content').append(content);
</script>
Был бы пример статьи, можно было бы проверить его.