diff --git a/src/core/webidl-index.js b/src/core/webidl-index.js index 5347318018..b55ee3818c 100644 --- a/src/core/webidl-index.js +++ b/src/core/webidl-index.js @@ -54,6 +54,10 @@ export function run(conf, doc, cb) { collector.appendChild(elem); return collector; }, pre); + // Remove duplicate IDs + Array + .from(pre.querySelectorAll("*[id]")) + .forEach(elem => elem.removeAttribute("id")); virtualSummary.appendChild(pre); idlIndexSec.appendChild(virtualSummary); cb(); diff --git a/tests/spec/core/idl-index-spec.js b/tests/spec/core/idl-index-spec.js index 55f46492ef..223e831520 100644 --- a/tests/spec/core/idl-index-spec.js +++ b/tests/spec/core/idl-index-spec.js @@ -1,6 +1,6 @@ "use strict"; describe("Core — IDL Index", () => { - afterAll( done => { + afterAll(done => { flushIframes(); done(); }); @@ -64,4 +64,26 @@ interface Bar { expect(doc.querySelectorAll("#idl-index > h2").length).toEqual(1); }).then(done); }); + it("doesn't include ids in the cloned indexed", done => { + const body = ` + ${makeDefaultBody()} +
+      interface Test {
+
+      };
+      
+
+

PASS

+

Custom paragraph.

+
+ `; + var ops = { + config: makeBasicConfig(), + body, + }; + makeRSDoc(ops, function(doc) { + const pre = doc.querySelector("#idl-index pre"); + expect(pre.querySelectorAll("*[id]").length).toEqual(0); + }).then(done); + }); });