← All examples

JavaScript Navigation notion.so

Show outline from headings

Collects all page headings and shows them as a concise, indented outline in a popup.

Code to copy

(function () {
  try {
    var heads = document.querySelectorAll('.notion-page-content .notion-header-block, .notion-page-content .notion-sub_header-block');
    if (!heads.length) { alert('No headings found on this page.'); return; }
    var lines = [];
    heads.forEach(function (h) {
      var pad = h.classList.contains('notion-sub_header-block') ? '  ' : '';
      var t = (h.innerText || '').trim();
      if (t) lines.push(pad + '- ' + t);
    });
    alert('Page outline:\n\n' + lines.join('\n'));
  } catch (e) { alert('Could not build outline: ' + e.message); }
})();

How to use this example

  1. Copy the code with the button above.
  2. Install JustZix (2 minutes) and open the extension on the target page.
  3. Add a new rule matching that page.
  4. Paste the code into the rule's JavaScript panel and save — it runs on every page visit.

Rate this example

No ratings yet — be the first.

Does this example work?

Snippets are useless without somewhere to paste them.

JustZix takes 2 minutes to install and runs your code on every matching page. No account, no payment.

Download free See use cases