diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..2ba986f
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,15 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "type": "chrome",
+ "request": "launch",
+ "name": "Launch Chrome against localhost",
+ "url": "http://localhost:8080",
+ "webRoot": "${workspaceFolder}"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/markers.js b/markers.js
index 3f28bb3..33a8b26 100644
--- a/markers.js
+++ b/markers.js
@@ -1,91 +1,4 @@
-// === CONFIG ===
-const WIKI_API = 'https://wiki.arenos.danielnagel.at/api.php'; // dein Wiki-Host (mit index.php)
-const CATEGORY_TITLE = 'Kategorie:Orte'; // Hauptkategorie
-const MAX_PAGES = 500; // genug Luft
-
-// Hilfsfunktion: MediaWiki API-URL bauen
-function apiURL(params) {
- const u = new URL(WIKI_API);
- u.search = new URLSearchParams({ ...params, format: 'json', origin: '*' }).toString();
- return u.toString();
-}
-
-// 1) Alle Mitglieder einer Kategorie holen
-async function fetchCategoryMembers(categoryTitle) {
- const url = apiURL({
- action: 'query',
- list: 'categorymembers',
- cmtitle: categoryTitle,
- cmlimit: String(MAX_PAGES)
- });
- const res = await fetch(url);
- if (!res.ok) throw new Error(`categorymembers failed: ${res.status}`);
- const data = await res.json();
- return data?.query?.categorymembers || [];
-}
-
-// 2) Gerendertes HTML einer Seite holen (damit
drin ist)
-async function fetchPageHTML(title) {
- const url = apiURL({
- action: 'parse',
- page: title,
- prop: 'text'
- });
- const res = await fetch(url);
- if (!res.ok) throw new Error(`parse failed for ${title}: ${res.status}`);
- const data = await res.json();
- const html = data?.parse?.text?.['*'] || '';
- const div = document.createElement('div');
- div.innerHTML = html;
- return div;
-}
-
-// 3) Daten aus dem versteckten Div extrahieren
-function extractPlaceData(container) {
- const node = container.querySelector('.place-data');
- if (!node) return null;
- const name = node.getAttribute('data-name') || '';
- const xStr = node.getAttribute('data-x') || '';
- const yStr = node.getAttribute('data-y') || '';
- const desc = node.getAttribute('data-description') || '';
- const link = node.getAttribute('data-link') || '';
- const x = parseFloat(xStr);
- const y = parseFloat(yStr);
- if (Number.isNaN(x) || Number.isNaN(y)) return null;
- return { name, x, y, desc, link };
-}
-
-// 4) Marker laden + hinzufügen
-async function loadWikiMarkers(map) {
- try {
- const pages = await fetchCategoryMembers(CATEGORY_TITLE);
-
- // Optionales Bounding, falls du später auto-fit willst
- const layers = [];
- for (const p of pages) {
- try {
- const html = await fetchPageHTML(p.title);
- const d = extractPlaceData(html);
- if (!d) continue;
-
- // Leaflet: Bei CRS.Simple = [y, x]
- const m = L.marker([d.y, d.x]).addTo(map);
- const wikiLink = d.link || `https://wiki.arenos.danielnagel.at/index.php/${encodeURIComponent(p.title)}`;
- const popup = `
-
${d.name || p.title}
- ${d.desc ? `${d.desc}
` : ''}
-
Open in Wiki
- `;
- m.bindPopup(popup);
- layers.push(m);
-
- } catch (e) {
- console.warn('skip page due to parse error:', p.title, e);
- }
- }
-
- } catch (e) {
- console.error('Failed to load wiki markers:', e);
- }
-}
-
+fetch('/api/places')
+ .then(r => r.json())
+ .then(data => console.log('Gateway-Antwort:', data))
+ .catch(err => console.error('Fehler:', err));