From 20c0224bc848ccf573385d96c3ac68eaa910b869 Mon Sep 17 00:00:00 2001 From: NN Solex Date: Mon, 1 May 2023 21:58:23 +0300 Subject: [PATCH] maps --- stuff/AnyConv.com__points.kml | 86 ++++++++++++ stuff/gpx.py | 29 ++++ stuff/index.html | 85 ++++++++++++ stuff/map.css | 9 ++ stuff/points.gpx | 42 ++++++ random.txt => stuff/random.txt | 0 web/__pycache__/pelicanconf.cpython-310.pyc | Bin 1533 -> 1594 bytes web/content/pages/locate.md | 3 + web/content/tags/ein_hod_01.md | 2 +- web/content/tags/ein_hod_02.md | 6 + web/content/tags/ein_hod_03.md | 6 + web/content/tags/test_01.md | 6 + web/nfc-theme/static/bluedot.svg | 15 +++ web/nfc-theme/static/geo.js | 13 +- web/nfc-theme/static/local.css | 28 ++++ web/nfc-theme/static/map.js | 82 +++++++++++ web/nfc-theme/static/nfclogo.svg | 31 +++++ web/nfc-theme/templates/archives.html | 21 ++- web/nfc-theme/templates/article.html | 4 +- web/nfc-theme/templates/base.html | 2 + web/nfc-theme/templates/category.html | 49 ++++++- web/nfc-theme/templates/gosquared.html | 14 -- web/nfc-theme/templates/index.html | 4 +- web/nfc-theme/templates/locate.html | 127 ++++++++++++++++++ web/output/geohash/index.html | 127 ++++++++++++++++++ web/output/index.html | 2 + web/output/projects/blue-eyed-donkey.gpx | 15 +++ web/output/projects/blue-eyed-donkey.kml | 26 ++++ .../projects/blue-eyed-donkey/index.html | 79 ++++++++--- web/output/projects/index.html | 3 + web/output/projects/testing.gpx | 9 ++ web/output/projects/testing.kml | 14 ++ web/output/projects/testing/index.html | 44 ++++++ web/output/svbf5c4nwkr/index.html | 21 +++ web/output/svbfh0cc5fp/index.html | 21 +++ web/output/svbfh0geqrx/index.html | 21 +++ web/output/svbfh1049ck/index.html | 6 +- web/output/tags/index.html | 31 ++++- web/output/tags/list.html | 55 ++++++++ web/output/theme/DavidLibre-Regular.ttf | Bin 107772 -> 0 bytes web/output/theme/bluedot.svg | 15 +++ web/output/theme/geo.js | 13 +- web/output/theme/local.css | 28 ++++ web/output/theme/map.js | 82 +++++++++++ web/output/theme/nfclogo.svg | 31 +++++ web/pelicanconf.py | 5 +- web/plugins/geodata/__init__.py | 1 + .../__pycache__/__init__.cpython-310.pyc | Bin 0 -> 169 bytes .../__pycache__/geodata.cpython-310.pyc | Bin 0 -> 2845 bytes .../geodata/__pycache__/map.cpython-310.pyc | Bin 0 -> 717 bytes web/plugins/geodata/geodata.py | 73 ++++++++++ .../__pycache__/geohash.cpython-310.pyc | Bin 885 -> 885 bytes web/plugins/geohash/geohash.py | 3 +- 53 files changed, 1329 insertions(+), 60 deletions(-) create mode 100644 stuff/AnyConv.com__points.kml create mode 100644 stuff/gpx.py create mode 100644 stuff/index.html create mode 100644 stuff/map.css create mode 100644 stuff/points.gpx rename random.txt => stuff/random.txt (100%) create mode 100644 web/content/pages/locate.md create mode 100644 web/content/tags/ein_hod_02.md create mode 100644 web/content/tags/ein_hod_03.md create mode 100644 web/content/tags/test_01.md create mode 100644 web/nfc-theme/static/bluedot.svg create mode 100644 web/nfc-theme/static/map.js create mode 100644 web/nfc-theme/static/nfclogo.svg delete mode 100644 web/nfc-theme/templates/gosquared.html create mode 100644 web/nfc-theme/templates/locate.html create mode 100644 web/output/geohash/index.html create mode 100644 web/output/projects/blue-eyed-donkey.gpx create mode 100644 web/output/projects/blue-eyed-donkey.kml create mode 100644 web/output/projects/testing.gpx create mode 100644 web/output/projects/testing.kml create mode 100644 web/output/projects/testing/index.html create mode 100644 web/output/svbf5c4nwkr/index.html create mode 100644 web/output/svbfh0cc5fp/index.html create mode 100644 web/output/svbfh0geqrx/index.html create mode 100644 web/output/tags/list.html delete mode 100644 web/output/theme/DavidLibre-Regular.ttf create mode 100644 web/output/theme/bluedot.svg create mode 100644 web/output/theme/map.js create mode 100644 web/output/theme/nfclogo.svg create mode 100644 web/plugins/geodata/__init__.py create mode 100644 web/plugins/geodata/__pycache__/__init__.cpython-310.pyc create mode 100644 web/plugins/geodata/__pycache__/geodata.cpython-310.pyc create mode 100644 web/plugins/geodata/__pycache__/map.cpython-310.pyc create mode 100644 web/plugins/geodata/geodata.py diff --git a/stuff/AnyConv.com__points.kml b/stuff/AnyConv.com__points.kml new file mode 100644 index 0000000..ed37d06 --- /dev/null +++ b/stuff/AnyConv.com__points.kml @@ -0,0 +1,86 @@ + + + + + Waypoints + + Testing + + 9.195427,45.480224 + + + + Testing + + 9.211414,45.479559 + + + + Testing + + 9.203267,45.470044 + + + + Testing + + 9.191543,45.475358 + + + + Testing + + 9.208902,45.474596 + + + + Testing + + 9.214803,45.478549 + + + + Testing + + 9.210735,45.468963 + + + + Testing + + 9.194717,45.476398 + + + + Testing + + 9.200197,45.475918 + + + + Testing + + 9.214712,45.479553 + + + + Testing + + 9.208935,45.477010 + + + + Testing + + 9.197640,45.481823 + + + + Testing + + 9.212113,45.475774 + + + + + diff --git a/stuff/gpx.py b/stuff/gpx.py new file mode 100644 index 0000000..39a1439 --- /dev/null +++ b/stuff/gpx.py @@ -0,0 +1,29 @@ +import gpxpy + +coordinates = [ + (45.48022428207604,9.195426779729253), + (45.47955920386783,9.211414017521326), + (45.47004427949249,9.203266840037728), + (45.475357889920666,9.191542629685118), + (45.47459610057904,9.208902213194566), + (45.478548651650364,9.214803404483442), + (45.46896260077224,9.210735083849189), + (45.476397626274775,9.194716709512006), + (45.475918164099824,9.200196924291388), + (45.479553171431604,9.21471213487326), + (45.47701013861511,9.208935252810576), + (45.48182315628131,9.197640483441692), + (45.47577401244318,9.212112575183651) +] + +gpx = gpxpy.gpx.GPX() + +for coord in coordinates: + lat, lon = coord + w = gpxpy.gpx.GPXWaypoint() + w.latitude = lat + w.longitude = lon + w.name = "Testing" + gpx.waypoints.append(w) + +print(gpx.to_xml()) \ No newline at end of file diff --git a/stuff/index.html b/stuff/index.html new file mode 100644 index 0000000..9a7d741 --- /dev/null +++ b/stuff/index.html @@ -0,0 +1,85 @@ + + + + + + + + + NFC Map + + + + + + + + + + +
+ + + diff --git a/stuff/map.css b/stuff/map.css new file mode 100644 index 0000000..8d51734 --- /dev/null +++ b/stuff/map.css @@ -0,0 +1,9 @@ +html, body { + height: 100%; + margin: 0; + padding: 0; +} + +#map { + height: 100%; + width: 100vw; } \ No newline at end of file diff --git a/stuff/points.gpx b/stuff/points.gpx new file mode 100644 index 0000000..42a7212 --- /dev/null +++ b/stuff/points.gpx @@ -0,0 +1,42 @@ + + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + + Testing + + \ No newline at end of file diff --git a/random.txt b/stuff/random.txt similarity index 100% rename from random.txt rename to stuff/random.txt diff --git a/web/__pycache__/pelicanconf.cpython-310.pyc b/web/__pycache__/pelicanconf.cpython-310.pyc index 2cbec3c8ac1fed3caf00d3a9f97d5222ec04f5c5..fc632d56fcb13545658a0868ab91072fc114e71f 100644 GIT binary patch delta 187 zcmey%y^Du8pO=@5fq{X6XR?3F`iZ=x!NvDXU zGe*gzh^8|}$)+$w$)$)z$)|`%DWph5DW*t9DWyn7DW^zBsierH$fh$zsitrSGib_f zeDREt>lR0HVo7Rxeo^J*b4)tiReU9h>BagvnZ+fOzcN*DN3o};=BFfvk|}~wQYk{|j8W1l z!s(1rGARsEvMC}_aw(!w@+o3b3Mt}IiYXFNN-2_2$|+Lmj8Q5noWTs5(i`7BW1M`C kNoTSYb1{>q>f{;Bzcw#nabjfjoBW*BX0j@qFcTLO0FUq@X#fBK diff --git a/web/content/pages/locate.md b/web/content/pages/locate.md new file mode 100644 index 0000000..59dd776 --- /dev/null +++ b/web/content/pages/locate.md @@ -0,0 +1,3 @@ +Title: Geohash +Save_as: geohash/index.html +Template: locate \ No newline at end of file diff --git a/web/content/tags/ein_hod_01.md b/web/content/tags/ein_hod_01.md index 74fc54b..3c6494b 100644 --- a/web/content/tags/ein_hod_01.md +++ b/web/content/tags/ein_hod_01.md @@ -1,4 +1,4 @@ -Title: Entry 1 +Title: Journal Entry 1 Date: 2023-04-12 Category: Blue Eyed Donkey Location: 32.70124169424201, 34.9805500394171 diff --git a/web/content/tags/ein_hod_02.md b/web/content/tags/ein_hod_02.md new file mode 100644 index 0000000..035f315 --- /dev/null +++ b/web/content/tags/ein_hod_02.md @@ -0,0 +1,6 @@ +Title: Journal Entry 2 +Date: 2023-04-12 +Category: Blue Eyed Donkey +Location: 32.699615286072735, 34.98304356695975 + +I spent the day exploring the town and stumbled upon an old, abandoned house. Inside, I found a collection of paintings that immediately caught my eye. They were unlike anything I had ever seen before, with bold colors and abstract shapes. I later learned that the artist who painted them was an Austrian painter who had worked as a traffic warden in the early days of the country. Her eccentricity was well-known among the locals, and it's said that she inspired Sunday, one of the founders of the town, in his own artistic pursuits. It's a shame that her work has been forgotten and left to decay in this abandoned house. \ No newline at end of file diff --git a/web/content/tags/ein_hod_03.md b/web/content/tags/ein_hod_03.md new file mode 100644 index 0000000..11c5652 --- /dev/null +++ b/web/content/tags/ein_hod_03.md @@ -0,0 +1,6 @@ +Title: Journal Entry 3 +Date: 2023-04-12 +Category: Blue Eyed Donkey +Location: 32.70003059472479, 34.985554114475526 + +As I wandered through the museum today, I stumbled upon a hidden room tucked away in a corner. It was like nothing I'd ever seen before. The air was heavy with the scent of wood and brass, and strange instruments and machines filled the room. Pipes and horns seemed to sprout from the walls like metallic vines, and the organs were unlike any I'd ever laid eyes on, with keyboards sprouting in every direction. As I explored further, I found boxes adorned with mysterious levers and knobs that seemed to emit a cacophony of otherworldly sounds. It was as though I had stumbled into the secret workshop of a mad scientist. \ No newline at end of file diff --git a/web/content/tags/test_01.md b/web/content/tags/test_01.md new file mode 100644 index 0000000..cf6e700 --- /dev/null +++ b/web/content/tags/test_01.md @@ -0,0 +1,6 @@ +Title: Test +Date: 2023-04-12 +Category: Testing +Location: 32.70194460092584, 34.972507850461874 + +As I wandered through the museum today, I stumbled upon a hidden room tucked away in a corner. It was like nothing I'd ever seen before. The air was heavy with the scent of wood and brass, and strange instruments and machines filled the room. Pipes and horns seemed to sprout from the walls like metallic vines, and the organs were unlike any I'd ever laid eyes on, with keyboards sprouting in every direction. As I explored further, I found boxes adorned with mysterious levers and knobs that seemed to emit a cacophony of otherworldly sounds. It was as though I had stumbled into the secret workshop of a mad scientist. \ No newline at end of file diff --git a/web/nfc-theme/static/bluedot.svg b/web/nfc-theme/static/bluedot.svg new file mode 100644 index 0000000..38bf264 --- /dev/null +++ b/web/nfc-theme/static/bluedot.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/web/nfc-theme/static/geo.js b/web/nfc-theme/static/geo.js index 6ccbc3e..bac5889 100644 --- a/web/nfc-theme/static/geo.js +++ b/web/nfc-theme/static/geo.js @@ -4,7 +4,12 @@ const ios = ua.indexOf("ios") > -1; const windows = ua.indexOf("windows") > -1; const linux = ua.indexOf("linux") > -1; const mac = ua.indexOf("macos") > -1; -var hashlink = document.querySelector(".geo a"); -if ( windows || mac || linux ) hashlink.href = "https://maps.google.com/?q=" + hashlink.getAttribute("latlon"); -else if ( android ) hashlink.href = "geo:0,0?q=" + hashlink.getAttribute("latlon"); -else if ( ios ) hashlink.href = "http://maps.apple.com/?ll=" + hashlink.getAttribute("latlon") + "&q=" + hashlink.innerHTML; \ No newline at end of file +var hashlinks = document.querySelectorAll(".geo a"); +var hasharray = [...hashlinks]; +if ( hasharray.length > 0 ) { + hasharray.forEach(hashlink => { + if ( windows || mac || linux ) hashlink.href = "https://maps.google.com/?q=" + hashlink.getAttribute("latlon"); + else if ( android ) hashlink.href = "geo:0,0?q=" + hashlink.getAttribute("latlon"); + else if ( ios ) hashlink.href = "http://maps.apple.com/?ll=" + hashlink.getAttribute("latlon") + "&q=" + hashlink.innerHTML; + }); +} \ No newline at end of file diff --git a/web/nfc-theme/static/local.css b/web/nfc-theme/static/local.css index 81986bf..4d5de2d 100644 --- a/web/nfc-theme/static/local.css +++ b/web/nfc-theme/static/local.css @@ -141,4 +141,32 @@ blockquote { border: 1px solid; margin: 0; padding-left: 1em; +} + +#map { + height: 100%; + width: 100vw; +} + +#map img { + border: none +} + +.info { + padding: 6px 8px; + background: white; + background: rgba(255,255,255,0.8); + box-shadow: 0 0 15px rgba(0,0,0,0.2); + border-radius: 5px; +} + +.info h4 { + font-size: 1.6em; + margin: 0 0 5px; + color: #777; +} + +.info span { + line-height: 18px; + vertical-align: top; } \ No newline at end of file diff --git a/web/nfc-theme/static/map.js b/web/nfc-theme/static/map.js new file mode 100644 index 0000000..aa1bcab --- /dev/null +++ b/web/nfc-theme/static/map.js @@ -0,0 +1,82 @@ +var bluedot = L.icon({ + iconUrl: '/theme/bluedot.svg', + iconSize: [18, 18], + iconAnchor: [9, 9], + popupAnchor: [0, -10] +}); + +var nfctag = L.icon({ + iconUrl: '/theme/nfclogo.svg', + iconSize: [20, 20], + iconAnchor: [10, 10], + popupAnchor: [0, -12] +}); + +const showNfcTags = L.geoJSON(nfcTags, { + pointToLayer(feature, latlng) { return L.marker(latlng, { icon: nfctag });}, + onEachFeature +}); + +const map = L.map('map').fitBounds(showNfcTags.getBounds()); + +const tiles = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { + maxZoom: 19, + attribution: '© OpenStreetMap' +}).addTo(map); + +showNfcTags.addTo(map); +map.on('locationfound', onLocationFound); +map.on('locationerror', onLocationError); +map.locate({setView: false, watch: true}); + +function onEachFeature(feature, layer) { + let popupContent = ``; + + if (feature.properties && feature.properties.title) { + popupContent += feature.properties.title; + } + + layer.bindPopup(popupContent); +} + +var locationMarker, locationCircle; +pageload = true; + +function onLocationFound(e) { + if (locationMarker) { + map.removeLayer(locationMarker); + map.removeLayer(locationCircle); + } + const radius = e.accuracy / 2; + if ( pageload ) { + area = showNfcTags.getBounds(); + area.extend(e.latlng); + map.fitBounds(area); + map.zoomOut(1, {animate: false}); + pageload = false; + } + locationMarker = L.marker(e.latlng, {icon: bluedot}).addTo(map) + locationCircle = L.circle(e.latlng, radius).addTo(map); +} + +function onLocationError(e) { + alert(e.message); +} + +var info = L.control({position: 'topright'}); +var download = L.control({position: 'bottomleft'}); + +info.onAdd = function (map) { + this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info" + this._div.innerHTML = '

