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 = `