From 0bbbb4d35e0d82fb2de5a5d1552a5c9589594470 Mon Sep 17 00:00:00 2001 From: Sid Vishnoi <8426945+sidvishnoi@users.noreply.github.com> Date: Mon, 4 Oct 2021 04:28:01 +0530 Subject: [PATCH] fix(core/examples): don't add number to id when possible (#3799) --- src/core/examples.js | 13 ++----------- tests/spec/core/examples-spec.js | 8 ++++---- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/core/examples.js b/src/core/examples.js index 09c6b7fe33..96dd4124d1 100644 --- a/src/core/examples.js +++ b/src/core/examples.js @@ -90,13 +90,7 @@ export function run() { ++number; const div = makeTitle(example, number, report); example.prepend(div); - if (title) { - addId(example, `example-${number}`, title); // title gets used - } else { - // use the number as the title... so, e.g., "example-5" - addId(example, "example", String(number)); - } - const { id } = example; + const id = addId(example, "example", title || String(number)); const selfLink = div.querySelector("a.self-link"); selfLink.href = `#${id}`; pub("example", report); @@ -115,10 +109,7 @@ export function run() { const div = html`
${exampleTitle} ${example.cloneNode(true)}
`; - if (title) { - addId(div, `example-${number}`, title); - } - addId(div, `example`, String(number)); + addId(div, "example", title || String(number)); const selfLink = div.querySelector("a.self-link"); selfLink.href = `#${div.id}`; example.replaceWith(div); diff --git a/tests/spec/core/examples-spec.js b/tests/spec/core/examples-spec.js index 8e46a9bfc2..8a979cf678 100644 --- a/tests/spec/core/examples-spec.js +++ b/tests/spec/core/examples-spec.js @@ -20,7 +20,7 @@ describe("Core — Examples", () => { const example = doc.querySelector("div.example pre"); const div = example.closest("div"); expect(div.classList).toContain("example"); - expect(div.id).toBe("example-1-ex"); + expect(div.id).toBe("example-ex"); const markers = div.querySelectorAll("div.marker"); expect(markers).toHaveSize(1); @@ -41,7 +41,7 @@ describe("Core — Examples", () => { const ops = makeStandardOps(null, body); const doc = await makeRSDoc(ops); const example = doc.querySelector("aside.example"); - expect(example.id).toBe("example-1-ex"); + expect(example.id).toBe("example-ex"); const markers = example.querySelectorAll("div.marker"); expect(markers).toHaveSize(1); @@ -98,7 +98,7 @@ describe("Core — Examples", () => { const [example1, example2, example3] = exampleLinks; expect(example1.getAttribute("href")).toBe("#example-1"); expect(example2.getAttribute("href")).toBe("#pass"); - expect(example3.getAttribute("href")).toBe("#example-3-pass"); + expect(example3.getAttribute("href")).toBe("#example-pass"); }); it("self-links examples made from pre", async () => { const body = ` @@ -113,7 +113,7 @@ describe("Core — Examples", () => { const [example1, example2, example3] = exampleLinks; expect(example1.getAttribute("href")).toBe("#example-1"); expect(example2.getAttribute("href")).toBe("#pass"); - expect(example3.getAttribute("href")).toBe("#example-3-pass"); + expect(example3.getAttribute("href")).toBe("#example-pass"); }); it("relocates ids and doesn't duplicate them", async () => { const body = `