' + nfcTags["title"] + '

' + ' NFC Tag Locations'; + return this._div; +}; + +download.onAdd = function (map) { + this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info" + this._div.innerHTML = 'Download GPX KML'; + return this._div; +}; + +info.addTo(map); +download.addTo(map); \ No newline at end of file diff --git a/web/nfc-theme/static/nfclogo.svg b/web/nfc-theme/static/nfclogo.svg new file mode 100644 index 0000000..62be6ba --- /dev/null +++ b/web/nfc-theme/static/nfclogo.svg @@ -0,0 +1,31 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + diff --git a/web/nfc-theme/templates/archives.html b/web/nfc-theme/templates/archives.html index 63913c1..8200ec8 100644 --- a/web/nfc-theme/templates/archives.html +++ b/web/nfc-theme/templates/archives.html @@ -1 +1,20 @@ -{% extends "base.html" %} \ No newline at end of file +{% extends "base.html" %} +{% block content %} +
+{% block content_title %} +{% endblock %} + +{% for article in articles %} + + +{% endfor %} + +
+{% endblock content %} diff --git a/web/nfc-theme/templates/article.html b/web/nfc-theme/templates/article.html index 53df4ec..3827261 100644 --- a/web/nfc-theme/templates/article.html +++ b/web/nfc-theme/templates/article.html @@ -4,10 +4,8 @@
{{ article.content }} {% if article.metadata.geohash %} - {{ article.metadata.geohash }} + NFC {% endif %}
- - {% endblock %} diff --git a/web/nfc-theme/templates/base.html b/web/nfc-theme/templates/base.html index 31d21d4..0d234a6 100644 --- a/web/nfc-theme/templates/base.html +++ b/web/nfc-theme/templates/base.html @@ -20,4 +20,6 @@ {% endif %} + + diff --git a/web/nfc-theme/templates/category.html b/web/nfc-theme/templates/category.html index f64ed15..01859d7 100644 --- a/web/nfc-theme/templates/category.html +++ b/web/nfc-theme/templates/category.html @@ -1,5 +1,46 @@ -{% extends "index.html" %} -{% block content_title %} -

