From 8aadc8fd3b69fbd8a030e88426816c38ca32f4af Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Sat, 14 Sep 2024 19:31:23 +0800 Subject: feat: Render maps directly be debounce --- src/editor.mjs | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/editor.mjs b/src/editor.mjs index b88e488..b93f9ba 100644 --- a/src/editor.mjs +++ b/src/editor.mjs @@ -139,10 +139,30 @@ const completeForCodeBlock = (change) => { } } -// Re-render HTML by editor content -cm.on("change", (_, change) => { +const debounceForMap = (() => { + let timer = null; + + return function(...args) { + let context = this; + + clearTimeout(timer); + timer = setTimeout(() => { + generateMaps.apply(context, args) + }, 1000); + } +})() + +const updateDumbyMap = () => { markdown2HTML(HtmlContainer, editor.value()) createDocLinks(HtmlContainer) + debounceForMap(HtmlContainer) +} + +updateDumbyMap() + +// Re-render HTML by editor content +cm.on("change", (_, change) => { + updateDumbyMap() addClassToCodeLines() completeForCodeBlock(change) }) -- cgit v1.2.3-70-g09d2