perf: stop heading lookup at the requested occurrence (#20246)

Co-authored-by: Orca Worker <orca-worker@localhost>
This commit is contained in:
OrcaWin
2026-09-12 18:04:54 -07:00
committed by GitHub
co-authored by Orca Worker
parent ee1e94a623
commit 80a22db9cb
2 changed files with 20 additions and 5 deletions
@@ -14,6 +14,14 @@ function makeTocItem(
}
describe('findRichMarkdownTocHeadingTarget', () => {
it('returns undefined when the requested duplicate occurrence is missing', () => {
const container = document.createElement('div')
container.innerHTML = '<h2>Repeat</h2><h2>Other</h2>'
const items = [makeTocItem('repeat', 2, 'Repeat'), makeTocItem('repeat-1', 2, 'Repeat')]
expect(findRichMarkdownTocHeadingTarget(container, items, 'repeat-1')).toBeUndefined()
expect(findRichMarkdownTocHeadingTarget(container, items, 'missing')).toBeUndefined()
})
it('finds deep headings that the table of contents exposes', () => {
const container = document.createElement('div')
container.innerHTML = `
@@ -18,9 +18,16 @@ export function findRichMarkdownTocHeadingTarget(
const sameTitleIndex = items
.filter((item) => item.title === target.title)
.findIndex((item) => item.id === target.id)
const matchingHeadings = Array.from(
container.querySelectorAll<HTMLElement>(RICH_MARKDOWN_TOC_HEADING_SELECTOR)
).filter((candidate) => candidate.textContent?.trim() === target.title)
return matchingHeadings.at(Math.max(0, sameTitleIndex))
let remaining = Math.max(0, sameTitleIndex)
for (const candidate of container.querySelectorAll<HTMLElement>(
RICH_MARKDOWN_TOC_HEADING_SELECTOR
)) {
if (candidate.textContent?.trim() === target.title) {
if (remaining === 0) {
return candidate
}
remaining -= 1
}
}
return undefined
}