import assert from 'node:assert/strict' import { test } from 'node:test' import { renderMarkdownPage } from '../markdown.js' test('a page uses matching IDs in document and TOC order, including nested duplicates', () => { const page = renderMarkdownPage('# Title\n\n### Repeat\n\n## Repeat\n\n### Repeat\n\nA note^[with **emphasis**].\n\n```js\nconst x = 1\n```') const ids = [...page.html.matchAll(/ match[1]) const links = [...page.toc.matchAll(/href="#([^"]+)"/g)].map((match) => match[1]) assert.deepEqual(ids, ['repeat', 'repeat-2', 'repeat-3']) assert.deepEqual(links, ids) assert.match(page.html, /id="sidenote-1"/) assert.match(page.html, /emphasis<\/strong>/) assert.match(page.html, /class="language-js"/) assert.equal(page.excerpt, 'A note.') }) test('sidenote numbering resets for each page', () => { assert.match(renderMarkdownPage('# One\n\nA^[first]').html, /id="sidenote-1"/) assert.match(renderMarkdownPage('# Two\n\nB^[second]').html, /id="sidenote-1"/) })