aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/dumbymap.mjs
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-10-17 10:28:32 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-10-17 10:28:32 +0800
commit337a562ee8c9e2531a1a6799acaa66567ad7ef12 (patch)
tree818b4daf06bc35191074f650fc2d28ffc5e8ba52 /src/dumbymap.mjs
parente4f01ea8f7817fa738ea9012fa217a2b9eca88aa (diff)
feat: option "autoMap" in case no valid render target in Semantic HTML
Diffstat (limited to 'src/dumbymap.mjs')
-rw-r--r--src/dumbymap.mjs14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/dumbymap.mjs b/src/dumbymap.mjs
index 94fcc1d..706e874 100644
--- a/src/dumbymap.mjs
+++ b/src/dumbymap.mjs
@@ -14,7 +14,7 @@ import { register, fromEPSGCode } from 'ol/proj/proj4'
14import LeaderLine from 'leader-line' 14import LeaderLine from 'leader-line'
15 15
16/** CSS Selector for main components */ 16/** CSS Selector for main components */
17const mapBlockSelector = 'pre:has(.language-map)' 17const mapBlockSelector = 'pre:has(.language-map), .mapclay-container'
18const docLinkSelector = 'a[href^="#"][title^="=>"]' 18const docLinkSelector = 'a[href^="#"][title^="=>"]'
19const geoLinkSelector = 'a[href^="geo:"]' 19const geoLinkSelector = 'a[href^="geo:"]'
20 20
@@ -163,6 +163,7 @@ export const generateMaps = (container, {
163 delay, 163 delay,
164 renderCallback, 164 renderCallback,
165 addBlocks = defaultBlocks, 165 addBlocks = defaultBlocks,
166 autoMap = false,
166 render = defaultRender, 167 render = defaultRender,
167} = {}) => { 168} = {}) => {
168 /** Prepare Contaner */ 169 /** Prepare Contaner */
@@ -457,11 +458,12 @@ export const generateMaps = (container, {
457 const elementsWithMapConfig = Array.from( 458 const elementsWithMapConfig = Array.from(
458 container.querySelectorAll(mapBlockSelector) ?? [], 459 container.querySelectorAll(mapBlockSelector) ?? [],
459 ) 460 )
460 if (elementsWithMapConfig.length === 0) { 461 if (autoMap && elementsWithMapConfig.length === 0) {
461 const map = document.createElement('pre') 462 const mapContainer = document.createElement('pre')
462 map.textContent = '#Created by DumbyMap' 463 mapContainer.className = 'mapclay-container'
463 htmlHolder.insertBefore(map, htmlHolder.firstElementChild) 464 mapContainer.textContent = '#Created by DumbyMap'
464 elementsWithMapConfig.push(map) 465 htmlHolder.insertBefore(mapContainer, htmlHolder.firstElementChild)
466 elementsWithMapConfig.push(mapContainer)
465 } 467 }
466 468
467 /** Render each taget element for maps */ 469 /** Render each taget element for maps */