{{ category }}

-{% endblock %} + + + + + + + + {{ category }} + + + + + + + + + +
+ + + diff --git a/web/nfc-theme/templates/gosquared.html b/web/nfc-theme/templates/gosquared.html deleted file mode 100644 index f47efcf..0000000 --- a/web/nfc-theme/templates/gosquared.html +++ /dev/null @@ -1,14 +0,0 @@ -{% if GOSQUARED_SITENAME %} - -{% endif %} diff --git a/web/nfc-theme/templates/index.html b/web/nfc-theme/templates/index.html index 27e4131..7cda289 100644 --- a/web/nfc-theme/templates/index.html +++ b/web/nfc-theme/templates/index.html @@ -9,7 +9,7 @@

- {{ article.title }} + {{ article.metadata.geohash }}

{{ article.summary }}
@@ -18,4 +18,4 @@ {% include 'pagination.html' %} -{% endblock content %} +{% endblock content %} \ No newline at end of file diff --git a/web/nfc-theme/templates/locate.html b/web/nfc-theme/templates/locate.html new file mode 100644 index 0000000..9757552 --- /dev/null +++ b/web/nfc-theme/templates/locate.html @@ -0,0 +1,127 @@ + + + + + + + + {{ page.name }} + + + + + + + + + +
+ + + diff --git a/web/output/geohash/index.html b/web/output/geohash/index.html new file mode 100644 index 0000000..55d65df --- /dev/null +++ b/web/output/geohash/index.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/web/output/index.html b/web/output/index.html index b06f007..3ae4bae 100644 --- a/web/output/index.html +++ b/web/output/index.html @@ -15,4 +15,6 @@ + + \ No newline at end of file diff --git a/web/output/projects/blue-eyed-donkey.gpx b/web/output/projects/blue-eyed-donkey.gpx new file mode 100644 index 0000000..ff53056 --- /dev/null +++ b/web/output/projects/blue-eyed-donkey.gpx @@ -0,0 +1,15 @@ + + + + + + + Journal Entry 1 + + + Journal Entry 2 + + + Journal Entry 3 + + diff --git a/web/output/projects/blue-eyed-donkey.kml b/web/output/projects/blue-eyed-donkey.kml new file mode 100644 index 0000000..142ff79 --- /dev/null +++ b/web/output/projects/blue-eyed-donkey.kml @@ -0,0 +1,26 @@ + + + + + Blue Eyed Donkey + + Journal Entry 1 + + 34.9805500394171,32.70124169424201 + + + + Journal Entry 2 + + 34.98304356695975,32.699615286072735 + + + + Journal Entry 3 + + 34.985554114475526,32.70003059472479 + + + + + diff --git a/web/output/projects/blue-eyed-donkey/index.html b/web/output/projects/blue-eyed-donkey/index.html index e3c5bbf..7826d8a 100644 --- a/web/output/projects/blue-eyed-donkey/index.html +++ b/web/output/projects/blue-eyed-donkey/index.html @@ -1,27 +1,66 @@ - - - + + + + + Blue Eyed Donkey + + + + + + + + + +
+ \ No newline at end of file diff --git a/web/output/projects/index.html b/web/output/projects/index.html index f4733cc..5dd8c41 100644 --- a/web/output/projects/index.html +++ b/web/output/projects/index.html @@ -10,7 +10,10 @@ + + \ No newline at end of file diff --git a/web/output/projects/testing.gpx b/web/output/projects/testing.gpx new file mode 100644 index 0000000..4b983db --- /dev/null +++ b/web/output/projects/testing.gpx @@ -0,0 +1,9 @@ + + + + + + + Test + + diff --git a/web/output/projects/testing.kml b/web/output/projects/testing.kml new file mode 100644 index 0000000..fa0eec1 --- /dev/null +++ b/web/output/projects/testing.kml @@ -0,0 +1,14 @@ + + + + + Testing + + Test + + 34.972507850461874,32.70194460092584 + + + + + diff --git a/web/output/projects/testing/index.html b/web/output/projects/testing/index.html new file mode 100644 index 0000000..165d00e --- /dev/null +++ b/web/output/projects/testing/index.html @@ -0,0 +1,44 @@ + + + + + + + + Testing + + + + + + + + + + +
+ + + \ No newline at end of file diff --git a/web/output/svbf5c4nwkr/index.html b/web/output/svbf5c4nwkr/index.html new file mode 100644 index 0000000..6f9c35a --- /dev/null +++ b/web/output/svbf5c4nwkr/index.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+
+

