aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-10-15 15:57:12 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-10-15 20:00:54 +0800
commit5c6fa25419624ee5224b4accfa056441116466fc (patch)
tree1c4ef75e41a6629e404b31360e0ae1c13c2bbafc
parentc39dcc9b5a9055fec9a58ce833bd9535ba19b086 (diff)
feat: use article as method of default block generation
-rw-r--r--src/dumbymap.mjs15
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)