aboutsummaryrefslogtreecommitdiffhomepage
path: root/addon/index.mjs
diff options
context:
space:
mode:
authorHsieh Chin Fan <pham@topo.tw>2024-10-17 10:38:15 +0800
committerHsieh Chin Fan <pham@topo.tw>2024-10-17 10:38:15 +0800
commitd91501af0d3860da1022e960199115c33b4a63a6 (patch)
tree7a9c02421b33dcb36460acceed381d4a116c148d /addon/index.mjs
parent9c90bd1cbdc5de5b50def0eb4cb3e65e80194af3 (diff)
parent9a66411258781a57d5c953b7113403fdf0d218cf (diff)
Merge branch "addon"
Diffstat (limited to 'addon/index.mjs')
-rw-r--r--addon/index.mjs42
1 files changed, 42 insertions, 0 deletions
diff --git a/addon/index.mjs b/addon/index.mjs
new file mode 100644
index 0000000..b5d71ba
--- /dev/null
+++ b/addon/index.mjs
@@ -0,0 +1,42 @@
1const url = new URL(window.location)
2if (url.host === 'www.ptt.cc') {
3 const content = document.querySelector('#main-content')
4 Array.from(content.childNodes)
5 .filter(n => !(n instanceof window.HTMLElement))
6 .forEach(text => {
7 const span = document.createElement('span')
8 span.innerText = text.textContent
9 text.replaceWith(span)
10 })
11}
12
13const blockSelectors = {
14 'developer.mozilla': '.section-content',
15 'hackmd.io': '#doc > *',
16 'www.ptt.cc': '#main-content > span',
17}
18const blockSelector = blockSelectors[url.host]
19
20const addBlocks = blockSelector
21 ? root => Array.from(root.querySelectorAll(blockSelector))
22 : undefined
23
24const simpleRender = window.mapclay.renderWith(config => ({
25 use: 'Leaflet',
26 width: '100%',
27 height: '200px',
28 XYZ: 'https://tile.openstreetmap.jp/styles/osm-bright/512/{z}/{x}/{y}.png',
29 ...config,
30 aliases: {
31 use: window.mapclay.renderers,
32 ...(config.aliases ?? {}),
33 },
34}))
35
36window.generateMaps(document.querySelector('main') ?? document.body, {
37 crs: url.searchParams.get('crs') ?? 'EPSG:4326',
38 addBlocks,
39 initialLayout: '',
40 render: simpleRender,
41 autoMap: true,
42})