Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

TimeMapper NG

En moderne gjenskaping av okfn/timemapper: lag tidslinjer med tilhørende kart («tidskart») fra Google-regneark eller CSV-filer, og kjør det hele på din egen tjener.

Hva er forbedret i forhold til originalen:

  • Moderne stack: Node ≥ 18, Express 5, TimelineJS 3 (3.9.x), Leaflet 1.9 — originalen krevde Node 0.8 og Express 3 fra 2013 og lar seg ikke kjøre på moderne programvare.
  • Ingen Twitter-innlogging (originalens passport-twitter er dødt etter X sine API-endringer). I stedet ett administratorpassord satt som miljøvariabel — laget for én bruker/organisasjon.
  • Alle frontend-biblioteker ligger lokalt i public/vendor/ — ingen avhengighet til eksterne CDN-er (bare OpenStreetMap-fliser hentes utenfra ved visning).
  • Støtter både publiserte Google Sheets og opplasting av CSV-filer.
  • Norske og engelske kolonnenavn, norske datoformater (17.05.1814), årstall f.Kr. (-320).
  • Docker-oppsett med vedvarende datalagring, alternativt systemd + nginx (se deploy/).
  • Enkel JSON-fillagring under data/ — ingen database å drifte; sikkerhetskopier katalogen, ferdig.

Se demoen uten å installere noe (GitHub Pages)

Katalogen docs/ inneholder en statisk eksport av tidskartene – rene HTML-filer som kan vises av hvem som helst i nettleseren. Når repoet ligger på GitHub: gå til Settings → Pages, velg Deploy from a branch, branch main og mappe /docs, og lagre. Etter et minutt er demoen tilgjengelig på

https://<brukernavn>.github.io/<repo-navn>/

Regenerér den statiske eksporten etter endringer med:

npm run seed-demo       # legger demodataene i data/ (første gang)
npm run export-static   # skriver ny docs/ fra tidskartene i data/

Eksporten er «frossen» – den henter ikke data fra Google Sheets ved visning. Den kjørende appen (under) gjør det.

Kom i gang (Docker, anbefalt)

# rediger docker-compose.yml: sett ADMIN_PASSWORD og SESSION_SECRET
docker compose up -d --build

Åpne http://localhost:3000, logg inn med administratorpassordet og lag ditt første tidskart. Dataene lagres i ./data/ på verten.

Kom i gang (uten Docker)

npm ci --omit=dev
ADMIN_PASSWORD='hemmelig' SESSION_SECRET='lang-tilfeldig-streng' node server.js

For varig drift: se deploy/timemapper.service (systemd) og deploy/nginx.conf.example (omvendt proxy med TLS).

Konfigurasjon (miljøvariabler)

Variabel Standard Beskrivelse
PORT 3000 Port appen lytter på
ADMIN_PASSWORD (tom) Passord for redigering. Tomt = kun visning
SESSION_SECRET (tilfeldig) Hemmelighet for innloggingskapselen. Sett fast verdi i produksjon, ellers logges du ut ved omstart
SITE_TITLE TimeMapper Navn i toppfeltet
DATA_DIR ./data Hvor tidskart og opplastede CSV-er lagres

Dataformat

Første rad i regnearket/CSV-en er kolonneoverskrifter. Gjenkjente kolonner (engelske navn fra originale TimeMapper-maler og norske aliaser):

  • Title / Tittel (påkrevd i praksis)
  • Start / Dato — 1814, 1814-05, 1814-05-17, 17.05.1814, ev. med TT:MM. Negative årstall = f.Kr.
  • End / Slutt — valgfri sluttdato (gir varighet)
  • Description / Beskrivelse
  • Location — lat, long, f.eks. 63.4305, 10.3951 (gir markør i kartet)
  • Place / Stedsnavn — vises i teksten
  • Media / Bilde — URL til bilde/video (YouTube, Vimeo m.m. via TimelineJS)
  • Media Caption, Media Credit
  • Web Page / Lenke — «Les mer»-lenke
  • Group / Kategori — grupperer hendelser i egne bånd i tidslinjen
  • Source / Kilde

Rader uten gyldig startdato hoppes over, og en advarsel vises øverst i visningen.

For Google Sheets: bruk Fil → Del → Publiser på nettet, eller del arket med «alle med lenken», og lim inn URL-en. Data hentes ved hver visning, så endringer i arket slår gjennom automatisk.

Innbygging

Hvert tidskart har en innbyggingsvisning uten navigasjon:

<iframe src="https://din-tjener.no/t/mitt-tidskart/embed" width="100%" height="650"></iframe>

Oppgradering av vendorede biblioteker

TimelineJS3 og Leaflet ligger i public/vendor/ og oppdateres slik:

npm update @knight-lab/timelinejs leaflet
cp -r node_modules/@knight-lab/timelinejs/dist/js/{timeline.js,locale} public/vendor/timeline3/js/
cp -r node_modules/@knight-lab/timelinejs/dist/css/{timeline.css,fonts,icons} public/vendor/timeline3/css/
cp node_modules/leaflet/dist/leaflet.{js,css} public/vendor/leaflet/
cp -r node_modules/leaflet/dist/images public/vendor/leaflet/

Lisens

MIT — samme som originalen. TimelineJS3 (MPL 2.0) og Leaflet (BSD-2) har egne lisenser.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages