diff options
author | Hsieh Chin Fan <pham@topo.tw> | 2024-10-17 10:28:32 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-10-17 10:28:32 +0800 |
commit | 337a562ee8c9e2531a1a6799acaa66567ad7ef12 (patch) | |
tree | 818b4daf06bc35191074f650fc2d28ffc5e8ba52 /src/dumbymap.mjs | |
parent | e4f01ea8f7817fa738ea9012fa217a2b9eca88aa (diff) |
feat: option "autoMap" in case no valid render target in Semantic HTML
Diffstat (limited to 'src/dumbymap.mjs')
-rw-r--r-- | src/dumbymap.mjs | 14 |
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' | |||
14 | import LeaderLine from 'leader-line' | 14 | import LeaderLine from 'leader-line' |
15 | 15 | ||
16 | /** CSS Selector for main components */ | 16 | /** CSS Selector for main components */ |
17 | const mapBlockSelector = 'pre:has(.language-map)' | 17 | const mapBlockSelector = 'pre:has(.language-map), .mapclay-container' |
18 | const docLinkSelector = 'a[href^="#"][title^="=>"]' | 18 | const docLinkSelector = 'a[href^="#"][title^="=>"]' |
19 | const geoLinkSelector = 'a[href^="geo:"]' | 19 | const 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 */ |