UNPKG

1.23 kBJavaScriptView Raw
1'use strict';
2let decimalBullet = Array.from({ length: 100 }, (a, i) => '' + (i + 1));
3let alphaBullet = Array.from({ length: 26 }, (a, i) => String.fromCharCode('a'.charCodeAt(0) + i));
4
5// prettier-ignore
6let 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'];
7// prettier-ignore
8let bullets = [decimalBullet, alphaBullet, romanBullet, decimalBullet, alphaBullet, romanBullet];
9
10function addStepNumberText(ol, parentIndex) {
11 for (let i = 0; i < ol.children.length; ++i) {
12 let child = ol.children[i];
13 let index = parentIndex.concat([i]);
14 let applicable = bullets[Math.min(index.length - 1, 5)];
15 let span = document.createElement('span');
16 span.textContent = (applicable[i] || '?') + '. ';
17 span.style.fontSize = '0';
18 span.setAttribute('aria-hidden', 'true');
19 child.prepend(span);
20 let sublist = child.querySelector('ol');
21 if (sublist != null) {
22 addStepNumberText(sublist, index);
23 }
24 }
25}
26document.addEventListener('DOMContentLoaded', () => {
27 document.querySelectorAll('emu-alg > ol').forEach(ol => {
28 addStepNumberText(ol, []);
29 });
30});