aboutsummaryrefslogtreecommitdiffhomepage
path: root/addon/index.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'addon/index.mjs')
-rw-r--r--addon/index.mjs48
1 files changed, 19 insertions, 29 deletions
diff --git a/addon/index.mjs b/addon/index.mjs
index e2fede3..057cd90 100644
--- a/addon/index.mjs
+++ b/addon/index.mjs
@@ -1,15 +1,5 @@
1console.log('content script loaded') 1console.log('content script loaded')
2 2
3browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
4 console.log('receive message', message)
5 sendResponse('received')
6 if (message === 'map-inline') {
7 alert('msg', message)
8 return Promise.resolve('done')
9 }
10 return false
11})
12
13const url = new URL(window.location) 3const url = new URL(window.location)
14const use = url.searchParams.get('use') 4const use = url.searchParams.get('use')
15if (url.host === 'www.ptt.cc') { 5if (url.host === 'www.ptt.cc') {
@@ -23,17 +13,13 @@ if (url.host === 'www.ptt.cc') {
23 }) 13 })
24} 14}
25 15
26const blockSelectors = { 16const contentSelectors = {
27 'developer.mozilla': '.section-content', 17 'developer.mozilla': ':has(.section-content)',
28 'hackmd.io': '#doc > *', 18 'hackmd.io': '#doc',
29 'www.ptt.cc': '#main-content > span', 19 'www.ptt.cc': '#main-content',
30 'prosemirror.net': '.ProseMirror > *', 20 'prosemirror.net': '.ProseMirror',
31} 21}
32const blockSelector = blockSelectors[url.host] 22const contentSelector = contentSelectors[url.host]
33
34const addBlocks = blockSelector
35 ? root => Array.from(root.querySelectorAll(blockSelector))
36 : undefined
37 23
38const simpleRender = window.mapclay.renderWith(config => ({ 24const simpleRender = window.mapclay.renderWith(config => ({
39 use: use ?? 'Leaflet', 25 use: use ?? 'Leaflet',
@@ -47,12 +33,16 @@ const simpleRender = window.mapclay.renderWith(config => ({
47 }, 33 },
48})) 34}))
49 35
50if (!document.querySelector('.Dumby')) { 36browser.runtime.onMessage.addListener((message, sender, sendResponse) => {
51 window.generateMaps(document.querySelector('main') ?? document.body, { 37 console.log('receive message', message)
52 crs: url.searchParams.get('crs') ?? 'EPSG:4326', 38 sendResponse('received')
53 addBlocks, 39 if (message === 'map-inline-add') {
54 initialLayout: 'sticky', 40 window.generateMaps(document.querySelector(contentSelector ?? 'main') ?? document.body, {
55 render: simpleRender, 41 crs: url.searchParams.get('crs') ?? 'EPSG:4326',
56 autoMap: false, 42 initialLayout: 'sticky',
57 }) 43 render: simpleRender,
58} 44 })
45 return Promise.resolve('done')
46 }
47 return false
48})