UNPKG

ecmarkup

Version:

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

31 lines (28 loc) 1.23 kB
'use strict'; let decimalBullet = Array.from({ length: 100 }, (a, i) => '' + (i + 1)); let alphaBullet = Array.from({ length: 26 }, (a, i) => String.fromCharCode('a'.charCodeAt(0) + i)); // prettier-ignore let romanBullet = ['i', 'ii', 'iii', 'iv', 'v', 'vi', 'vii', 'viii', 'ix', 'x', 'xi', 'xii', 'xiii', 'xiv', 'xv', 'xvi', 'xvii', 'xviii', 'xix', 'xx', 'xxi', 'xxii', 'xxiii', 'xxiv', 'xxv']; // prettier-ignore let bullets = [decimalBullet, alphaBullet, romanBullet, decimalBullet, alphaBullet, romanBullet]; function addStepNumberText(ol, parentIndex) { for (let i = 0; i < ol.children.length; ++i) { let child = ol.children[i]; let index = parentIndex.concat([i]); let applicable = bullets[Math.min(index.length - 1, 5)]; let span = document.createElement('span'); span.textContent = (applicable[i] || '?') + '. '; span.style.fontSize = '0'; span.setAttribute('aria-hidden', 'true'); child.prepend(span); let sublist = child.querySelector('ol'); if (sublist != null) { addStepNumberText(sublist, index); } } } document.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('emu-alg > ol').forEach(ol => { addStepNumberText(ol, []); }); });