MarkdownStreamer / tests / md4start.js
Code · 43 lines · 1085 bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43const sourceEl    = document.getElementById('source');
const outputEl    = document.getElementById('output');
const streamBtn   = document.getElementById('streamBtn');
const stopBtn     = document.getElementById('stopBtn');
const speedSlider = document.getElementById('speedSlider');
const themeBtn    = document.getElementById('themeBtn');

var streamer;

async function startStream() 
{
  const text = sourceEl.value;
  outputEl.innerHTML = '';
  streamer = new MarkdownStreamer(outputEl);

  streamBtn.disabled = true; 
  stopBtn.disabled = false;

  streamer.setSpeed( parseInt(speedSlider.value));

  await streamer.markdownasync(text);
  
  streamer.finalize();
  streamBtn.disabled = false; 
  stopBtn.disabled = true;
}

function stopStream() 
{
  streamBtn.disabled = false; 
  stopBtn.disabled = true; 
  streamer.stop();
}

streamBtn.addEventListener('click', startStream);
stopBtn.addEventListener('click', stopStream);


themeBtn.addEventListener('click', () => 
{
  const light = outputEl.classList.toggle('light');
  themeBtn.textContent = light ? 'Dark' : 'Light';
});