b39c334fdfab1e7367198cdceae42d358c7bf0fd
Stop performing item repositioning during the primary input handler and instead handle position changes on focusout. Non-position fields are updated live on input and mark the form as having unsaved changes. A new tbody focusout listener moves the item and re-renders the admin table when a position field loses focus, and also sets the unsaved status.
GD FEDL
A Geometry Dash FEDL-style website with a live server-backed main list.
It includes:
- a home page
- a main list page
- a players page
- a rules page
Project Files
index.html- home pagelists.html- main live list viewplayers.html- player managerrules.html- submission rules and mod guidelinesapp.js- client-side logicstyles.css- site stylingdata.txt- static fallback list dataserver/data.txt- live server list dataserver/server.js- Node.js server for the live liststart-server.command- one-click launcher for macOSserver/LINUX_SERVICE_SETUP.txt- Linuxsystemdsetup notes
Data Format
Both data.txt and server/data.txt use the same format:
category|position|title|url
Example:
new|1|Flamewall|https://youtu.be/x4Io4zkWVRw
Pages
lists.htmlis the main live list page.roulette.htmluses the same live server-backed list.
Fallback Order
The live list tries these in order:
/api/listserver/data.txtdata.txt
That means lists.html can still show data even if the live API is down.
Running The Static Site
If you only want the static pages, you can run a simple file server:
python3 -m http.server 8000
Then open:
http://localhost:8000
Running The Live Server
The live list uses the Node server:
node server/server.js
Or to allow other devices on your network to connect:
HOST=0.0.0.0 PORT=3000 node server/server.js
Then open:
http://localhost:3000/lists.html
http://localhost:3000/roulette.html
On macOS you can also use:
start-server.command
Hosting On Another Device
If you want one device to host the live list for other devices:
- Run the server with
HOST=0.0.0.0. - Open or forward port
3000. - Visit
http://YOUR-IP:3000/lists.htmlorhttp://YOUR-IP:3000/roulette.html.
If you already have router port forwarding set up, point it to the machine running server/server.js.
Linux Service
For running the Node server automatically on boot on Linux, see:
server/LINUX_SERVICE_SETUP.txt
Notes
- Player data is stored in the browser with
localStorage - The players list is local to each browser/device
- The live list data is stored in
server/data.txt - The static fallback list data is stored in
data.txt - The project does not need a build step
Languages
HTML
47.3%
JavaScript
36.8%
CSS
15.9%