As I wandered through the museum today, I stumbled upon a hidden room tucked away in a corner. It was like nothing I'd ever seen before. The air was heavy with the scent of wood and brass, and strange instruments and machines filled the room. Pipes and horns seemed to sprout from the walls like metallic vines, and the organs were unlike any I'd ever laid eyes on, with keyboards sprouting in every direction. As I explored further, I found boxes adorned with mysterious levers and knobs that seemed to emit a cacophony of otherworldly sounds. It was as though I had stumbled into the secret workshop of a mad scientist.

+ NFC +
+
+ + + + + \ No newline at end of file diff --git a/web/output/svbfh0cc5fp/index.html b/web/output/svbfh0cc5fp/index.html new file mode 100644 index 0000000..ffbd6da --- /dev/null +++ b/web/output/svbfh0cc5fp/index.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+
+

I spent the day exploring the town and stumbled upon an old, abandoned house. Inside, I found a collection of paintings that immediately caught my eye. They were unlike anything I had ever seen before, with bold colors and abstract shapes. I later learned that the artist who painted them was an Austrian painter who had worked as a traffic warden in the early days of the country. Her eccentricity was well-known among the locals, and it's said that she inspired Sunday, one of the founders of the town, in his own artistic pursuits. It's a shame that her work has been forgotten and left to decay in this abandoned house.

