diff options
Diffstat (limited to 'src/dumbymap.mjs')
-rw-r--r-- | src/dumbymap.mjs | 33 |
1 files changed, 3 insertions, 30 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index 6f9aa6f..97c13af 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs | |||
@@ -58,7 +58,7 @@ 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 = () => '<article>' | 61 | md.renderer.rules.dumby_block_open = () => '<article class="dumby-block">' |
62 | md.renderer.rules.dumby_block_close = () => '</article>' | 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)) |
@@ -86,31 +86,6 @@ export const markdown2HTML = (container, mdContent) => { | |||
86 | } | 86 | } |
87 | 87 | ||
88 | /** | 88 | /** |
89 | * defaultBlocks. | ||
90 | * @description Default way to get blocks from Semantic HTML | ||
91 | * @param {HTMLElement} root | ||
92 | */ | ||
93 | const defaultBlocks = root => { | ||
94 | const articles = Array.from(root.querySelectorAll('article')) | ||
95 | if (articles.length > 0) return articles | ||
96 | |||
97 | const others = Array.from( | ||
98 | root.querySelectorAll(':has(>p, >blockquote, >pre, >ul, >ol, >table, >details)'), | ||
99 | ) | ||
100 | .map(e => { | ||
101 | e.classList.add('dumby-block') | ||
102 | return e | ||
103 | }) | ||
104 | .filter(e => { | ||
105 | const isContained = e.parentElement.closest('.dumby-block') | ||
106 | if (isContained) e.classList.remove('dumby-block') | ||
107 | return !isContained | ||
108 | }) | ||
109 | |||
110 | return others | ||
111 | } | ||
112 | |||
113 | /** | ||
114 | * updateAttributeByStep. | 89 | * updateAttributeByStep. |
115 | * @description Update data attribute by steps of map render | 90 | * @description Update data attribute by steps of map render |
116 | * @param {Object} - renderer which is running steps | 91 | * @param {Object} - renderer which is running steps |
@@ -162,7 +137,6 @@ export const generateMaps = (container, { | |||
162 | layouts = [], | 137 | layouts = [], |
163 | delay, | 138 | delay, |
164 | renderCallback, | 139 | renderCallback, |
165 | addBlocks = defaultBlocks, | ||
166 | autoMap = false, | 140 | autoMap = false, |
167 | render = defaultRender, | 141 | render = defaultRender, |
168 | } = {}) => { | 142 | } = {}) => { |
@@ -176,9 +150,8 @@ export const generateMaps = (container, { | |||
176 | Array.from(container.children).sort((a, b) => a.textContent.length < b.textContent.length).at(0) | 150 | Array.from(container.children).sort((a, b) => a.textContent.length < b.textContent.length).at(0) |
177 | htmlHolder.classList.add('SemanticHtml') | 151 | htmlHolder.classList.add('SemanticHtml') |
178 | 152 | ||
179 | const blocks = addBlocks(htmlHolder) | 153 | const blocks = htmlHolder.querySelectorAll('.dumby-block') |
180 | blocks.forEach(b => { | 154 | blocks.forEach(b => { |
181 | b.classList.add('dumby-block') | ||
182 | b.dataset.total = blocks.length | 155 | b.dataset.total = blocks.length |
183 | }) | 156 | }) |
184 | 157 | ||
@@ -199,7 +172,7 @@ export const generateMaps = (container, { | |||
199 | container, | 172 | container, |
200 | htmlHolder, | 173 | htmlHolder, |
201 | showcase, | 174 | showcase, |
202 | blocks, | 175 | get blocks () { return Array.from(htmlHolder.querySelectorAll('.dumby-block')) }, |
203 | modal, | 176 | modal, |
204 | modalContent, | 177 | modalContent, |
205 | utils: { | 178 | utils: { |