From 5c6fa25419624ee5224b4accfa056441116466fc Mon Sep 17 00:00:00 2001 From: Hsieh Chin Fan Date: Tue, 15 Oct 2024 15:57:12 +0800 Subject: feat: use article as method of default block generation --- src/dumbymap.mjs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index a35a2d6..cd67eae 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs @@ -58,8 +58,8 @@ export const markdown2HTML = (container, mdContent) => { /** Custom rule for Blocks in DumbyMap */ // FIXME A better way to generate blocks - md.renderer.rules.dumby_block_open = () => '
' - md.renderer.rules.dumby_block_close = () => '
' + md.renderer.rules.dumby_block_open = () => '
' + md.renderer.rules.dumby_block_close = () => '
' md.core.ruler.before('block', 'dumby_block', state => { state.tokens.push(new state.Token('dumby_block_open', '', 1)) }) @@ -99,17 +99,20 @@ export const generateMaps = (container, { layouts = [], delay, renderCallback, - addBlocks = htmlHolder => Array.from(htmlHolder.children) - .map(e => { e.classList.add('dumby-block'); return e }), + addBlocks = htmlHolder => Array.from(htmlHolder.querySelectorAll('article')), } = {}) => { /** Prepare Contaner/HTML-Holder/Showcase */ container.classList.add('Dumby') delete container.dataset.layout container.dataset.layout = defaultLayouts[0].name - const htmlHolder = container.querySelector('.SemanticHtml') ?? container + const htmlHolder = container.querySelector('.SemanticHtml, :has(article, section)') ?? container.firstElementChild + htmlHolder.classList.add('.SemanticHtml') const blocks = addBlocks(htmlHolder) - blocks.forEach(b => { b.dataset.total = blocks.length }) + blocks.forEach(b => { + b.classList.add('dumby-block') + b.dataset.total = blocks.length + }) const showcase = document.createElement('div') container.appendChild(showcase) -- cgit v1.2.3-70-g09d2