+ NFC +
+
+ + + + + \ No newline at end of file diff --git a/web/output/svbfh0geqrx/index.html b/web/output/svbfh0geqrx/index.html new file mode 100644 index 0000000..35ad58e --- /dev/null +++ b/web/output/svbfh0geqrx/index.html @@ -0,0 +1,21 @@ + + + + + + + + + + +
+
+

As I wandered through the museum today, I stumbled upon a hidden room tucked away in a corner. It was like nothing I'd ever seen before. The air was heavy with the scent of wood and brass, and strange instruments and machines filled the room. Pipes and horns seemed to sprout from the walls like metallic vines, and the organs were unlike any I'd ever laid eyes on, with keyboards sprouting in every direction. As I explored further, I found boxes adorned with mysterious levers and knobs that seemed to emit a cacophony of otherworldly sounds. It was as though I had stumbled into the secret workshop of a mad scientist.

+ NFC +
+
+ + + + + \ No newline at end of file diff --git a/web/output/svbfh1049ck/index.html b/web/output/svbfh1049ck/index.html index 68b5398..40e5a90 100644 --- a/web/output/svbfh1049ck/index.html +++ b/web/output/svbfh1049ck/index.html @@ -11,11 +11,11 @@

I noticed a peculiar sensation in the air as soon as I arrived in town. It was as if an electric charge was coursing through the air beneath the pastoral tranquillity, making me nervous. I looked around, but there was no one to be found. The faint odor of decay lingered around me, mingled with the sweet fragrance of incense. The mix made me feel uneasy, like if I'd stepped into a strange, surreal dream.

