diff options
author | Hsieh Chin Fan <pham@topo.tw> | 2024-10-15 15:57:12 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-10-15 20:00:54 +0800 |
commit | 5c6fa25419624ee5224b4accfa056441116466fc (patch) | |
tree | 1c4ef75e41a6629e404b31360e0ae1c13c2bbafc | |
parent | c39dcc9b5a9055fec9a58ce833bd9535ba19b086 (diff) |
feat: use article as method of default block generation
-rw-r--r-- | src/dumbymap.mjs | 15 |
1 files 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) => { | |||
58 | 58 | ||
59 | /** Custom rule for Blocks in DumbyMap */ | 59 | /** Custom rule for Blocks in DumbyMap */ |
60 | // FIXME A better way to generate blocks | 60 | // FIXME A better way to generate blocks |
61 | md.renderer.rules.dumby_block_open = () => '<div>' | 61 | md.renderer.rules.dumby_block_open = () => '<article>' |
62 | md.renderer.rules.dumby_block_close = () => '</div>' | 62 | md.renderer.rules.dumby_block_close = () => '</article>' |
63 | md.core.ruler.before('block', 'dumby_block', state => { | 63 | md.core.ruler.before('block', 'dumby_block', state => { |
64 | state.tokens.push(new state.Token('dumby_block_open', '', 1)) | 64 | state.tokens.push(new state.Token('dumby_block_open', '', 1)) |
65 | }) | 65 | }) |
@@ -99,17 +99,20 @@ export const generateMaps = (container, { | |||
99 | layouts = [], | 99 | layouts = [], |
100 | delay, | 100 | delay, |
101 | renderCallback, | 101 | renderCallback, |
102 | addBlocks = htmlHolder => Array.from(htmlHolder.children) | 102 | addBlocks = htmlHolder => Array.from(htmlHolder.querySelectorAll('article')), |
103 | .map(e => { e.classList.add('dumby-block'); return e }), | ||
104 | } = {}) => { | 103 | } = {}) => { |
105 | /** Prepare Contaner/HTML-Holder/Showcase */ | 104 | /** Prepare Contaner/HTML-Holder/Showcase */ |
106 | container.classList.add('Dumby') | 105 | container.classList.add('Dumby') |
107 | delete container.dataset.layout | 106 | delete container.dataset.layout |
108 | container.dataset.layout = defaultLayouts[0].name | 107 | container.dataset.layout = defaultLayouts[0].name |
109 | 108 | ||
110 | const htmlHolder = container.querySelector('.SemanticHtml') ?? container | 109 | const htmlHolder = container.querySelector('.SemanticHtml, :has(article, section)') ?? container.firstElementChild |
110 | htmlHolder.classList.add('.SemanticHtml') | ||
111 | const blocks = addBlocks(htmlHolder) | 111 | const blocks = addBlocks(htmlHolder) |
112 | blocks.forEach(b => { b.dataset.total = blocks.length }) | 112 | blocks.forEach(b => { |
113 | b.classList.add('dumby-block') | ||
114 | b.dataset.total = blocks.length | ||
115 | }) | ||
113 | 116 | ||
114 | const showcase = document.createElement('div') | 117 | const showcase = document.createElement('div') |
115 | container.appendChild(showcase) | 118 | container.appendChild(showcase) |