diff options
-rw-r--r-- | src/dumbymap.mjs | 36 |
1 files changed, 17 insertions, 19 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs index a34998f..8222c80 100644 --- a/src/dumbymap.mjs +++ b/src/dumbymap.mjs | |||
@@ -217,9 +217,6 @@ export const generateMaps = async (container) => { | |||
217 | // Render Maps {{{ | 217 | // Render Maps {{{ |
218 | 218 | ||
219 | const afterEachMapLoaded = (mapContainer) => { | 219 | const afterEachMapLoaded = (mapContainer) => { |
220 | mapContainer.querySelectorAll('.marker') | ||
221 | .forEach(marker => htmlHolder.anchors.push(marker)) | ||
222 | |||
223 | const focusClickedMap = () => { | 220 | const focusClickedMap = () => { |
224 | if (container.getAttribute('data-layout') !== 'none') return | 221 | if (container.getAttribute('data-layout') !== 'none') return |
225 | 222 | ||
@@ -244,16 +241,9 @@ export const generateMaps = async (container) => { | |||
244 | config.id = mapId | 241 | config.id = mapId |
245 | } | 242 | } |
246 | mapIdList.push(mapId) | 243 | mapIdList.push(mapId) |
244 | return config | ||
247 | } | 245 | } |
248 | 246 | ||
249 | // FIXME Create markers after maps are created | ||
250 | const markerOptions = geoLinks.map(link => ({ | ||
251 | targets: link.targets, | ||
252 | xy: link.xy, | ||
253 | title: link.url.pathname | ||
254 | })) | ||
255 | |||
256 | |||
257 | // Render each code block with "language-map" class | 247 | // Render each code block with "language-map" class |
258 | const renderTargets = Array.from(container.querySelectorAll('pre:has(.language-map)')) | 248 | const renderTargets = Array.from(container.querySelectorAll('pre:has(.language-map)')) |
259 | const renderAllTargets = renderTargets.map(async (target) => { | 249 | const renderAllTargets = renderTargets.map(async (target) => { |
@@ -266,14 +256,7 @@ export const generateMaps = async (container) => { | |||
266 | 256 | ||
267 | let configList = [] | 257 | let configList = [] |
268 | try { | 258 | try { |
269 | configList = parseConfigsFromYaml(configText).map(result => { | 259 | configList = parseConfigsFromYaml(configText).map(assignMapId) |
270 | assignMapId(result) | ||
271 | const markersFromLinks = markerOptions.filter(marker => | ||
272 | !marker.targets || marker.targets.includes(result.id) | ||
273 | ) | ||
274 | Object.assign(result, { markers: markersFromLinks }) | ||
275 | return result | ||
276 | }) | ||
277 | } catch (_) { | 260 | } catch (_) { |
278 | console.warn('Fail to parse yaml config for element', target) | 261 | console.warn('Fail to parse yaml config for element', target) |
279 | } | 262 | } |
@@ -292,6 +275,21 @@ export const generateMaps = async (container) => { | |||
292 | }) | 275 | }) |
293 | }) | 276 | }) |
294 | const renderInfo = await Promise.all(renderAllTargets).then(() => 'Finish Rendering') | 277 | const renderInfo = await Promise.all(renderAllTargets).then(() => 'Finish Rendering') |
278 | const maps = htmlHolder.querySelectorAll('.map-container') ?? [] | ||
279 | Array.from(maps) | ||
280 | .forEach(ele => { | ||
281 | const markers = geoLinks | ||
282 | .filter(link => !link.targets || link.targets.include(ele.id)) | ||
283 | .map(link => ({ | ||
284 | xy: link.xy, | ||
285 | title: link.url.pathname | ||
286 | })) | ||
287 | ele?.renderer?.addMarkers(markers) | ||
288 | }) | ||
289 | |||
290 | htmlHolder.querySelectorAll('.marker') | ||
291 | .forEach(marker => htmlHolder.anchors.push(marker)) | ||
292 | |||
295 | console.info(renderInfo) | 293 | console.info(renderInfo) |
296 | 294 | ||
297 | //}}} | 295 | //}}} |