- svbfh1049ck + NFC
- - + + \ No newline at end of file diff --git a/web/output/tags/index.html b/web/output/tags/index.html index 2f96f5a..8b7910e 100644 --- a/web/output/tags/index.html +++ b/web/output/tags/index.html @@ -14,7 +14,34 @@ + + + + + +
+
+

+ svbf5c4nwkr

@@ -23,4 +50,6 @@ + + \ No newline at end of file diff --git a/web/output/tags/list.html b/web/output/tags/list.html new file mode 100644 index 0000000..c01a857 --- /dev/null +++ b/web/output/tags/list.html @@ -0,0 +1,55 @@ + + + + + + + + + + +
+ + + + + + + + + + +
+ + + + + \ No newline at end of file diff --git a/web/output/theme/DavidLibre-Regular.ttf b/web/output/theme/DavidLibre-Regular.ttf deleted file mode 100644 index cf23de8b33084422cc349f4c6596b84fb89c283c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 107772 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

GqN+CWuCwYYPW;V^#kv&W?*EP$W+Og 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,qlrMz7J1B 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 + + + + + + + + + + + + diff --git a/web/output/theme/geo.js b/web/output/theme/geo.js index 6ccbc3e..bac5889 100644 --- a/web/output/theme/geo.js +++ b/web/output/theme/geo.js @@ -4,7 +4,12 @@ const ios = ua.indexOf("ios") > -1; const windows = ua.indexOf("windows") > -1; const linux = ua.indexOf("linux") > -1; const mac = ua.indexOf("macos") > -1; -var hashlink = document.querySelector(".geo a"); -if ( windows || mac || linux ) hashlink.href = "https://maps.google.com/?q=" + hashlink.getAttribute("latlon"); -else if ( android ) hashlink.href = "geo:0,0?q=" + hashlink.getAttribute("latlon"); -else if ( ios ) hashlink.href = "http://maps.apple.com/?ll=" + hashlink.getAttribute("latlon") + "&q=" + hashlink.innerHTML; \ No newline at end of file +var hashlinks = document.querySelectorAll(".geo a"); +var hasharray = [...hashlinks]; +if ( hasharray.length > 0 ) { + hasharray.forEach(hashlink => { + if ( windows || mac || linux ) hashlink.href = "https://maps.google.com/?q=" + hashlink.getAttribute("latlon"); + else if ( android ) hashlink.href = "geo:0,0?q=" + hashlink.getAttribute("latlon"); + else if ( ios ) hashlink.href = "http://maps.apple.com/?ll=" + hashlink.getAttribute("latlon") + "&q=" + hashlink.innerHTML; + }); +} \ No newline at end of file diff --git a/web/output/theme/local.css b/web/output/theme/local.css index 81986bf..4d5de2d 100644 --- a/web/output/theme/local.css +++ b/web/output/theme/local.css @@ -141,4 +141,32 @@ blockquote { border: 1px solid; margin: 0; padding-left: 1em; +} + +#map { + height: 100%; + width: 100vw; +} + +#map img { + border: none +} + +.info { + padding: 6px 8px; + background: white; + background: rgba(255,255,255,0.8); + box-shadow: 0 0 15px rgba(0,0,0,0.2); + border-radius: 5px; +} + +.info h4 { + font-size: 1.6em; + margin: 0 0 5px; + color: #777; +} + +.info span { + line-height: 18px; + vertical-align: top; } \ No newline at end of file diff --git a/web/output/theme/map.js b/web/output/theme/map.js new file mode 100644 index 0000000..aa1bcab --- /dev/null +++ b/web/output/theme/map.js @@ -0,0 +1,82 @@ +var bluedot = L.icon({ + iconUrl: '/theme/bluedot.svg', + iconSize: [18, 18], + iconAnchor: [9, 9], + popupAnchor: [0, -10] +}); + +var nfctag = L.icon({ + iconUrl: '/theme/nfclogo.svg', + iconSize: [20, 20], + iconAnchor: [10, 10], + popupAnchor: [0, -12] +}); + +const showNfcTags = L.geoJSON(nfcTags, { + pointToLayer(feature, latlng) { return L.marker(latlng, { icon: nfctag });}, + onEachFeature +}); + +const map = L.map('map').fitBounds(showNfcTags.getBounds()); + +const tiles = L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', { + maxZoom: 19, + attribution: '© OpenStreetMap' +}).addTo(map); + +showNfcTags.addTo(map); +map.on('locationfound', onLocationFound); +map.on('locationerror', onLocationError); +map.locate({setView: false, watch: true}); + +function onEachFeature(feature, layer) { + let popupContent = ``; + + if (feature.properties && feature.properties.title) { + popupContent += feature.properties.title; + } + + layer.bindPopup(popupContent); +} + +var locationMarker, locationCircle; +pageload = true; + +function onLocationFound(e) { + if (locationMarker) { + map.removeLayer(locationMarker); + map.removeLayer(locationCircle); + } + const radius = e.accuracy / 2; + if ( pageload ) { + area = showNfcTags.getBounds(); + area.extend(e.latlng); + map.fitBounds(area); + map.zoomOut(1, {animate: false}); + pageload = false; + } + locationMarker = L.marker(e.latlng, {icon: bluedot}).addTo(map) + locationCircle = L.circle(e.latlng, radius).addTo(map); +} + +function onLocationError(e) { + alert(e.message); +} + +var info = L.control({position: 'topright'}); +var download = L.control({position: 'bottomleft'}); + +info.onAdd = function (map) { + this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info" + this._div.innerHTML = '

