diff --git a/CHANGELOG.md b/CHANGELOG.md
index 26c7a229..6a0dee42 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -49,6 +49,10 @@ See [extension/CHANGELOG.md](extension/CHANGELOG.md).
- Memory Map: a Modules column shows each object file's slice of every SDCC or cc65 segment (`Segment.modules`; SDCC from the `.rel` sizes in link order, with the remainder as `(libraries)`; cc65 from the ld65 map's module list, library members by name).
- Memory Browser: a symbol label covers only its reported size, and an unsized symbol stops at its segment boundary instead of running into the next segment.
+### Website
+
+- Links that open the IDE now point at `https://8bitworkshop.com/latest/`, which the server proxies to the newest build: the badge in a published project's README, the README the VS Code extension writes for a new project, the platform links on the website, and the embedding docs. Old `redir.html` links still work.
+
### Asset editor
- Undo/redo for edits, including binary files, and reliable undo for palette changes.
diff --git a/Makefile b/Makefile
index 8619ac37..042741c2 100644
--- a/Makefile
+++ b/Makefile
@@ -90,7 +90,6 @@ syncprod: distro
@[ "${VERSION}" ] || ( echo ">> No version set at HEAD, tag it first"; exit 1 )
echo Version: $(VERSION)
grep -H "var VERSION" web/redir.html
- grep -H "var VERSION" web/projects/projects.js
read
cp config.js $(TMP)
#aws --profile pzp s3 sync --follow-symlinks $(TMP)/ s3://8bitworkshop.com/v$(VERSION)/
diff --git a/extension/src/terminalcli.ts b/extension/src/terminalcli.ts
index d29e550e..70439e58 100644
--- a/extension/src/terminalcli.ts
+++ b/extension/src/terminalcli.ts
@@ -4,6 +4,7 @@
import * as fs from 'fs';
import * as path from 'path';
+import { ideLink } from '../../src/common/links';
export interface LauncherOptions {
/** VS Code's executable; ELECTRON_RUN_AS_NODE makes it plain Node */
@@ -63,7 +64,7 @@ export function writeLauncher(binDir: string, opts: LauncherOptions, platform: s
export function projectReadme(name: string, platform: { id: string, name: string, romext?: string }, mainFile: string): string {
var base = path.basename(mainFile, path.extname(mainFile));
var rom = base + (platform.romext || '.bin');
- var link = `https://8bitworkshop.com/redir.html?platform=${encodeURIComponent(platform.id)}&file=${encodeURIComponent(mainFile)}`;
+ var link = ideLink({ platform: platform.id, file: mainFile });
return `# ${name}
A ${platform.name} program made with [8bitworkshop](${link}).
diff --git a/extension/test/terminalcli.test.ts b/extension/test/terminalcli.test.ts
index c275ef72..83b11fc0 100644
--- a/extension/test/terminalcli.test.ts
+++ b/extension/test/terminalcli.test.ts
@@ -44,4 +44,9 @@ describe('terminalcli', () => {
assert.ok(readme.includes('8bws build game.c -o game.nes'));
assert.ok(projectReadme('x', { id: 'c64', name: 'C64' }, 'a.c').includes('-o a.bin'));
});
+
+ it('links to the IDE at /latest/', () => {
+ var readme = projectReadme('my-game', { id: 'nes', name: 'NES', romext: '.nes' }, 'game.c');
+ assert.ok(readme.includes('https://8bitworkshop.com/latest/?platform=nes&file=game.c'), readme);
+ });
});
diff --git a/index.html b/index.html
index 28c1d229..908ec545 100644
--- a/index.html
+++ b/index.html
@@ -12,7 +12,7 @@
-
+