UNPKG

ecmarkup

Version:

Custom element definitions and core utilities for markup that specifies ECMAScript and related technologies.

30 lines (29 loc) 1.07 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Builder_1 = require("./Builder"); class H1 extends Builder_1.default { static async enter() { // do nothing } static async exit({ spec, node, clauseStack }) { const parent = clauseStack[clauseStack.length - 1] || null; if (parent === null || parent.header !== node) { return; } const headerClone = node.cloneNode(true); for (const a of headerClone.querySelectorAll('a')) { a.replaceWith(...a.childNodes); } parent.titleHTML = headerClone.innerHTML; parent.title = headerClone.textContent; if (parent.number) { const numElem = spec.doc.createElement('span'); numElem.setAttribute('class', 'secnum'); numElem.textContent = parent.number; node.insertBefore(spec.doc.createTextNode(' '), node.firstChild); node.insertBefore(numElem, node.firstChild); } } } H1.elements = ['H1']; exports.default = H1;