' + nfcTags["title"] + '

' + ' NFC Tag Locations'; + return this._div; +}; + +download.onAdd = function (map) { + this._div = L.DomUtil.create('div', 'info'); // create a div with a class "info" + this._div.innerHTML = 'Download GPX KML'; + return this._div; +}; + +info.addTo(map); +download.addTo(map); \ No newline at end of file diff --git a/web/output/theme/nfclogo.svg b/web/output/theme/nfclogo.svg new file mode 100644 index 0000000..62be6ba --- /dev/null +++ b/web/output/theme/nfclogo.svg @@ -0,0 +1,31 @@ + + + + +Created by potrace 1.15, written by Peter Selinger 2001-2017 + + + + + diff --git a/web/pelicanconf.py b/web/pelicanconf.py index d362fd5..b82e6a0 100644 --- a/web/pelicanconf.py +++ b/web/pelicanconf.py @@ -34,10 +34,11 @@ MARKDOWN = { } } +ARTICLE_ORDER_BY = 'category' ARTICLE_URL = "{slug}" ARTICLE_SAVE_AS = "{slug}/index.html" INDEX_SAVE_AS = "tags/index.html" -ARCHIVES_SAVE_AS = '' +ARCHIVES_SAVE_AS = 'tags/list.html' AUTHOR_SAVE_AS = '' AUTHORS_SAVE_AS = '' TAGS_SAVE_AS = '' @@ -56,4 +57,4 @@ CATEGORY_SAVE_AS = 'projects/{slug}/index.html' DELETE_OUTPUT_DIRECTORY = True -PLUGINS = ['geohash'] \ No newline at end of file +PLUGINS = ['geohash', 'geodata'] \ No newline at end of file diff --git a/web/plugins/geodata/__init__.py b/web/plugins/geodata/__init__.py new file mode 100644 index 0000000..bb0a31d --- /dev/null +++ b/web/plugins/geodata/__init__.py @@ -0,0 +1 @@ +from .geodata import * \ No newline at end of file diff --git a/web/plugins/geodata/__pycache__/__init__.cpython-310.pyc b/web/plugins/geodata/__pycache__/__init__.cpython-310.pyc new file mode 100644 index 0000000000000000000000000000000000000000..51dbda605413308288fd5b8b1e4a81f56355dbf9 GIT binary patch literal 169 zcmd1j<>g{vU|?XG?4KgWz`*br#6iYP3=9ko3=9m#JPZsBDGVu$ISe5TDNMl(n#?a5 z85kHe8E-La`DrrVVoy)aPf09ET**+x!oUC_ewnyg#RL@PXQd{W6vrgzr=-T@r6tFd vrzXV|g{vU|=v<=buu>%fRp$#6iYP3=9ko3=9m#0SpWbDGVu$ISjdsQH+crHd78$ zE^`z!BSR)b6iW(o6l)4g6k7^w3R??96nhGL3P%e=6h{hY3Req56lV%|3Qr3|6jusw z3SSFD6n6@LFoUMROORcfjJMc}Gt=`DbBaOC+|0bpl>FR8X+{PH8~cjf9EGyfqTUl+3(zTcywtH(d)QdpjfdJpZw&+60m~^TBblyg?@TLg6yiPd8sA(*||CTMtVlD zkV&sVQJJ2fpPrKn4nmN^)QS?YVmlj`{N&Qy)VvZq8@K$Nl++?S8+|wfAqO(uE}0P& z(@+dzgRnCwVF@rWFqAMfGcYogFoMVwhG2%3jDDI-x7c$Nvs2vzA|MQJUms1zTP$Vy znJFt7iZ~b;7=9VMS;YhtKma~Q>g-w!S0VgO|E@WE3mBP7@ zF@~v@tCkyV9(M|-I71DWILNI$HJl6BYk0sWaV%i3;RLflrgMN<*xkUKU1%aE25H76ulEW@bi)JPt#K;&tVW zj0_+c$-u}^$N@?MAgn3iR|HBYw^;HLb5n1z7362;l@v#D2IM3rr{*RWWk<0FfP`*w zC+FuErDWzMmZTQ{VpO=r@QYFBmq31LNkM6eegQOv=vT4mW#{JHVl4l~q@Zw%k!vOM zEw;?Ol+?VED9*%`6eyD=FSR^JllK;LPHNsQuH^ijoYZ7cW-nr9U|_h#U65E*oEltG zl$n=)iz7QXC%z~@zvLD#IJc&{=A?r1!!14tHzc*9#4kT3^%i$xK|yL>igQM0PRcE= zWDo@sFTTZIlv)7t%q`a9f}G5fTP&bld5fdGD6=HBA~#2q?-oaLVo7Rxeo^Hu7LZL* zY-!-E7R3dj!2!bxHY17?Oo76sh#TZq){@MUoYY&a;9x7_1qm_dB$nJ_&dJZa#g>y; z0-`x8a&y4B0i2~E1SruLu`w_(fO0^w83O|Y43S=?}gR|5(aL$Kksd8|ZDnQOs&g%_N#IcgZQ zcxyOPSX1~?_)`S1ChS5S30n}7u#0#Y7#P4YQv?d?B7P7TR3P4BE-xr4(g1NaK?Ep1 ziv$@M7^+zG(hDkzgg}DAAVLI0h%zuRXz~?_gV+)v0+d#ZBta}G5FrmD6hMSDC>8J& zr_uf%Kr%6d(b1SP>knu-QviB*6o^1;7kOL92grETbdlVxS&}w zGqv~@M{a6KBB+YF#RkdaMIi4Mfg<4+TWLW`VoB;Pmg1b!bg*ffthYGRQ}a@bKs7r! zbZ>Da7L{Zs=cE=#al))FzQqm|gajuzU_rU&7CW>)vjBxFC_ecZS-?4y1x$1NV`^Yw z0kN4FS^jbSXZcZN&cMKck^@0C8z^;vb08?{OBk{k7ciB8E2k2MES3dKCEzp<3XvjE z<*3P41ZoA|l7>1e9`1wqw9LH3oXo1!lw0h{`FVM%$t7S5Z*jsUz_lupHxPc|C`wJw zEG|hcatC<^WDyUe0ArCg0|SGfCeJPQg4CSMg{vU|{H<g&|hBmL-L;h9!%!jG;)bhIs)~ z4NDd?h@ZkJ$&kV{hiM@rBSRr~3CjZ38pbTP8sPR`FSO3BPiEJ-caMvp%;cQZ;wVm-Gm3AqLj_kd6bUjgF#OVXvx*5Q%FjwoE-8*l z&QD2=$xBO)DNjv`Daa{J&&(^1$xSQ(VZDONTkPqn`5^bPfx=IWfq{XKk%f_ik&BT9 zOmqBWY7k=KVJs46U|>jwhB=&Kh6TI;0|P?|Ll)x#rV?gQu%$2rGiWmUX|fc7BL0>% z)P?bIKgFkI<|XE2R;8xgVo%P`%S%lz0b2p~0TLku3N4PJ)bz~al2ovYVvvafj71=~ zYO>v8FG$VFOis*$Sj3W5oS#?3$-uw>Rtr{yWEv=ViXcYX +''' +kml_root = ''' +''' + +def make_files(void): + makeGPX() + makeKML() + +def makeKML(): + if len(collection) > 0: + for category in collection: + root = minidom.parseString(kml_root) + folder = root.createElement('name') + foldername = root.createTextNode( collection[category]["name"] ) + folder.appendChild( foldername ) + root.childNodes[0].childNodes[0].childNodes[0].appendChild( folder ) + for place in collection[category]["points"]: + placemark = root.createElement('Placemark') + name = root.createElement('name') + title = root.createTextNode( place['name'] ) + name.appendChild( title ) + placemark.appendChild( name ) + point = root.createElement('Point') + coordinates = root.createElement('coordinates') + lat, lon = place['coordinates'].replace(' ', '').split(',') + latlon = root.createTextNode( lon + ',' + lat) + coordinates.appendChild( latlon ) + point.appendChild( coordinates ) + placemark.appendChild( point ) + root.childNodes[0].childNodes[0].childNodes[0].appendChild( placemark ) + with open('output/projects/' + category + '.kml', 'w') as xml_file: + root.writexml(xml_file, indent="", addindent=" ", newl='\n') + +def makeGPX(): + if len(collection) > 0: + for category in collection: + root = minidom.parseString(kml_root) + for place in collection[category]["points"]: + lat, lon = place['coordinates'].replace(' ', '').split(',') + wpt = root.createElement('wpt') + wpt.setAttribute('lat', lat) + wpt.setAttribute('lon', lon) + name = root.createElement('name') + title = root.createTextNode( place['name'] ) + name.appendChild( title ) + wpt.appendChild( name ) + root.childNodes[0].appendChild( wpt ) + with open('output/projects/' + category + '.gpx', 'w') as xml_file: + root.writexml(xml_file, indent="", addindent=" ", newl='\n') + +def geodata(generator): + for category, articles in generator.categories: + locations = [] + for article in articles: + if "location" in article.metadata: + locations.append({ + "name": article.title, + "coordinates": article.metadata["location"] + }) + collection.update({ + category.slug : { + "name" : category.name, + "points" : locations + }}) + +def register(): + signals.article_generator_finalized.connect(geodata) + signals.finalized.connect(make_files) \ No newline at end of file diff --git a/web/plugins/geohash/__pycache__/geohash.cpython-310.pyc b/web/plugins/geohash/__pycache__/geohash.cpython-310.pyc index f212e42616c001d8d0fa24091ac1737cf4a2815d..e594a1a98fc5c53b3677c2ce12b9b72f0646fade 100644 GIT binary patch delta 215 zcmey$_LYq{pO=@5fq{Wx@;m<&^NGA=5)}*#3^fc{3@!|@X0?ndj5Ul|jAaZ(mJ?^I z+cSYUDeN{3HOycZhYdps%L3LKrW)oH&V>*$E_AVYwnF9e7O>VZ)i9@UEMx|YaiWXGvlTL@Fa$Gba!qDr zyviEImXlaA`7UETR}^zjVo4NpPJZ5GHzqYP0R{#JE=Dd!HAV?W5k>(CV