mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2026-11-01 20:19:39 +00:00
* wasm first steps * parsing start * parsing continued * progress * progress * progress * progress * progress * progress * progress * progress * fixes * reorganize * change type * fix * progress * refactoring * progress * progress * progress * keep style info * progress * progress * remove (copy) in name * progress * merge methods into 1 * splice * progress * progress * progress * cleaning * progress * progress * progress * visibility * progress * progress * progress * progress * progress * fixes * progress * fix markers * fix * progress * progress * progress * progress * progress * progress * small fix * use engine info * fix popups * small fix * progress * progress * progress * clean tool * handle self closing elements * reduce data exchanges across boundary * copy on wasm side to avoid any data corruption * speed fix * routing * refactoring * reverse * reverse * crop * split * merge * progress * time tool * fix bounds for waypoints * reduce * fix reactivity * handle corrupt time data * export * progress * remove gpx js package * remove todo * update readme * cleaning * progress * fix link fields * remove unused fields * refactoring and tests * import and export of routes, ref #192 * per-chunk categories storage * cross-tab sync * outdated state * refactoring * reorder methods * refactoring * fix * improve flow * renaming * progress * progress * fix * progress * per file history * keep original flag * use history variant * fix * progress * file explorer * progress * fix * sticky folders * improved sticky folders * fix sortable * fix sortable * fix * fix tab size * no file delete on desktop * fix routing on other file * fix sorting * remember language * open links in browser * commit missing changes * avoid selecting on resize * clarify filename * explorer actions * fix folder styling * drop anywhere in folder * cleaning * fixes * remove focus-ring * full screen * small fix * consistent highlight color * improved preview * performance improvements * sparser data transfers * sparser data transfers * show popup once data is loaded * fix routing control size * fix * sparse desktop build * remove custom ign styles * use new endpoint for openhikingmap * strip native menu * reorder context menu items * route full support * route - track conversion * create route file action * route export, filter out anchors at high zoom level * clarify name handling * move hide & center to view * routes continued * update docs * fix power format, closes #378 * lint fixes * fix display of additional data with gaps, closes #361 * fix linting issues * fix import modules * fix multidrag * change base to resolve * fix type errors * fix layer typings * fix last type error * each keys * improve typings * deploy to cloudflare --------- Co-authored-by: vcoppe <vcoppe@hexaly.com>
80 lines
3.6 KiB
Markdown
80 lines
3.6 KiB
Markdown
<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) is an online tool for creating and editing GPX files.
|
|
|
|

|
|
|
|
This repository contains the source code of the website.
|
|
|
|
## Contributing
|
|
|
|
Please create an issue if you find a bug or have a feature request.
|
|
|
|
Code contributions are also welcome, but except for obvious bug fixes, please open an issue first to discuss the changes you would like to make.
|
|
|
|
## Translation
|
|
|
|
The website is translated by volunteers on a collaborative translation platform.
|
|
You can help complete and improve the translations by joining the [Crowdin project](https://crowdin.com/project/gpxstudio).
|
|
If you would like to start the translation in a new language, please contact me or create an issue.
|
|
|
|
Any help is greatly appreciated!
|
|
|
|
## Development
|
|
|
|
The code is split into four parts:
|
|
|
|
- `gpx-rs`: a Rust library for parsing and manipulating GPX files (the engine), and the interface to it that the next two share (`gpx_engine::api`),
|
|
- `wasm`: the engine for the browser, compiled to WebAssembly,
|
|
- `tauri`: the desktop app, which runs the engine natively,
|
|
- `website`: the website itself, which is a [SvelteKit](https://kit.svelte.dev/) application. It also is the UI of the desktop app.
|
|
|
|
You will need [Node.js](https://nodejs.org/), [Rust](https://rustup.rs/) and [wasm-pack](https://rustwasm.github.io/wasm-pack/) to build and run the website. See [`tauri`](tauri/README.md) for the desktop app.
|
|
|
|
### Building the WebAssembly engine
|
|
|
|
```bash
|
|
cd wasm
|
|
wasm-pack build --target bundler
|
|
```
|
|
|
|
### Running the website
|
|
|
|
To be able to load the map, you will need to create your own <a href="https://cloud.maptiler.com/auth/widget?next=https://cloud.maptiler.com/maps/" target="_blank">MapTiler key</a> and store it in a `.env` file in the `website` directory.
|
|
|
|
```bash
|
|
cd website
|
|
echo PUBLIC_MAPTILER_KEY={YOUR_MAPTILER_KEY} >> .env
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
## Credits
|
|
|
|
This project has been made possible thanks to the following open source projects:
|
|
|
|
- Development:
|
|
- [Svelte](https://github.com/sveltejs/svelte) and [SvelteKit](https://github.com/sveltejs/kit) — seamless development experience
|
|
- [MDsveX](https://github.com/pngwn/MDsveX) — allowing a Markdown-based documentation
|
|
- Design:
|
|
- [shadcn-svelte](https://github.com/huntabyte/shadcn-svelte) — beautiful components
|
|
- [@lucide/svelte](https://github.com/lucide-icons/lucide/tree/main/packages/svelte) — beautiful icons
|
|
- [tailwindcss](https://github.com/tailwindlabs/tailwindcss) — easy styling
|
|
- [Chart.js](https://github.com/chartjs/Chart.js) — beautiful and fast charts
|
|
- Logic:
|
|
- [SortableJS](https://github.com/SortableJS/Sortable) — creating a sortable file tree
|
|
- Mapping:
|
|
- [MapLibre GL JS](https://github.com/maplibre/maplibre-gl-js) — beautiful and fast interactive map rendering
|
|
- [GraphHopper](https://github.com/graphhopper/graphhopper) — powerful routing engine
|
|
- [OpenStreetMap](https://www.openstreetmap.org) — open map data used by most of the map layers, and by the routing engine
|
|
- [Mapterhorn](https://github.com/mapterhorn/mapterhorn) — high-quality open terrain data used by some map layers (including for 3D), and by the routing engine
|
|
- Search:
|
|
- [DocSearch](https://github.com/algolia/docsearch) — search engine for the documentation
|
|
|
|
## License
|
|
|
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|