Files meant to be served have been moved into
`play.pokemonshowdown.com/` and `pokemonshowdown.com/`.
We now have three directories for the three subdomains handled by this
repo:
- `pokemonshowdown.com/`
- `play.pokemonshowdown.com/`
- `replay.pokemonshowdown.com/`
Naming them after the subdomains will make it much easier to tell where
the files for each go.
The diff is probably useless; it'll be easier if you just look at the
new tree:
https://github.com/smogon/pokemon-showdown-client/tree/reorganize
This should make Google search results and Discord link previews
for replays work correctly.
This actually involved a ton of work, but at least this work also
makes replays load faster.
The idea is to eventually move all client parts to their domain name
subdirectory, for clarity and better organization. New Replays is
just first.
Anyway, yeah, minor updates to New Replays, but otherwise it's just
getting deployed as-is, straight to
https://replay.pokemonshowdown.com/
The old URLs are getting taken down; they were only used for
development anyway.
The main difference is that the main search screen should look
much nicer now.
https://pokemonshowdown.com/replays/
Putting search/featured/recent in separate sections makes the new
design look much nicer. And dark mode is now fully supported.
New Replays isn't done yet but I've done a lot of work on it and
probably it deserves a commit.
Why rewrite Replays:
- I redesigned pokemonshowdown.com to look more modern and support
dark mode, and rejiggering Old Replays would be a lot of work
anyway.
- It'd be nice to actually deploy some of PS's whole Preact
infrastructure somewhere, instead of it just being in development
hell.
- Nice to get a second look at the relevant code, leading to fixes
like fc00e68231 and f28b1e9bf3.
- Replays is due for a migration from JS/PHP to TS anyway.
Anyway, feel free to try out New Replays, it's live in:
https://pokemonshowdown.com/replays/
Old Replays will stick around until we hit feature parity, but
that shouldn't be too long (I know, famous last words).
This keeps ads/analytics out of the repository, since they
shouldn't be used in forks and dev machines anyway.
Hiding ads in `website/news/include.php` was a thing I did in
the early days because one of the devs was ashamed of ads, and
`website/` wasn't in a public repository at the time. At this
point, though, I'm done being ashamed of it. You can obviously
see ads on the website and everyone knows they fund the server.
We were relying on the existence of `sprites/` to decide whether to
build sprite data, but at some point `sprites/` has had a few things
bypassing `.gitignore`. The new detection should be more reliable.
I also added some code to correct previous mistaken builds.
Fixes#1851
This is the point at which all these refactors to the build system pay
off: we can now directly share code from server. First off:
chat-formatter is now built directly from the server!
At this point, we might as well use babel-core directly.
New system supports source maps for `battledata` and `graphics`! Woo!
It also logs the compile step.
Not full support, but basic rearranging is now possible!
Supported:
- Rearranging the topbar
- Dragging PMs from the Main Menu to the topbar
Not supported:
- Dragging things from the topbar to the Main Menu
This optimizes JavaScript parsing performance. V8 developers
recommend applying this optimization for objects of 10 kB or
larger, see <https://v8.dev/blog/cost-of-javascript-2019#json>
for more details. Teambuilder tables are 3.5 MBs which is much
more than 10 kB.