- Go 69.1%
- TypeScript 17%
- HTML 9.7%
- CSS 2.6%
- JavaScript 1.1%
- Other 0.5%
| cmd | ||
| config | ||
| internal | ||
| schema | ||
| .DS_Store | ||
| .gitignore | ||
| .golangci.yml | ||
| CLAUDE.md | ||
| config.sandbox.yaml | ||
| config.yaml | ||
| config.yaml.example | ||
| DEPLOY.md | ||
| go.mod | ||
| go.sum | ||
| hof-neu-photos.png | ||
| hof-neu-results.png | ||
| inline-edit-fields.jpeg | ||
| INSTALL.md | ||
| loc-name-fixes.osc | ||
| Makefile | ||
| map-final-subtle-labels.jpeg | ||
| map-osm-declustered-labels.jpeg | ||
| new-trees-agger.osm | ||
| new-trees-hof-neu.osm | ||
| new-trees-walk1.osm | ||
| new-trees.osm | ||
| obsidian-images.json | ||
| obsidian-scan.log | ||
| osm-cache.json | ||
| osm-editor-species.jpeg | ||
| osm-update-button.jpeg | ||
| react-photo-page.jpeg | ||
| react-tree-page.jpeg | ||
| README.md | ||
| results-all.json | ||
| results-hof-neu.json | ||
| results.json | ||
| results_agger.json | ||
| results_walk1.json | ||
| save-button.png | ||
| saved-teal.png | ||
| structure.md | ||
| tree-mapper.db | ||
| tree-mapper.db-shm | ||
| tree-ocr-section.jpeg | ||
| tree-osm-labels.jpeg | ||
| tree-osm-overlay.jpeg | ||
tree-mapper
Dies ist ein Tools zum Verwalten von Fotos von Obstbäumen.
Schnellstart
# Abhängigkeiten (Debian/Ubuntu)
apt install libimage-exiftool-perl gcc
go mod tidy
go build ./cmd/mapper
./mapper \
--session "mein-obstgarten/2024-05-11/" \
--json results.json \
--osm neue-baeume.osm \
--workdir /tmp/tree-mapper
Konfiguration: config.yaml (Vorlage: config.yaml.example).
Für Details zur Architektur, Paketstruktur und Tuning-Parametern: CLAUDE.md.
Statische Archiv-Seite (store/{id}/index.html)
Pro Baum wird bei jedem Speichern eine statische, dependency-freie HTML-Seite
nach S3 geschrieben (Langzeit-Archiv, oEmbed-konform — siehe CLAUDE.md). Die
Vorlage ist:
internal/treestore/tree-static.html.tmpl
Das ist eine Go-html/template-Datei und wird per //go:embed fest ins Binary
gebacken. Zum Ändern des Aussehens diese Datei bearbeiten und neu bauen
(make build bzw. go build ./...). Die Seite muss ohne JavaScript und ohne
externe Abhängigkeiten auskommen.
Die zugehörige oEmbed-Antwort (store/{id}/oembed.json) wird in Go erzeugt:
Funktion RenderOEmbed in internal/treestore/render.go.
Alternativ lässt sich zur Laufzeit eine andere Vorlage per Flag übergeben
(treedoc --template pfad/zur/vorlage.tmpl, ebenso cmd/render --template …);
ist der Pfad leer oder unlesbar, greift die eingebettete Vorlage.
Bestehende Seiten neu rendern (z. B. nach einer Template-Änderung):
go run ./cmd/render --base https://treedoc.foxel.org --prefix store