<picture>
  <source media="(prefers-color-scheme: dark)" srcset="website/static/logo-dark.svg">
  <img alt="Logo of gpx.studio." src="website/static/logo.svg">
</picture>

* [**gpx.studio**](https://gpx.studio) est un outil en ligne pour créer et éditer des fichiers GPX.
* <https://github.com/gpxstudio>

![gpx.studio screenshot](website/src/lib/assets/img/docs/getting-started/interface.png)

Ce dépôt contient le code source du site.

## Traduction

Le site Web est traduit par des bénévoles sur une plateforme de traduction collaborative.
Vous pouvez aider à compléter et à améliorer les traductions en rejoignant le projet [Crowdin](https://crowdin.com/project/gpxstudio).

## Développement

Le code est divisé en deux parties:
- `gpx`: une bibliothèque de caractères pour analyser et manipuler les fichiers GPX,
- `site web`: le site lui-même, qui est une application [SvelteKit](https://kit.svelte.dev/).

Vous aurez besoin de [Node.js](https://nodejs.org/) pour construire et exécuter ces deux parties.

### Construction de la bibliothèque `gpx`

```bash
cd gpx
npm install
npm run build
```

### Fonctionnement du site

Pour pouvoir charger la carte, vous devrez créer votre propre <a href="https://account.mapbox.com/auth/signup" target="_blank">Jeton d'accès Mapbox</a> et le stocker dans un fichier `.env` dans le répertoire `site web`.

```bash
cd website
echo PUBLIC_MAPBOX_TOKEN={YOUR_MAPBOX_TOKEN} >> .env
npm install
npm run dev
```

## Crédits

Ce projet a été rendu possible grâce aux projets open source suivants:

- Développement:
  - [Svelte](https://github.com/sveltejs/svelte) and [SvelteKit](https://github.com/sveltejs/kit) — expérience de développement sans faille
  - [MDsveX](https://github.com/pngwn/MDsveX) — permettant une documentation basée sur Markdown
  - [svelte-i18n](https://github.com/kaisermann/svelte-i18n) — localisation facile
- Conception:
  - [shadcn-svelte](https://github.com/huntabyte/shadcn-svelte) — beautiful components
  - [lucide-svelte](https://github.com/lucide-icons/lucide/tree/main/packages/lucide-svelte) — belles icônes
  - [tailwindcss](https://github.com/tailwindlabs/tailwindcss) — un style facile
  - [Chart.js](https://github.com/chartjs/Chart.js) — beaux et rapides graphiques
- Logique:
  - [immer](https://github.com/immerjs/immer) — gestion d'État complexe
  - [Dexie.js](https://github.com/dexie/Dexie.js) — Emballage IndexedDB 
  - [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) — analyse rapide de fichier GPX
  - [SortableJS](https://github.com/SortableJS/Sortable) — création d'un arborescence de fichiers triables
- Cartographie:
  - [Mapbox GL JS](https://github.com/mapbox/mapbox-gl-js) — de belles cartes interactives rapides
  - [brouter](https://github.com/abrensch/brouter) — moteur de routage
  - [OpenStreetMap](https://www.openstreetmap.org) — données cartographiques utilisées par Mapbox et brouter
  - [DocSearch](https://github.com/algolia/docsearch) — moteur de recherche de la documentation

## Licence

Ce projet est sous licence MIT - voir le fichier [LICENSE](LICENSE) pour plus de détails.
