From 1816bf28453a873e1191f2a6a92844c47c20b189 Mon Sep 17 00:00:00 2001 From: skylar Date: Sun, 1 Nov 2026 06:14:46 -0800 Subject: Write the site name into the page on the server The lobby showed the default name and then swapped in SITE_NAME once /api/site answered. The server now puts the name in index.html before sending it. Also rewords a few lobby lines and ignores the local .claude/ preview settings. Co-Authored-By: Claude Opus 5.5 --- .gitignore | 3 +++ public/index.html | 8 ++++---- public/js/app.js | 2 -- server.js | 8 ++++++++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index e983519..5426b30 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ deploy/deploy.env # Unused, and its source isn't recorded. public/assets/sky/night-sky-4k.jpg + +# Local preview settings for Claude Code. +.claude/ diff --git a/public/index.html b/public/index.html index a5495c6..f42932e 100644 --- a/public/index.html +++ b/public/index.html @@ -129,9 +129,9 @@
-

Open rooms

+

Open rooms:

    - +
    @@ -149,10 +149,10 @@
    + Open roomListed publicly so anyone can join. Add a password for more privacy. + Just meRuns on your local device only. Nothing is listed or shared.
    diff --git a/public/js/app.js b/public/js/app.js index 586cfa3..a3151dc 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -626,8 +626,6 @@ showError($('rooms-error'), "Can't reach the server."); return; } - document.title = site.name; - $('site-name').textContent = site.name; buildWorldChoices(); updateFields(); await refreshRooms(); diff --git a/server.js b/server.js index 0dc3f9a..b1e93bc 100644 --- a/server.js +++ b/server.js @@ -265,6 +265,14 @@ api.post('/rooms/:id/check', (req, res) => { app.use('/api', api); const publicDir = path.join(__dirname, 'public'); + +// The page with the site's name already in it, so it never shows the default first. +const escapeHtml = (text) => text.replace(/[&<>"']/g, (c) => `&#${c.charCodeAt(0)};`); +const indexHtml = require('fs').readFileSync(path.join(publicDir, 'index.html'), 'utf8') + .replace('Yesod', `${escapeHtml(SITE_NAME)}`) + .replace('Yesod', `${escapeHtml(SITE_NAME)}`); +app.get(['/', '/index.html'], (req, res) => res.set('Cache-Control', 'no-cache').type('html').send(indexHtml)); + app.use('/assets', express.static(path.join(publicDir, 'assets'), { maxAge: '7d' })); app.use('/vendor', express.static(path.join(publicDir, 'vendor'), { maxAge: '30d', immutable: true })); app.use(express.static(publicDir, { maxAge: 0 })); -- cgit v1.2.3