diff --git a/Makefile b/Makefile index 94eafeb..3c7cd3f 100644 --- a/Makefile +++ b/Makefile @@ -24,13 +24,3 @@ srv.dev-shell: srv.shell: nix-shell -A srv.shellWithBuild --arg baseConfig '(import ${CONFIG})' \ --command 'cd srv/src; return' - -# TODO static is on the way out, these aren't well supported -static.serve: - nix-shell -A static.shell --run 'cd static; static-serve' - -static.depShell: - nix-shell -A static.depShell --command 'cd static; return' - -static.lock: - nix-shell -A static.depShell --run 'bundler lock; bundix; rm -rf .bundle vendor' diff --git a/default.nix b/default.nix index 8d20c38..f810fc6 100644 --- a/default.nix +++ b/default.nix @@ -7,7 +7,7 @@ }) {}, baseConfig ? import ./config.nix, - baseSkipServices ? [], + skipServices ? [], }: rec { @@ -17,17 +17,8 @@ redisListenPath = "${config.runDir}/redis"; }; - skipServices = baseSkipServices ++ ( - if baseConfig.staticProxyURL == "" - then [ "static" ] - else [] - ); - - static = (import ./static) { inherit pkgs; }; - srv = pkgs.callPackage (import ./srv) { inherit config; - staticBuild=static.build; }; redisCfg = pkgs.writeText "mediocre-blog-redisCfg" '' @@ -59,13 +50,6 @@ numprocesses = 1 ''; - staticCircusCfg = '' - [watcher:static] - cmd = ${static.serve}/bin/static-serve - numprocesses = 1 - working_dir = ./static - ''; - circusCfg = pkgs.writeText "mediocre-blog-circusCfg" '' [circus] endpoint = tcp://127.0.0.1:0 @@ -74,8 +58,6 @@ ${if (!builtins.elem "srv" skipServices) then srvCircusCfg else ""} ${if (!builtins.elem "redis" skipServices) then redisCircusCfg else ""} - - ${if (!builtins.elem "static" skipServices) then staticCircusCfg else ""} ''; entrypoint = pkgs.writeScript "mediocre-blog-entrypoint" '' diff --git a/srv-dev-env.sh b/srv-dev-env.sh index 9d2ee87..2df9918 100644 --- a/srv-dev-env.sh +++ b/srv-dev-env.sh @@ -11,7 +11,7 @@ test_cfg="(import ./config.nix) // { entrypoint=$(nix-build --no-out-link -A entrypoint \ --arg baseConfig "$test_cfg" \ - --arg baseSkipServices '["srv"]') + --arg skipServices '["srv"]') $entrypoint & trap "kill $!; wait; rm -rf $test_dir" EXIT diff --git a/srv/default.nix b/srv/default.nix index a8f3464..7aa11b8 100644 --- a/srv/default.nix +++ b/srv/default.nix @@ -7,7 +7,6 @@ stdenv, config, - staticBuild, }: rec { init = writeText "mediocre-blog-srv-init" '' @@ -26,9 +25,6 @@ # pow export MEDIOCRE_BLOG_POW_SECRET="${config.powSecret}" - # static proxy - export MEDIOCRE_BLOG_STATIC_DIR="${staticBuild}" - # listening export MEDIOCRE_BLOG_LISTEN_PROTO="${config.listenProto}" export MEDIOCRE_BLOG_LISTEN_ADDR="${config.listenAddr}" diff --git a/srv/src/http/api.go b/srv/src/http/api.go index 4740853..abf08e7 100644 --- a/srv/src/http/api.go +++ b/srv/src/http/api.go @@ -3,13 +3,12 @@ package http import ( "context" + "embed" "errors" "fmt" "html/template" "net" "net/http" - "net/http/httputil" - "net/url" "os" "github.com/mediocregopher/blog.mediocregopher.com/srv/cfg" @@ -22,6 +21,9 @@ import ( "github.com/mediocregopher/mediocre-go-lib/v2/mlog" ) +//go:embed static +var staticFS embed.FS + // Params are used to instantiate a new API instance. All fields are required // unless otherwise noted. type Params struct { @@ -45,16 +47,6 @@ type Params struct { // supported. ListenProto, ListenAddr string - // StaticDir and StaticProxy are mutually exclusive. - // - // If StaticDir is set then that directory on the filesystem will be used to - // serve the static site. - // - // Otherwise if StaticProxy is set all requests for the static site will be - // reverse-proxied there. - StaticDir string - StaticProxy *url.URL - // AuthUsers keys are usernames which are allowed to edit server-side data, // and the values are the password hash which accompanies those users. The // password hash must have been produced by NewPasswordHash. @@ -63,39 +55,14 @@ type Params struct { // SetupCfg implement the cfg.Cfger interface. func (p *Params) SetupCfg(cfg *cfg.Cfg) { - cfg.StringVar(&p.ListenProto, "listen-proto", "tcp", "Protocol to listen for HTTP requests with") cfg.StringVar(&p.ListenAddr, "listen-addr", ":4000", "Address/path to listen for HTTP requests on") - - cfg.StringVar(&p.StaticDir, "static-dir", "", "Directory from which static files are served (mutually exclusive with -static-proxy-url)") - staticProxyURLStr := cfg.String("static-proxy-url", "", "HTTP address from which static files are served (mutually exclusive with -static-dir)") - - cfg.OnInit(func(ctx context.Context) error { - if *staticProxyURLStr != "" { - var err error - if p.StaticProxy, err = url.Parse(*staticProxyURLStr); err != nil { - return fmt.Errorf("parsing -static-proxy-url: %w", err) - } - - } else if p.StaticDir == "" { - return errors.New("-static-dir or -static-proxy-url is required") - } - - return nil - }) } // Annotate implements mctx.Annotator interface. func (p *Params) Annotate(a mctx.Annotations) { a["listenProto"] = p.ListenProto a["listenAddr"] = p.ListenAddr - - if p.StaticProxy != nil { - a["staticProxy"] = p.StaticProxy.String() - return - } - - a["staticDir"] = p.StaticDir } // API will listen on the port configured for it, and serve HTTP requests for @@ -156,15 +123,6 @@ func (a *api) Shutdown(ctx context.Context) error { func (a *api) handler() http.Handler { - var staticHandler http.Handler - if a.params.StaticDir != "" { - staticHandler = http.FileServer(http.Dir(a.params.StaticDir)) - } else { - staticHandler = httputil.NewSingleHostReverseProxy(a.params.StaticProxy) - } - - // sugar - requirePow := func(h http.Handler) http.Handler { return a.requirePowMiddleware(h) } @@ -185,8 +143,6 @@ func (a *api) handler() http.Handler { mux := http.NewServeMux() - mux.Handle("/", staticHandler) - { apiMux := http.NewServeMux() apiMux.Handle("/pow/challenge", a.newPowChallengeHandler()) @@ -209,39 +165,37 @@ func (a *api) handler() http.Handler { mux.Handle("/api/", http.StripPrefix("/api", formMiddleware(apiMux))) } - { - v2Mux := http.NewServeMux() - v2Mux.Handle("/follow.html", a.renderDumbTplHandler("follow.html")) - v2Mux.Handle("/posts/", http.StripPrefix("/posts", - apiutil.MethodMux(map[string]http.Handler{ - "GET": a.renderPostHandler(), - "EDIT": a.editPostHandler(), - "POST": authMiddleware(auther, - formMiddleware(a.postPostHandler()), - ), - "DELETE": authMiddleware(auther, - formMiddleware(a.deletePostHandler()), - ), - "PREVIEW": authMiddleware(auther, - formMiddleware(a.previewPostHandler()), - ), - }), - )) - v2Mux.Handle("/assets/", http.StripPrefix("/assets", - apiutil.MethodMux(map[string]http.Handler{ - "GET": a.getPostAssetHandler(), - "POST": authMiddleware(auther, - formMiddleware(a.postPostAssetHandler()), - ), - "DELETE": authMiddleware(auther, - formMiddleware(a.deletePostAssetHandler()), - ), - }), - )) - v2Mux.Handle("/", a.renderIndexHandler()) - - mux.Handle("/v2/", http.StripPrefix("/v2", v2Mux)) - } + mux.Handle("/posts/", http.StripPrefix("/posts", + apiutil.MethodMux(map[string]http.Handler{ + "GET": a.renderPostHandler(), + "EDIT": a.editPostHandler(), + "POST": authMiddleware(auther, + formMiddleware(a.postPostHandler()), + ), + "DELETE": authMiddleware(auther, + formMiddleware(a.deletePostHandler()), + ), + "PREVIEW": authMiddleware(auther, + formMiddleware(a.previewPostHandler()), + ), + }), + )) + + mux.Handle("/assets/", http.StripPrefix("/assets", + apiutil.MethodMux(map[string]http.Handler{ + "GET": a.getPostAssetHandler(), + "POST": authMiddleware(auther, + formMiddleware(a.postPostAssetHandler()), + ), + "DELETE": authMiddleware(auther, + formMiddleware(a.deletePostAssetHandler()), + ), + }), + )) + + mux.Handle("/static/", http.FileServer(http.FS(staticFS))) + mux.Handle("/follow.html", a.renderDumbTplHandler("follow.html")) + mux.Handle("/", a.renderIndexHandler()) var globalHandler http.Handler = mux globalHandler = setCSRFMiddleware(globalHandler) diff --git a/static/src/assets/api.js b/srv/src/http/static/api.js similarity index 96% rename from static/src/assets/api.js rename to srv/src/http/static/api.js index af786f2..a635118 100644 --- a/static/src/assets/api.js +++ b/srv/src/http/static/api.js @@ -1,4 +1,4 @@ -import * as utils from "/assets/utils.js"; +import * as utils from "/static/utils.js"; const csrfTokenCookie = "csrf_token"; @@ -35,7 +35,7 @@ const solvePow = async () => { const res = await call('/api/pow/challenge'); - const worker = new Worker('/assets/solvePow.js'); + const worker = new Worker('/static/solvePow.js'); const p = new Promise((resolve, reject) => { worker.postMessage({seedHex: res.seed, target: res.target}); diff --git a/static/src/assets/component-oriented-design/v1/main.go b/srv/src/http/static/component-oriented-design/v1/main.go similarity index 100% rename from static/src/assets/component-oriented-design/v1/main.go rename to srv/src/http/static/component-oriented-design/v1/main.go diff --git a/static/src/assets/component-oriented-design/v1/main.md b/srv/src/http/static/component-oriented-design/v1/main.md similarity index 100% rename from static/src/assets/component-oriented-design/v1/main.md rename to srv/src/http/static/component-oriented-design/v1/main.md diff --git a/static/src/assets/component-oriented-design/v1/main_test.go b/srv/src/http/static/component-oriented-design/v1/main_test.go similarity index 100% rename from static/src/assets/component-oriented-design/v1/main_test.go rename to srv/src/http/static/component-oriented-design/v1/main_test.go diff --git a/static/src/assets/component-oriented-design/v1/main_test.md b/srv/src/http/static/component-oriented-design/v1/main_test.md similarity index 100% rename from static/src/assets/component-oriented-design/v1/main_test.md rename to srv/src/http/static/component-oriented-design/v1/main_test.md diff --git a/static/src/assets/component-oriented-design/v2/main.go b/srv/src/http/static/component-oriented-design/v2/main.go similarity index 100% rename from static/src/assets/component-oriented-design/v2/main.go rename to srv/src/http/static/component-oriented-design/v2/main.go diff --git a/static/src/assets/component-oriented-design/v2/main.md b/srv/src/http/static/component-oriented-design/v2/main.md similarity index 100% rename from static/src/assets/component-oriented-design/v2/main.md rename to srv/src/http/static/component-oriented-design/v2/main.md diff --git a/static/src/assets/component-oriented-design/v3/main.go b/srv/src/http/static/component-oriented-design/v3/main.go similarity index 100% rename from static/src/assets/component-oriented-design/v3/main.go rename to srv/src/http/static/component-oriented-design/v3/main.go diff --git a/static/src/assets/component-oriented-design/v3/main.md b/srv/src/http/static/component-oriented-design/v3/main.md similarity index 100% rename from static/src/assets/component-oriented-design/v3/main.md rename to srv/src/http/static/component-oriented-design/v3/main.md diff --git a/static/src/assets/dog-money.png b/srv/src/http/static/dog-money.png similarity index 100% rename from static/src/assets/dog-money.png rename to srv/src/http/static/dog-money.png diff --git a/static/src/assets/fontawesome/LICENSE.txt b/srv/src/http/static/fontawesome/LICENSE.txt similarity index 100% rename from static/src/assets/fontawesome/LICENSE.txt rename to srv/src/http/static/fontawesome/LICENSE.txt diff --git a/static/src/assets/fontawesome/css/all.css b/srv/src/http/static/fontawesome/css/all.css similarity index 100% rename from static/src/assets/fontawesome/css/all.css rename to srv/src/http/static/fontawesome/css/all.css diff --git a/static/src/assets/fontawesome/css/all.min.css b/srv/src/http/static/fontawesome/css/all.min.css similarity index 100% rename from static/src/assets/fontawesome/css/all.min.css rename to srv/src/http/static/fontawesome/css/all.min.css diff --git a/static/src/assets/fontawesome/css/brands.css b/srv/src/http/static/fontawesome/css/brands.css similarity index 100% rename from static/src/assets/fontawesome/css/brands.css rename to srv/src/http/static/fontawesome/css/brands.css diff --git a/static/src/assets/fontawesome/css/brands.min.css b/srv/src/http/static/fontawesome/css/brands.min.css similarity index 100% rename from static/src/assets/fontawesome/css/brands.min.css rename to srv/src/http/static/fontawesome/css/brands.min.css diff --git a/static/src/assets/fontawesome/css/fontawesome.css b/srv/src/http/static/fontawesome/css/fontawesome.css similarity index 100% rename from static/src/assets/fontawesome/css/fontawesome.css rename to srv/src/http/static/fontawesome/css/fontawesome.css diff --git a/static/src/assets/fontawesome/css/fontawesome.min.css b/srv/src/http/static/fontawesome/css/fontawesome.min.css similarity index 100% rename from static/src/assets/fontawesome/css/fontawesome.min.css rename to srv/src/http/static/fontawesome/css/fontawesome.min.css diff --git a/static/src/assets/fontawesome/css/regular.css b/srv/src/http/static/fontawesome/css/regular.css similarity index 100% rename from static/src/assets/fontawesome/css/regular.css rename to srv/src/http/static/fontawesome/css/regular.css diff --git a/static/src/assets/fontawesome/css/regular.min.css b/srv/src/http/static/fontawesome/css/regular.min.css similarity index 100% rename from static/src/assets/fontawesome/css/regular.min.css rename to srv/src/http/static/fontawesome/css/regular.min.css diff --git a/static/src/assets/fontawesome/css/solid.css b/srv/src/http/static/fontawesome/css/solid.css similarity index 100% rename from static/src/assets/fontawesome/css/solid.css rename to srv/src/http/static/fontawesome/css/solid.css diff --git a/static/src/assets/fontawesome/css/solid.min.css b/srv/src/http/static/fontawesome/css/solid.min.css similarity index 100% rename from static/src/assets/fontawesome/css/solid.min.css rename to srv/src/http/static/fontawesome/css/solid.min.css diff --git a/static/src/assets/fontawesome/css/svg-with-js.css b/srv/src/http/static/fontawesome/css/svg-with-js.css similarity index 100% rename from static/src/assets/fontawesome/css/svg-with-js.css rename to srv/src/http/static/fontawesome/css/svg-with-js.css diff --git a/static/src/assets/fontawesome/css/svg-with-js.min.css b/srv/src/http/static/fontawesome/css/svg-with-js.min.css similarity index 100% rename from static/src/assets/fontawesome/css/svg-with-js.min.css rename to srv/src/http/static/fontawesome/css/svg-with-js.min.css diff --git a/static/src/assets/fontawesome/css/v4-shims.css b/srv/src/http/static/fontawesome/css/v4-shims.css similarity index 100% rename from static/src/assets/fontawesome/css/v4-shims.css rename to srv/src/http/static/fontawesome/css/v4-shims.css diff --git a/static/src/assets/fontawesome/css/v4-shims.min.css b/srv/src/http/static/fontawesome/css/v4-shims.min.css similarity index 100% rename from static/src/assets/fontawesome/css/v4-shims.min.css rename to srv/src/http/static/fontawesome/css/v4-shims.min.css diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.eot b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.eot similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-brands-400.eot rename to srv/src/http/static/fontawesome/webfonts/fa-brands-400.eot diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.svg b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.svg similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-brands-400.svg rename to srv/src/http/static/fontawesome/webfonts/fa-brands-400.svg diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.ttf b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.ttf similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-brands-400.ttf rename to srv/src/http/static/fontawesome/webfonts/fa-brands-400.ttf diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.woff b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-brands-400.woff rename to srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff diff --git a/static/src/assets/fontawesome/webfonts/fa-brands-400.woff2 b/srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff2 similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-brands-400.woff2 rename to srv/src/http/static/fontawesome/webfonts/fa-brands-400.woff2 diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.eot b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.eot similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-regular-400.eot rename to srv/src/http/static/fontawesome/webfonts/fa-regular-400.eot diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.svg b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.svg similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-regular-400.svg rename to srv/src/http/static/fontawesome/webfonts/fa-regular-400.svg diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.ttf b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.ttf similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-regular-400.ttf rename to srv/src/http/static/fontawesome/webfonts/fa-regular-400.ttf diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.woff b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-regular-400.woff rename to srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff diff --git a/static/src/assets/fontawesome/webfonts/fa-regular-400.woff2 b/srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff2 similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-regular-400.woff2 rename to srv/src/http/static/fontawesome/webfonts/fa-regular-400.woff2 diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.eot b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.eot similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-solid-900.eot rename to srv/src/http/static/fontawesome/webfonts/fa-solid-900.eot diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.svg b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.svg similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-solid-900.svg rename to srv/src/http/static/fontawesome/webfonts/fa-solid-900.svg diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.ttf b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.ttf similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-solid-900.ttf rename to srv/src/http/static/fontawesome/webfonts/fa-solid-900.ttf diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.woff b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-solid-900.woff rename to srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff diff --git a/static/src/assets/fontawesome/webfonts/fa-solid-900.woff2 b/srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff2 similarity index 100% rename from static/src/assets/fontawesome/webfonts/fa-solid-900.woff2 rename to srv/src/http/static/fontawesome/webfonts/fa-solid-900.woff2 diff --git a/static/src/assets/friendly.css b/srv/src/http/static/friendly.css similarity index 100% rename from static/src/assets/friendly.css rename to srv/src/http/static/friendly.css diff --git a/static/src/assets/maddy-vps/success.png b/srv/src/http/static/maddy-vps/success.png similarity index 100% rename from static/src/assets/maddy-vps/success.png rename to srv/src/http/static/maddy-vps/success.png diff --git a/static/src/assets/main.css b/srv/src/http/static/main.css similarity index 100% rename from static/src/assets/main.css rename to srv/src/http/static/main.css diff --git a/static/src/assets/markov/Makefile b/srv/src/http/static/markov/Makefile similarity index 100% rename from static/src/assets/markov/Makefile rename to srv/src/http/static/markov/Makefile diff --git a/static/src/assets/markov/Makefile.md b/srv/src/http/static/markov/Makefile.md similarity index 100% rename from static/src/assets/markov/Makefile.md rename to srv/src/http/static/markov/Makefile.md diff --git a/static/src/assets/markov/markov.nix b/srv/src/http/static/markov/markov.nix similarity index 100% rename from static/src/assets/markov/markov.nix rename to srv/src/http/static/markov/markov.nix diff --git a/static/src/assets/markov/markov.nix.md b/srv/src/http/static/markov/markov.nix.md similarity index 100% rename from static/src/assets/markov/markov.nix.md rename to srv/src/http/static/markov/markov.nix.md diff --git a/static/src/assets/normalize.css b/srv/src/http/static/normalize.css similarity index 100% rename from static/src/assets/normalize.css rename to srv/src/http/static/normalize.css diff --git a/static/src/assets/overpass-regular.woff b/srv/src/http/static/overpass-regular.woff similarity index 100% rename from static/src/assets/overpass-regular.woff rename to srv/src/http/static/overpass-regular.woff diff --git a/static/src/assets/qrcode.min.js b/srv/src/http/static/qrcode.min.js similarity index 100% rename from static/src/assets/qrcode.min.js rename to srv/src/http/static/qrcode.min.js diff --git a/static/src/assets/skeleton.css b/srv/src/http/static/skeleton.css similarity index 100% rename from static/src/assets/skeleton.css rename to srv/src/http/static/skeleton.css diff --git a/static/src/assets/solvePow.js b/srv/src/http/static/solvePow.js similarity index 100% rename from static/src/assets/solvePow.js rename to srv/src/http/static/solvePow.js diff --git a/static/src/assets/trading-in-the-rain/CW.js b/srv/src/http/static/trading-in-the-rain/CW.js similarity index 100% rename from static/src/assets/trading-in-the-rain/CW.js rename to srv/src/http/static/trading-in-the-rain/CW.js diff --git a/static/src/assets/trading-in-the-rain/Distributor.js b/srv/src/http/static/trading-in-the-rain/Distributor.js similarity index 100% rename from static/src/assets/trading-in-the-rain/Distributor.js rename to srv/src/http/static/trading-in-the-rain/Distributor.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/LICENSE.txt b/srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/LICENSE.txt rename to srv/src/http/static/trading-in-the-rain/MIDI.js/LICENSE.txt diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/Base64binary.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebAudioAPI.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/inc/shim/WebMIDIAPI.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/audioDetect.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/gm.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/gm.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/loader.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/loader.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/player.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/player.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/player.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.audiotag.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webaudio.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/plugin.webmidi.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/midi/synesthesia.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_script.js diff --git a/static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js b/srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js similarity index 100% rename from static/src/assets/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js rename to srv/src/http/static/trading-in-the-rain/MIDI.js/js/util/dom_request_xhr.js diff --git a/static/src/assets/trading-in-the-rain/MusicBox.js b/srv/src/http/static/trading-in-the-rain/MusicBox.js similarity index 96% rename from static/src/assets/trading-in-the-rain/MusicBox.js rename to srv/src/http/static/trading-in-the-rain/MusicBox.js index a30074c..b5b060e 100644 --- a/static/src/assets/trading-in-the-rain/MusicBox.js +++ b/srv/src/http/static/trading-in-the-rain/MusicBox.js @@ -1,7 +1,7 @@ var midiLoaded = false; function loadMIDI() { MIDI.loadPlugin({ - soundfontUrl: "/assets/trading-in-the-rain/soundfont/", + soundfontUrl: "/static/trading-in-the-rain/soundfont/", instrument: "acoustic_grand_piano", onprogress: (state, progress) => { console.log("MIDI loading...", progress*100, "%"); diff --git a/static/src/assets/trading-in-the-rain/RainCanvas.js b/srv/src/http/static/trading-in-the-rain/RainCanvas.js similarity index 100% rename from static/src/assets/trading-in-the-rain/RainCanvas.js rename to srv/src/http/static/trading-in-the-rain/RainCanvas.js diff --git a/static/src/assets/trading-in-the-rain/SeriesComposer.js b/srv/src/http/static/trading-in-the-rain/SeriesComposer.js similarity index 100% rename from static/src/assets/trading-in-the-rain/SeriesComposer.js rename to srv/src/http/static/trading-in-the-rain/SeriesComposer.js diff --git a/static/src/assets/trading-in-the-rain/key.gpg b/srv/src/http/static/trading-in-the-rain/key.gpg similarity index 100% rename from static/src/assets/trading-in-the-rain/key.gpg rename to srv/src/http/static/trading-in-the-rain/key.gpg diff --git a/static/src/assets/trading-in-the-rain/main.js b/srv/src/http/static/trading-in-the-rain/main.js similarity index 100% rename from static/src/assets/trading-in-the-rain/main.js rename to srv/src/http/static/trading-in-the-rain/main.js diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3.js diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A0.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/A7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Ab7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B0.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/B7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb0.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Bb7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/C8.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/D7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Db8.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/E7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Eb7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/F7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/G7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb1.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb2.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb3.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb4.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb5.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb6.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-mp3/Gb7.mp3 diff --git a/static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js b/srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js similarity index 100% rename from static/src/assets/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js rename to srv/src/http/static/trading-in-the-rain/soundfont/acoustic_grand_piano-ogg.js diff --git a/static/src/assets/utils.js b/srv/src/http/static/utils.js similarity index 100% rename from static/src/assets/utils.js rename to srv/src/http/static/utils.js diff --git a/static/src/assets/viz/1/cljs/core.cljs b/srv/src/http/static/viz/1/cljs/core.cljs similarity index 100% rename from static/src/assets/viz/1/cljs/core.cljs rename to srv/src/http/static/viz/1/cljs/core.cljs diff --git a/static/src/assets/viz/1/cljs/core.js b/srv/src/http/static/viz/1/cljs/core.js similarity index 100% rename from static/src/assets/viz/1/cljs/core.js rename to srv/src/http/static/viz/1/cljs/core.js diff --git a/static/src/assets/viz/1/cljs/core.js.map b/srv/src/http/static/viz/1/cljs/core.js.map similarity index 100% rename from static/src/assets/viz/1/cljs/core.js.map rename to srv/src/http/static/viz/1/cljs/core.js.map diff --git a/static/src/assets/viz/1/cljs_deps.js b/srv/src/http/static/viz/1/cljs_deps.js similarity index 100% rename from static/src/assets/viz/1/cljs_deps.js rename to srv/src/http/static/viz/1/cljs_deps.js diff --git a/static/src/assets/viz/1/clojure/set.cljs b/srv/src/http/static/viz/1/clojure/set.cljs similarity index 100% rename from static/src/assets/viz/1/clojure/set.cljs rename to srv/src/http/static/viz/1/clojure/set.cljs diff --git a/static/src/assets/viz/1/clojure/set.cljs.cache.edn b/srv/src/http/static/viz/1/clojure/set.cljs.cache.edn similarity index 100% rename from static/src/assets/viz/1/clojure/set.cljs.cache.edn rename to srv/src/http/static/viz/1/clojure/set.cljs.cache.edn diff --git a/static/src/assets/viz/1/clojure/set.js b/srv/src/http/static/viz/1/clojure/set.js similarity index 100% rename from static/src/assets/viz/1/clojure/set.js rename to srv/src/http/static/viz/1/clojure/set.js diff --git a/static/src/assets/viz/1/clojure/set.js.map b/srv/src/http/static/viz/1/clojure/set.js.map similarity index 100% rename from static/src/assets/viz/1/clojure/set.js.map rename to srv/src/http/static/viz/1/clojure/set.js.map diff --git a/static/src/assets/viz/1/clojure/string.cljs b/srv/src/http/static/viz/1/clojure/string.cljs similarity index 100% rename from static/src/assets/viz/1/clojure/string.cljs rename to srv/src/http/static/viz/1/clojure/string.cljs diff --git a/static/src/assets/viz/1/clojure/string.cljs.cache.edn b/srv/src/http/static/viz/1/clojure/string.cljs.cache.edn similarity index 100% rename from static/src/assets/viz/1/clojure/string.cljs.cache.edn rename to srv/src/http/static/viz/1/clojure/string.cljs.cache.edn diff --git a/static/src/assets/viz/1/clojure/string.js b/srv/src/http/static/viz/1/clojure/string.js similarity index 100% rename from static/src/assets/viz/1/clojure/string.js rename to srv/src/http/static/viz/1/clojure/string.js diff --git a/static/src/assets/viz/1/clojure/string.js.map b/srv/src/http/static/viz/1/clojure/string.js.map similarity index 100% rename from static/src/assets/viz/1/clojure/string.js.map rename to srv/src/http/static/viz/1/clojure/string.js.map diff --git a/static/src/assets/viz/1/goog/array/array.js b/srv/src/http/static/viz/1/goog/array/array.js similarity index 100% rename from static/src/assets/viz/1/goog/array/array.js rename to srv/src/http/static/viz/1/goog/array/array.js diff --git a/static/src/assets/viz/1/goog/asserts/asserts.js b/srv/src/http/static/viz/1/goog/asserts/asserts.js similarity index 100% rename from static/src/assets/viz/1/goog/asserts/asserts.js rename to srv/src/http/static/viz/1/goog/asserts/asserts.js diff --git a/static/src/assets/viz/1/goog/base.js b/srv/src/http/static/viz/1/goog/base.js similarity index 100% rename from static/src/assets/viz/1/goog/base.js rename to srv/src/http/static/viz/1/goog/base.js diff --git a/static/src/assets/viz/1/goog/debug/entrypointregistry.js b/srv/src/http/static/viz/1/goog/debug/entrypointregistry.js similarity index 100% rename from static/src/assets/viz/1/goog/debug/entrypointregistry.js rename to srv/src/http/static/viz/1/goog/debug/entrypointregistry.js diff --git a/static/src/assets/viz/1/goog/debug/error.js b/srv/src/http/static/viz/1/goog/debug/error.js similarity index 100% rename from static/src/assets/viz/1/goog/debug/error.js rename to srv/src/http/static/viz/1/goog/debug/error.js diff --git a/static/src/assets/viz/1/goog/deps.js b/srv/src/http/static/viz/1/goog/deps.js similarity index 100% rename from static/src/assets/viz/1/goog/deps.js rename to srv/src/http/static/viz/1/goog/deps.js diff --git a/static/src/assets/viz/1/goog/disposable/disposable.js b/srv/src/http/static/viz/1/goog/disposable/disposable.js similarity index 100% rename from static/src/assets/viz/1/goog/disposable/disposable.js rename to srv/src/http/static/viz/1/goog/disposable/disposable.js diff --git a/static/src/assets/viz/1/goog/disposable/idisposable.js b/srv/src/http/static/viz/1/goog/disposable/idisposable.js similarity index 100% rename from static/src/assets/viz/1/goog/disposable/idisposable.js rename to srv/src/http/static/viz/1/goog/disposable/idisposable.js diff --git a/static/src/assets/viz/1/goog/dom/browserfeature.js b/srv/src/http/static/viz/1/goog/dom/browserfeature.js similarity index 100% rename from static/src/assets/viz/1/goog/dom/browserfeature.js rename to srv/src/http/static/viz/1/goog/dom/browserfeature.js diff --git a/static/src/assets/viz/1/goog/dom/dom.js b/srv/src/http/static/viz/1/goog/dom/dom.js similarity index 100% rename from static/src/assets/viz/1/goog/dom/dom.js rename to srv/src/http/static/viz/1/goog/dom/dom.js diff --git a/static/src/assets/viz/1/goog/dom/nodetype.js b/srv/src/http/static/viz/1/goog/dom/nodetype.js similarity index 100% rename from static/src/assets/viz/1/goog/dom/nodetype.js rename to srv/src/http/static/viz/1/goog/dom/nodetype.js diff --git a/static/src/assets/viz/1/goog/dom/safe.js b/srv/src/http/static/viz/1/goog/dom/safe.js similarity index 100% rename from static/src/assets/viz/1/goog/dom/safe.js rename to srv/src/http/static/viz/1/goog/dom/safe.js diff --git a/static/src/assets/viz/1/goog/dom/tagname.js b/srv/src/http/static/viz/1/goog/dom/tagname.js similarity index 100% rename from static/src/assets/viz/1/goog/dom/tagname.js rename to srv/src/http/static/viz/1/goog/dom/tagname.js diff --git a/static/src/assets/viz/1/goog/dom/tags.js b/srv/src/http/static/viz/1/goog/dom/tags.js similarity index 100% rename from static/src/assets/viz/1/goog/dom/tags.js rename to srv/src/http/static/viz/1/goog/dom/tags.js diff --git a/static/src/assets/viz/1/goog/events/browserevent.js b/srv/src/http/static/viz/1/goog/events/browserevent.js similarity index 100% rename from static/src/assets/viz/1/goog/events/browserevent.js rename to srv/src/http/static/viz/1/goog/events/browserevent.js diff --git a/static/src/assets/viz/1/goog/events/browserfeature.js b/srv/src/http/static/viz/1/goog/events/browserfeature.js similarity index 100% rename from static/src/assets/viz/1/goog/events/browserfeature.js rename to srv/src/http/static/viz/1/goog/events/browserfeature.js diff --git a/static/src/assets/viz/1/goog/events/event.js b/srv/src/http/static/viz/1/goog/events/event.js similarity index 100% rename from static/src/assets/viz/1/goog/events/event.js rename to srv/src/http/static/viz/1/goog/events/event.js diff --git a/static/src/assets/viz/1/goog/events/eventid.js b/srv/src/http/static/viz/1/goog/events/eventid.js similarity index 100% rename from static/src/assets/viz/1/goog/events/eventid.js rename to srv/src/http/static/viz/1/goog/events/eventid.js diff --git a/static/src/assets/viz/1/goog/events/events.js b/srv/src/http/static/viz/1/goog/events/events.js similarity index 100% rename from static/src/assets/viz/1/goog/events/events.js rename to srv/src/http/static/viz/1/goog/events/events.js diff --git a/static/src/assets/viz/1/goog/events/eventtype.js b/srv/src/http/static/viz/1/goog/events/eventtype.js similarity index 100% rename from static/src/assets/viz/1/goog/events/eventtype.js rename to srv/src/http/static/viz/1/goog/events/eventtype.js diff --git a/static/src/assets/viz/1/goog/events/listenable.js b/srv/src/http/static/viz/1/goog/events/listenable.js similarity index 100% rename from static/src/assets/viz/1/goog/events/listenable.js rename to srv/src/http/static/viz/1/goog/events/listenable.js diff --git a/static/src/assets/viz/1/goog/events/listener.js b/srv/src/http/static/viz/1/goog/events/listener.js similarity index 100% rename from static/src/assets/viz/1/goog/events/listener.js rename to srv/src/http/static/viz/1/goog/events/listener.js diff --git a/static/src/assets/viz/1/goog/events/listenermap.js b/srv/src/http/static/viz/1/goog/events/listenermap.js similarity index 100% rename from static/src/assets/viz/1/goog/events/listenermap.js rename to srv/src/http/static/viz/1/goog/events/listenermap.js diff --git a/static/src/assets/viz/1/goog/fs/url.js b/srv/src/http/static/viz/1/goog/fs/url.js similarity index 100% rename from static/src/assets/viz/1/goog/fs/url.js rename to srv/src/http/static/viz/1/goog/fs/url.js diff --git a/static/src/assets/viz/1/goog/html/safehtml.js b/srv/src/http/static/viz/1/goog/html/safehtml.js similarity index 100% rename from static/src/assets/viz/1/goog/html/safehtml.js rename to srv/src/http/static/viz/1/goog/html/safehtml.js diff --git a/static/src/assets/viz/1/goog/html/safescript.js b/srv/src/http/static/viz/1/goog/html/safescript.js similarity index 100% rename from static/src/assets/viz/1/goog/html/safescript.js rename to srv/src/http/static/viz/1/goog/html/safescript.js diff --git a/static/src/assets/viz/1/goog/html/safestyle.js b/srv/src/http/static/viz/1/goog/html/safestyle.js similarity index 100% rename from static/src/assets/viz/1/goog/html/safestyle.js rename to srv/src/http/static/viz/1/goog/html/safestyle.js diff --git a/static/src/assets/viz/1/goog/html/safestylesheet.js b/srv/src/http/static/viz/1/goog/html/safestylesheet.js similarity index 100% rename from static/src/assets/viz/1/goog/html/safestylesheet.js rename to srv/src/http/static/viz/1/goog/html/safestylesheet.js diff --git a/static/src/assets/viz/1/goog/html/safeurl.js b/srv/src/http/static/viz/1/goog/html/safeurl.js similarity index 100% rename from static/src/assets/viz/1/goog/html/safeurl.js rename to srv/src/http/static/viz/1/goog/html/safeurl.js diff --git a/static/src/assets/viz/1/goog/html/trustedresourceurl.js b/srv/src/http/static/viz/1/goog/html/trustedresourceurl.js similarity index 100% rename from static/src/assets/viz/1/goog/html/trustedresourceurl.js rename to srv/src/http/static/viz/1/goog/html/trustedresourceurl.js diff --git a/static/src/assets/viz/1/goog/html/uncheckedconversions.js b/srv/src/http/static/viz/1/goog/html/uncheckedconversions.js similarity index 100% rename from static/src/assets/viz/1/goog/html/uncheckedconversions.js rename to srv/src/http/static/viz/1/goog/html/uncheckedconversions.js diff --git a/static/src/assets/viz/1/goog/i18n/bidi.js b/srv/src/http/static/viz/1/goog/i18n/bidi.js similarity index 100% rename from static/src/assets/viz/1/goog/i18n/bidi.js rename to srv/src/http/static/viz/1/goog/i18n/bidi.js diff --git a/static/src/assets/viz/1/goog/labs/useragent/browser.js b/srv/src/http/static/viz/1/goog/labs/useragent/browser.js similarity index 100% rename from static/src/assets/viz/1/goog/labs/useragent/browser.js rename to srv/src/http/static/viz/1/goog/labs/useragent/browser.js diff --git a/static/src/assets/viz/1/goog/labs/useragent/engine.js b/srv/src/http/static/viz/1/goog/labs/useragent/engine.js similarity index 100% rename from static/src/assets/viz/1/goog/labs/useragent/engine.js rename to srv/src/http/static/viz/1/goog/labs/useragent/engine.js diff --git a/static/src/assets/viz/1/goog/labs/useragent/platform.js b/srv/src/http/static/viz/1/goog/labs/useragent/platform.js similarity index 100% rename from static/src/assets/viz/1/goog/labs/useragent/platform.js rename to srv/src/http/static/viz/1/goog/labs/useragent/platform.js diff --git a/static/src/assets/viz/1/goog/labs/useragent/util.js b/srv/src/http/static/viz/1/goog/labs/useragent/util.js similarity index 100% rename from static/src/assets/viz/1/goog/labs/useragent/util.js rename to srv/src/http/static/viz/1/goog/labs/useragent/util.js diff --git a/static/src/assets/viz/1/goog/math/coordinate.js b/srv/src/http/static/viz/1/goog/math/coordinate.js similarity index 100% rename from static/src/assets/viz/1/goog/math/coordinate.js rename to srv/src/http/static/viz/1/goog/math/coordinate.js diff --git a/static/src/assets/viz/1/goog/math/integer.js b/srv/src/http/static/viz/1/goog/math/integer.js similarity index 100% rename from static/src/assets/viz/1/goog/math/integer.js rename to srv/src/http/static/viz/1/goog/math/integer.js diff --git a/static/src/assets/viz/1/goog/math/long.js b/srv/src/http/static/viz/1/goog/math/long.js similarity index 100% rename from static/src/assets/viz/1/goog/math/long.js rename to srv/src/http/static/viz/1/goog/math/long.js diff --git a/static/src/assets/viz/1/goog/math/math.js b/srv/src/http/static/viz/1/goog/math/math.js similarity index 100% rename from static/src/assets/viz/1/goog/math/math.js rename to srv/src/http/static/viz/1/goog/math/math.js diff --git a/static/src/assets/viz/1/goog/math/size.js b/srv/src/http/static/viz/1/goog/math/size.js similarity index 100% rename from static/src/assets/viz/1/goog/math/size.js rename to srv/src/http/static/viz/1/goog/math/size.js diff --git a/static/src/assets/viz/1/goog/object/object.js b/srv/src/http/static/viz/1/goog/object/object.js similarity index 100% rename from static/src/assets/viz/1/goog/object/object.js rename to srv/src/http/static/viz/1/goog/object/object.js diff --git a/static/src/assets/viz/1/goog/reflect/reflect.js b/srv/src/http/static/viz/1/goog/reflect/reflect.js similarity index 100% rename from static/src/assets/viz/1/goog/reflect/reflect.js rename to srv/src/http/static/viz/1/goog/reflect/reflect.js diff --git a/static/src/assets/viz/1/goog/string/const.js b/srv/src/http/static/viz/1/goog/string/const.js similarity index 100% rename from static/src/assets/viz/1/goog/string/const.js rename to srv/src/http/static/viz/1/goog/string/const.js diff --git a/static/src/assets/viz/1/goog/string/string.js b/srv/src/http/static/viz/1/goog/string/string.js similarity index 100% rename from static/src/assets/viz/1/goog/string/string.js rename to srv/src/http/static/viz/1/goog/string/string.js diff --git a/static/src/assets/viz/1/goog/string/stringbuffer.js b/srv/src/http/static/viz/1/goog/string/stringbuffer.js similarity index 100% rename from static/src/assets/viz/1/goog/string/stringbuffer.js rename to srv/src/http/static/viz/1/goog/string/stringbuffer.js diff --git a/static/src/assets/viz/1/goog/string/stringformat.js b/srv/src/http/static/viz/1/goog/string/stringformat.js similarity index 100% rename from static/src/assets/viz/1/goog/string/stringformat.js rename to srv/src/http/static/viz/1/goog/string/stringformat.js diff --git a/static/src/assets/viz/1/goog/string/typedstring.js b/srv/src/http/static/viz/1/goog/string/typedstring.js similarity index 100% rename from static/src/assets/viz/1/goog/string/typedstring.js rename to srv/src/http/static/viz/1/goog/string/typedstring.js diff --git a/static/src/assets/viz/1/goog/useragent/useragent.js b/srv/src/http/static/viz/1/goog/useragent/useragent.js similarity index 100% rename from static/src/assets/viz/1/goog/useragent/useragent.js rename to srv/src/http/static/viz/1/goog/useragent/useragent.js diff --git a/static/src/assets/viz/1/processing.js b/srv/src/http/static/viz/1/processing.js similarity index 100% rename from static/src/assets/viz/1/processing.js rename to srv/src/http/static/viz/1/processing.js diff --git a/static/src/assets/viz/1/quil/core.cljc b/srv/src/http/static/viz/1/quil/core.cljc similarity index 100% rename from static/src/assets/viz/1/quil/core.cljc rename to srv/src/http/static/viz/1/quil/core.cljc diff --git a/static/src/assets/viz/1/quil/core.cljc.cache.edn b/srv/src/http/static/viz/1/quil/core.cljc.cache.edn similarity index 100% rename from static/src/assets/viz/1/quil/core.cljc.cache.edn rename to srv/src/http/static/viz/1/quil/core.cljc.cache.edn diff --git a/static/src/assets/viz/1/quil/core.js b/srv/src/http/static/viz/1/quil/core.js similarity index 100% rename from static/src/assets/viz/1/quil/core.js rename to srv/src/http/static/viz/1/quil/core.js diff --git a/static/src/assets/viz/1/quil/core.js.map b/srv/src/http/static/viz/1/quil/core.js.map similarity index 100% rename from static/src/assets/viz/1/quil/core.js.map rename to srv/src/http/static/viz/1/quil/core.js.map diff --git a/static/src/assets/viz/1/quil/middleware.cljc b/srv/src/http/static/viz/1/quil/middleware.cljc similarity index 100% rename from static/src/assets/viz/1/quil/middleware.cljc rename to srv/src/http/static/viz/1/quil/middleware.cljc diff --git a/static/src/assets/viz/1/quil/middleware.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn similarity index 100% rename from static/src/assets/viz/1/quil/middleware.cljc.cache.edn rename to srv/src/http/static/viz/1/quil/middleware.cljc.cache.edn diff --git a/static/src/assets/viz/1/quil/middleware.js b/srv/src/http/static/viz/1/quil/middleware.js similarity index 100% rename from static/src/assets/viz/1/quil/middleware.js rename to srv/src/http/static/viz/1/quil/middleware.js diff --git a/static/src/assets/viz/1/quil/middleware.js.map b/srv/src/http/static/viz/1/quil/middleware.js.map similarity index 100% rename from static/src/assets/viz/1/quil/middleware.js.map rename to srv/src/http/static/viz/1/quil/middleware.js.map diff --git a/static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc rename to srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc diff --git a/static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn rename to srv/src/http/static/viz/1/quil/middlewares/deprecated_options.cljc.cache.edn diff --git a/static/src/assets/viz/1/quil/middlewares/deprecated_options.js b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/deprecated_options.js rename to srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js diff --git a/static/src/assets/viz/1/quil/middlewares/deprecated_options.js.map b/srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/deprecated_options.js.map rename to srv/src/http/static/viz/1/quil/middlewares/deprecated_options.js.map diff --git a/static/src/assets/viz/1/quil/middlewares/fun_mode.cljc b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/fun_mode.cljc rename to srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc diff --git a/static/src/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/fun_mode.cljc.cache.edn rename to srv/src/http/static/viz/1/quil/middlewares/fun_mode.cljc.cache.edn diff --git a/static/src/assets/viz/1/quil/middlewares/fun_mode.js b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/fun_mode.js rename to srv/src/http/static/viz/1/quil/middlewares/fun_mode.js diff --git a/static/src/assets/viz/1/quil/middlewares/fun_mode.js.map b/srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/fun_mode.js.map rename to srv/src/http/static/viz/1/quil/middlewares/fun_mode.js.map diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc rename to srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn rename to srv/src/http/static/viz/1/quil/middlewares/navigation_2d.cljc.cache.edn diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_2d.js b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/navigation_2d.js rename to srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_2d.js.map b/srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/navigation_2d.js.map rename to srv/src/http/static/viz/1/quil/middlewares/navigation_2d.js.map diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc rename to srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn rename to srv/src/http/static/viz/1/quil/middlewares/navigation_3d.cljc.cache.edn diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_3d.js b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/navigation_3d.js rename to srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js diff --git a/static/src/assets/viz/1/quil/middlewares/navigation_3d.js.map b/srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map similarity index 100% rename from static/src/assets/viz/1/quil/middlewares/navigation_3d.js.map rename to srv/src/http/static/viz/1/quil/middlewares/navigation_3d.js.map diff --git a/static/src/assets/viz/1/quil/sketch.cljs b/srv/src/http/static/viz/1/quil/sketch.cljs similarity index 100% rename from static/src/assets/viz/1/quil/sketch.cljs rename to srv/src/http/static/viz/1/quil/sketch.cljs diff --git a/static/src/assets/viz/1/quil/sketch.cljs.cache.edn b/srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn similarity index 100% rename from static/src/assets/viz/1/quil/sketch.cljs.cache.edn rename to srv/src/http/static/viz/1/quil/sketch.cljs.cache.edn diff --git a/static/src/assets/viz/1/quil/sketch.js b/srv/src/http/static/viz/1/quil/sketch.js similarity index 100% rename from static/src/assets/viz/1/quil/sketch.js rename to srv/src/http/static/viz/1/quil/sketch.js diff --git a/static/src/assets/viz/1/quil/sketch.js.map b/srv/src/http/static/viz/1/quil/sketch.js.map similarity index 100% rename from static/src/assets/viz/1/quil/sketch.js.map rename to srv/src/http/static/viz/1/quil/sketch.js.map diff --git a/static/src/assets/viz/1/quil/util.cljc b/srv/src/http/static/viz/1/quil/util.cljc similarity index 100% rename from static/src/assets/viz/1/quil/util.cljc rename to srv/src/http/static/viz/1/quil/util.cljc diff --git a/static/src/assets/viz/1/quil/util.cljc.cache.edn b/srv/src/http/static/viz/1/quil/util.cljc.cache.edn similarity index 100% rename from static/src/assets/viz/1/quil/util.cljc.cache.edn rename to srv/src/http/static/viz/1/quil/util.cljc.cache.edn diff --git a/static/src/assets/viz/1/quil/util.js b/srv/src/http/static/viz/1/quil/util.js similarity index 100% rename from static/src/assets/viz/1/quil/util.js rename to srv/src/http/static/viz/1/quil/util.js diff --git a/static/src/assets/viz/1/quil/util.js.map b/srv/src/http/static/viz/1/quil/util.js.map similarity index 100% rename from static/src/assets/viz/1/quil/util.js.map rename to srv/src/http/static/viz/1/quil/util.js.map diff --git a/static/src/assets/viz/1/viz/core.cljs b/srv/src/http/static/viz/1/viz/core.cljs similarity index 100% rename from static/src/assets/viz/1/viz/core.cljs rename to srv/src/http/static/viz/1/viz/core.cljs diff --git a/static/src/assets/viz/1/viz/core.cljs.cache.edn b/srv/src/http/static/viz/1/viz/core.cljs.cache.edn similarity index 100% rename from static/src/assets/viz/1/viz/core.cljs.cache.edn rename to srv/src/http/static/viz/1/viz/core.cljs.cache.edn diff --git a/static/src/assets/viz/1/viz/core.js b/srv/src/http/static/viz/1/viz/core.js similarity index 100% rename from static/src/assets/viz/1/viz/core.js rename to srv/src/http/static/viz/1/viz/core.js diff --git a/static/src/assets/viz/1/viz/core.js.map b/srv/src/http/static/viz/1/viz/core.js.map similarity index 100% rename from static/src/assets/viz/1/viz/core.js.map rename to srv/src/http/static/viz/1/viz/core.js.map diff --git a/static/src/assets/viz/1/viz/forest.cljs b/srv/src/http/static/viz/1/viz/forest.cljs similarity index 100% rename from static/src/assets/viz/1/viz/forest.cljs rename to srv/src/http/static/viz/1/viz/forest.cljs diff --git a/static/src/assets/viz/1/viz/forest.cljs.cache.edn b/srv/src/http/static/viz/1/viz/forest.cljs.cache.edn similarity index 100% rename from static/src/assets/viz/1/viz/forest.cljs.cache.edn rename to srv/src/http/static/viz/1/viz/forest.cljs.cache.edn diff --git a/static/src/assets/viz/1/viz/forest.js b/srv/src/http/static/viz/1/viz/forest.js similarity index 100% rename from static/src/assets/viz/1/viz/forest.js rename to srv/src/http/static/viz/1/viz/forest.js diff --git a/static/src/assets/viz/1/viz/forest.js.map b/srv/src/http/static/viz/1/viz/forest.js.map similarity index 100% rename from static/src/assets/viz/1/viz/forest.js.map rename to srv/src/http/static/viz/1/viz/forest.js.map diff --git a/static/src/assets/viz/1/viz/ghost.cljs b/srv/src/http/static/viz/1/viz/ghost.cljs similarity index 100% rename from static/src/assets/viz/1/viz/ghost.cljs rename to srv/src/http/static/viz/1/viz/ghost.cljs diff --git a/static/src/assets/viz/1/viz/ghost.cljs.cache.edn b/srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn similarity index 100% rename from static/src/assets/viz/1/viz/ghost.cljs.cache.edn rename to srv/src/http/static/viz/1/viz/ghost.cljs.cache.edn diff --git a/static/src/assets/viz/1/viz/ghost.js b/srv/src/http/static/viz/1/viz/ghost.js similarity index 100% rename from static/src/assets/viz/1/viz/ghost.js rename to srv/src/http/static/viz/1/viz/ghost.js diff --git a/static/src/assets/viz/1/viz/ghost.js.map b/srv/src/http/static/viz/1/viz/ghost.js.map similarity index 100% rename from static/src/assets/viz/1/viz/ghost.js.map rename to srv/src/http/static/viz/1/viz/ghost.js.map diff --git a/static/src/assets/viz/1/viz/grid.cljs b/srv/src/http/static/viz/1/viz/grid.cljs similarity index 100% rename from static/src/assets/viz/1/viz/grid.cljs rename to srv/src/http/static/viz/1/viz/grid.cljs diff --git a/static/src/assets/viz/1/viz/grid.cljs.cache.edn b/srv/src/http/static/viz/1/viz/grid.cljs.cache.edn similarity index 100% rename from static/src/assets/viz/1/viz/grid.cljs.cache.edn rename to srv/src/http/static/viz/1/viz/grid.cljs.cache.edn diff --git a/static/src/assets/viz/1/viz/grid.js b/srv/src/http/static/viz/1/viz/grid.js similarity index 100% rename from static/src/assets/viz/1/viz/grid.js rename to srv/src/http/static/viz/1/viz/grid.js diff --git a/static/src/assets/viz/1/viz/grid.js.map b/srv/src/http/static/viz/1/viz/grid.js.map similarity index 100% rename from static/src/assets/viz/1/viz/grid.js.map rename to srv/src/http/static/viz/1/viz/grid.js.map diff --git a/static/src/assets/viz/2/cljs/core.cljs b/srv/src/http/static/viz/2/cljs/core.cljs similarity index 100% rename from static/src/assets/viz/2/cljs/core.cljs rename to srv/src/http/static/viz/2/cljs/core.cljs diff --git a/static/src/assets/viz/2/cljs/core.js b/srv/src/http/static/viz/2/cljs/core.js similarity index 100% rename from static/src/assets/viz/2/cljs/core.js rename to srv/src/http/static/viz/2/cljs/core.js diff --git a/static/src/assets/viz/2/cljs/core.js.map b/srv/src/http/static/viz/2/cljs/core.js.map similarity index 100% rename from static/src/assets/viz/2/cljs/core.js.map rename to srv/src/http/static/viz/2/cljs/core.js.map diff --git a/static/src/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/cljs/user/debug9D984AE.cljs.cache.json rename to srv/src/http/static/viz/2/cljs/user/debug9D984AE.cljs.cache.json diff --git a/static/src/assets/viz/2/cljs/user/debug9D984AE.js b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js similarity index 100% rename from static/src/assets/viz/2/cljs/user/debug9D984AE.js rename to srv/src/http/static/viz/2/cljs/user/debug9D984AE.js diff --git a/static/src/assets/viz/2/cljs/user/debug9D984AE.js.map b/srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map similarity index 100% rename from static/src/assets/viz/2/cljs/user/debug9D984AE.js.map rename to srv/src/http/static/viz/2/cljs/user/debug9D984AE.js.map diff --git a/static/src/assets/viz/2/cljs_deps.js b/srv/src/http/static/viz/2/cljs_deps.js similarity index 100% rename from static/src/assets/viz/2/cljs_deps.js rename to srv/src/http/static/viz/2/cljs_deps.js diff --git a/static/src/assets/viz/2/cljsc_opts.edn b/srv/src/http/static/viz/2/cljsc_opts.edn similarity index 100% rename from static/src/assets/viz/2/cljsc_opts.edn rename to srv/src/http/static/viz/2/cljsc_opts.edn diff --git a/static/src/assets/viz/2/clojure/set.cljs b/srv/src/http/static/viz/2/clojure/set.cljs similarity index 100% rename from static/src/assets/viz/2/clojure/set.cljs rename to srv/src/http/static/viz/2/clojure/set.cljs diff --git a/static/src/assets/viz/2/clojure/set.cljs.cache.json b/srv/src/http/static/viz/2/clojure/set.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/clojure/set.cljs.cache.json rename to srv/src/http/static/viz/2/clojure/set.cljs.cache.json diff --git a/static/src/assets/viz/2/clojure/set.js b/srv/src/http/static/viz/2/clojure/set.js similarity index 100% rename from static/src/assets/viz/2/clojure/set.js rename to srv/src/http/static/viz/2/clojure/set.js diff --git a/static/src/assets/viz/2/clojure/set.js.map b/srv/src/http/static/viz/2/clojure/set.js.map similarity index 100% rename from static/src/assets/viz/2/clojure/set.js.map rename to srv/src/http/static/viz/2/clojure/set.js.map diff --git a/static/src/assets/viz/2/clojure/string.cljs b/srv/src/http/static/viz/2/clojure/string.cljs similarity index 100% rename from static/src/assets/viz/2/clojure/string.cljs rename to srv/src/http/static/viz/2/clojure/string.cljs diff --git a/static/src/assets/viz/2/clojure/string.cljs.cache.json b/srv/src/http/static/viz/2/clojure/string.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/clojure/string.cljs.cache.json rename to srv/src/http/static/viz/2/clojure/string.cljs.cache.json diff --git a/static/src/assets/viz/2/clojure/string.js b/srv/src/http/static/viz/2/clojure/string.js similarity index 100% rename from static/src/assets/viz/2/clojure/string.js rename to srv/src/http/static/viz/2/clojure/string.js diff --git a/static/src/assets/viz/2/clojure/string.js.map b/srv/src/http/static/viz/2/clojure/string.js.map similarity index 100% rename from static/src/assets/viz/2/clojure/string.js.map rename to srv/src/http/static/viz/2/clojure/string.js.map diff --git a/static/src/assets/viz/2/goog/array/array.js b/srv/src/http/static/viz/2/goog/array/array.js similarity index 100% rename from static/src/assets/viz/2/goog/array/array.js rename to srv/src/http/static/viz/2/goog/array/array.js diff --git a/static/src/assets/viz/2/goog/asserts/asserts.js b/srv/src/http/static/viz/2/goog/asserts/asserts.js similarity index 100% rename from static/src/assets/viz/2/goog/asserts/asserts.js rename to srv/src/http/static/viz/2/goog/asserts/asserts.js diff --git a/static/src/assets/viz/2/goog/base.js b/srv/src/http/static/viz/2/goog/base.js similarity index 100% rename from static/src/assets/viz/2/goog/base.js rename to srv/src/http/static/viz/2/goog/base.js diff --git a/static/src/assets/viz/2/goog/debug/entrypointregistry.js b/srv/src/http/static/viz/2/goog/debug/entrypointregistry.js similarity index 100% rename from static/src/assets/viz/2/goog/debug/entrypointregistry.js rename to srv/src/http/static/viz/2/goog/debug/entrypointregistry.js diff --git a/static/src/assets/viz/2/goog/debug/error.js b/srv/src/http/static/viz/2/goog/debug/error.js similarity index 100% rename from static/src/assets/viz/2/goog/debug/error.js rename to srv/src/http/static/viz/2/goog/debug/error.js diff --git a/static/src/assets/viz/2/goog/deps.js b/srv/src/http/static/viz/2/goog/deps.js similarity index 100% rename from static/src/assets/viz/2/goog/deps.js rename to srv/src/http/static/viz/2/goog/deps.js diff --git a/static/src/assets/viz/2/goog/disposable/disposable.js b/srv/src/http/static/viz/2/goog/disposable/disposable.js similarity index 100% rename from static/src/assets/viz/2/goog/disposable/disposable.js rename to srv/src/http/static/viz/2/goog/disposable/disposable.js diff --git a/static/src/assets/viz/2/goog/disposable/idisposable.js b/srv/src/http/static/viz/2/goog/disposable/idisposable.js similarity index 100% rename from static/src/assets/viz/2/goog/disposable/idisposable.js rename to srv/src/http/static/viz/2/goog/disposable/idisposable.js diff --git a/static/src/assets/viz/2/goog/dom/asserts.js b/srv/src/http/static/viz/2/goog/dom/asserts.js similarity index 100% rename from static/src/assets/viz/2/goog/dom/asserts.js rename to srv/src/http/static/viz/2/goog/dom/asserts.js diff --git a/static/src/assets/viz/2/goog/dom/browserfeature.js b/srv/src/http/static/viz/2/goog/dom/browserfeature.js similarity index 100% rename from static/src/assets/viz/2/goog/dom/browserfeature.js rename to srv/src/http/static/viz/2/goog/dom/browserfeature.js diff --git a/static/src/assets/viz/2/goog/dom/dom.js b/srv/src/http/static/viz/2/goog/dom/dom.js similarity index 100% rename from static/src/assets/viz/2/goog/dom/dom.js rename to srv/src/http/static/viz/2/goog/dom/dom.js diff --git a/static/src/assets/viz/2/goog/dom/htmlelement.js b/srv/src/http/static/viz/2/goog/dom/htmlelement.js similarity index 100% rename from static/src/assets/viz/2/goog/dom/htmlelement.js rename to srv/src/http/static/viz/2/goog/dom/htmlelement.js diff --git a/static/src/assets/viz/2/goog/dom/nodetype.js b/srv/src/http/static/viz/2/goog/dom/nodetype.js similarity index 100% rename from static/src/assets/viz/2/goog/dom/nodetype.js rename to srv/src/http/static/viz/2/goog/dom/nodetype.js diff --git a/static/src/assets/viz/2/goog/dom/safe.js b/srv/src/http/static/viz/2/goog/dom/safe.js similarity index 100% rename from static/src/assets/viz/2/goog/dom/safe.js rename to srv/src/http/static/viz/2/goog/dom/safe.js diff --git a/static/src/assets/viz/2/goog/dom/tagname.js b/srv/src/http/static/viz/2/goog/dom/tagname.js similarity index 100% rename from static/src/assets/viz/2/goog/dom/tagname.js rename to srv/src/http/static/viz/2/goog/dom/tagname.js diff --git a/static/src/assets/viz/2/goog/dom/tags.js b/srv/src/http/static/viz/2/goog/dom/tags.js similarity index 100% rename from static/src/assets/viz/2/goog/dom/tags.js rename to srv/src/http/static/viz/2/goog/dom/tags.js diff --git a/static/src/assets/viz/2/goog/events/browserevent.js b/srv/src/http/static/viz/2/goog/events/browserevent.js similarity index 100% rename from static/src/assets/viz/2/goog/events/browserevent.js rename to srv/src/http/static/viz/2/goog/events/browserevent.js diff --git a/static/src/assets/viz/2/goog/events/browserfeature.js b/srv/src/http/static/viz/2/goog/events/browserfeature.js similarity index 100% rename from static/src/assets/viz/2/goog/events/browserfeature.js rename to srv/src/http/static/viz/2/goog/events/browserfeature.js diff --git a/static/src/assets/viz/2/goog/events/event.js b/srv/src/http/static/viz/2/goog/events/event.js similarity index 100% rename from static/src/assets/viz/2/goog/events/event.js rename to srv/src/http/static/viz/2/goog/events/event.js diff --git a/static/src/assets/viz/2/goog/events/eventid.js b/srv/src/http/static/viz/2/goog/events/eventid.js similarity index 100% rename from static/src/assets/viz/2/goog/events/eventid.js rename to srv/src/http/static/viz/2/goog/events/eventid.js diff --git a/static/src/assets/viz/2/goog/events/events.js b/srv/src/http/static/viz/2/goog/events/events.js similarity index 100% rename from static/src/assets/viz/2/goog/events/events.js rename to srv/src/http/static/viz/2/goog/events/events.js diff --git a/static/src/assets/viz/2/goog/events/eventtype.js b/srv/src/http/static/viz/2/goog/events/eventtype.js similarity index 100% rename from static/src/assets/viz/2/goog/events/eventtype.js rename to srv/src/http/static/viz/2/goog/events/eventtype.js diff --git a/static/src/assets/viz/2/goog/events/listenable.js b/srv/src/http/static/viz/2/goog/events/listenable.js similarity index 100% rename from static/src/assets/viz/2/goog/events/listenable.js rename to srv/src/http/static/viz/2/goog/events/listenable.js diff --git a/static/src/assets/viz/2/goog/events/listener.js b/srv/src/http/static/viz/2/goog/events/listener.js similarity index 100% rename from static/src/assets/viz/2/goog/events/listener.js rename to srv/src/http/static/viz/2/goog/events/listener.js diff --git a/static/src/assets/viz/2/goog/events/listenermap.js b/srv/src/http/static/viz/2/goog/events/listenermap.js similarity index 100% rename from static/src/assets/viz/2/goog/events/listenermap.js rename to srv/src/http/static/viz/2/goog/events/listenermap.js diff --git a/static/src/assets/viz/2/goog/fs/url.js b/srv/src/http/static/viz/2/goog/fs/url.js similarity index 100% rename from static/src/assets/viz/2/goog/fs/url.js rename to srv/src/http/static/viz/2/goog/fs/url.js diff --git a/static/src/assets/viz/2/goog/functions/functions.js b/srv/src/http/static/viz/2/goog/functions/functions.js similarity index 100% rename from static/src/assets/viz/2/goog/functions/functions.js rename to srv/src/http/static/viz/2/goog/functions/functions.js diff --git a/static/src/assets/viz/2/goog/html/safehtml.js b/srv/src/http/static/viz/2/goog/html/safehtml.js similarity index 100% rename from static/src/assets/viz/2/goog/html/safehtml.js rename to srv/src/http/static/viz/2/goog/html/safehtml.js diff --git a/static/src/assets/viz/2/goog/html/safescript.js b/srv/src/http/static/viz/2/goog/html/safescript.js similarity index 100% rename from static/src/assets/viz/2/goog/html/safescript.js rename to srv/src/http/static/viz/2/goog/html/safescript.js diff --git a/static/src/assets/viz/2/goog/html/safestyle.js b/srv/src/http/static/viz/2/goog/html/safestyle.js similarity index 100% rename from static/src/assets/viz/2/goog/html/safestyle.js rename to srv/src/http/static/viz/2/goog/html/safestyle.js diff --git a/static/src/assets/viz/2/goog/html/safestylesheet.js b/srv/src/http/static/viz/2/goog/html/safestylesheet.js similarity index 100% rename from static/src/assets/viz/2/goog/html/safestylesheet.js rename to srv/src/http/static/viz/2/goog/html/safestylesheet.js diff --git a/static/src/assets/viz/2/goog/html/safeurl.js b/srv/src/http/static/viz/2/goog/html/safeurl.js similarity index 100% rename from static/src/assets/viz/2/goog/html/safeurl.js rename to srv/src/http/static/viz/2/goog/html/safeurl.js diff --git a/static/src/assets/viz/2/goog/html/trustedresourceurl.js b/srv/src/http/static/viz/2/goog/html/trustedresourceurl.js similarity index 100% rename from static/src/assets/viz/2/goog/html/trustedresourceurl.js rename to srv/src/http/static/viz/2/goog/html/trustedresourceurl.js diff --git a/static/src/assets/viz/2/goog/html/uncheckedconversions.js b/srv/src/http/static/viz/2/goog/html/uncheckedconversions.js similarity index 100% rename from static/src/assets/viz/2/goog/html/uncheckedconversions.js rename to srv/src/http/static/viz/2/goog/html/uncheckedconversions.js diff --git a/static/src/assets/viz/2/goog/i18n/bidi.js b/srv/src/http/static/viz/2/goog/i18n/bidi.js similarity index 100% rename from static/src/assets/viz/2/goog/i18n/bidi.js rename to srv/src/http/static/viz/2/goog/i18n/bidi.js diff --git a/static/src/assets/viz/2/goog/iter/iter.js b/srv/src/http/static/viz/2/goog/iter/iter.js similarity index 100% rename from static/src/assets/viz/2/goog/iter/iter.js rename to srv/src/http/static/viz/2/goog/iter/iter.js diff --git a/static/src/assets/viz/2/goog/labs/useragent/browser.js b/srv/src/http/static/viz/2/goog/labs/useragent/browser.js similarity index 100% rename from static/src/assets/viz/2/goog/labs/useragent/browser.js rename to srv/src/http/static/viz/2/goog/labs/useragent/browser.js diff --git a/static/src/assets/viz/2/goog/labs/useragent/engine.js b/srv/src/http/static/viz/2/goog/labs/useragent/engine.js similarity index 100% rename from static/src/assets/viz/2/goog/labs/useragent/engine.js rename to srv/src/http/static/viz/2/goog/labs/useragent/engine.js diff --git a/static/src/assets/viz/2/goog/labs/useragent/platform.js b/srv/src/http/static/viz/2/goog/labs/useragent/platform.js similarity index 100% rename from static/src/assets/viz/2/goog/labs/useragent/platform.js rename to srv/src/http/static/viz/2/goog/labs/useragent/platform.js diff --git a/static/src/assets/viz/2/goog/labs/useragent/util.js b/srv/src/http/static/viz/2/goog/labs/useragent/util.js similarity index 100% rename from static/src/assets/viz/2/goog/labs/useragent/util.js rename to srv/src/http/static/viz/2/goog/labs/useragent/util.js diff --git a/static/src/assets/viz/2/goog/math/coordinate.js b/srv/src/http/static/viz/2/goog/math/coordinate.js similarity index 100% rename from static/src/assets/viz/2/goog/math/coordinate.js rename to srv/src/http/static/viz/2/goog/math/coordinate.js diff --git a/static/src/assets/viz/2/goog/math/integer.js b/srv/src/http/static/viz/2/goog/math/integer.js similarity index 100% rename from static/src/assets/viz/2/goog/math/integer.js rename to srv/src/http/static/viz/2/goog/math/integer.js diff --git a/static/src/assets/viz/2/goog/math/long.js b/srv/src/http/static/viz/2/goog/math/long.js similarity index 100% rename from static/src/assets/viz/2/goog/math/long.js rename to srv/src/http/static/viz/2/goog/math/long.js diff --git a/static/src/assets/viz/2/goog/math/math.js b/srv/src/http/static/viz/2/goog/math/math.js similarity index 100% rename from static/src/assets/viz/2/goog/math/math.js rename to srv/src/http/static/viz/2/goog/math/math.js diff --git a/static/src/assets/viz/2/goog/math/size.js b/srv/src/http/static/viz/2/goog/math/size.js similarity index 100% rename from static/src/assets/viz/2/goog/math/size.js rename to srv/src/http/static/viz/2/goog/math/size.js diff --git a/static/src/assets/viz/2/goog/object/object.js b/srv/src/http/static/viz/2/goog/object/object.js similarity index 100% rename from static/src/assets/viz/2/goog/object/object.js rename to srv/src/http/static/viz/2/goog/object/object.js diff --git a/static/src/assets/viz/2/goog/reflect/reflect.js b/srv/src/http/static/viz/2/goog/reflect/reflect.js similarity index 100% rename from static/src/assets/viz/2/goog/reflect/reflect.js rename to srv/src/http/static/viz/2/goog/reflect/reflect.js diff --git a/static/src/assets/viz/2/goog/string/const.js b/srv/src/http/static/viz/2/goog/string/const.js similarity index 100% rename from static/src/assets/viz/2/goog/string/const.js rename to srv/src/http/static/viz/2/goog/string/const.js diff --git a/static/src/assets/viz/2/goog/string/string.js b/srv/src/http/static/viz/2/goog/string/string.js similarity index 100% rename from static/src/assets/viz/2/goog/string/string.js rename to srv/src/http/static/viz/2/goog/string/string.js diff --git a/static/src/assets/viz/2/goog/string/stringbuffer.js b/srv/src/http/static/viz/2/goog/string/stringbuffer.js similarity index 100% rename from static/src/assets/viz/2/goog/string/stringbuffer.js rename to srv/src/http/static/viz/2/goog/string/stringbuffer.js diff --git a/static/src/assets/viz/2/goog/string/stringformat.js b/srv/src/http/static/viz/2/goog/string/stringformat.js similarity index 100% rename from static/src/assets/viz/2/goog/string/stringformat.js rename to srv/src/http/static/viz/2/goog/string/stringformat.js diff --git a/static/src/assets/viz/2/goog/string/typedstring.js b/srv/src/http/static/viz/2/goog/string/typedstring.js similarity index 100% rename from static/src/assets/viz/2/goog/string/typedstring.js rename to srv/src/http/static/viz/2/goog/string/typedstring.js diff --git a/static/src/assets/viz/2/goog/structs/map.js b/srv/src/http/static/viz/2/goog/structs/map.js similarity index 100% rename from static/src/assets/viz/2/goog/structs/map.js rename to srv/src/http/static/viz/2/goog/structs/map.js diff --git a/static/src/assets/viz/2/goog/structs/structs.js b/srv/src/http/static/viz/2/goog/structs/structs.js similarity index 100% rename from static/src/assets/viz/2/goog/structs/structs.js rename to srv/src/http/static/viz/2/goog/structs/structs.js diff --git a/static/src/assets/viz/2/goog/uri/uri.js b/srv/src/http/static/viz/2/goog/uri/uri.js similarity index 100% rename from static/src/assets/viz/2/goog/uri/uri.js rename to srv/src/http/static/viz/2/goog/uri/uri.js diff --git a/static/src/assets/viz/2/goog/uri/utils.js b/srv/src/http/static/viz/2/goog/uri/utils.js similarity index 100% rename from static/src/assets/viz/2/goog/uri/utils.js rename to srv/src/http/static/viz/2/goog/uri/utils.js diff --git a/static/src/assets/viz/2/goog/useragent/useragent.js b/srv/src/http/static/viz/2/goog/useragent/useragent.js similarity index 100% rename from static/src/assets/viz/2/goog/useragent/useragent.js rename to srv/src/http/static/viz/2/goog/useragent/useragent.js diff --git a/static/src/assets/viz/2/process/env.cljs b/srv/src/http/static/viz/2/process/env.cljs similarity index 100% rename from static/src/assets/viz/2/process/env.cljs rename to srv/src/http/static/viz/2/process/env.cljs diff --git a/static/src/assets/viz/2/process/env.cljs.cache.json b/srv/src/http/static/viz/2/process/env.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/process/env.cljs.cache.json rename to srv/src/http/static/viz/2/process/env.cljs.cache.json diff --git a/static/src/assets/viz/2/process/env.js b/srv/src/http/static/viz/2/process/env.js similarity index 100% rename from static/src/assets/viz/2/process/env.js rename to srv/src/http/static/viz/2/process/env.js diff --git a/static/src/assets/viz/2/process/env.js.map b/srv/src/http/static/viz/2/process/env.js.map similarity index 100% rename from static/src/assets/viz/2/process/env.js.map rename to srv/src/http/static/viz/2/process/env.js.map diff --git a/static/src/assets/viz/2/processing.js b/srv/src/http/static/viz/2/processing.js similarity index 100% rename from static/src/assets/viz/2/processing.js rename to srv/src/http/static/viz/2/processing.js diff --git a/static/src/assets/viz/2/quil/core.cljc b/srv/src/http/static/viz/2/quil/core.cljc similarity index 100% rename from static/src/assets/viz/2/quil/core.cljc rename to srv/src/http/static/viz/2/quil/core.cljc diff --git a/static/src/assets/viz/2/quil/core.cljc.cache.json b/srv/src/http/static/viz/2/quil/core.cljc.cache.json similarity index 100% rename from static/src/assets/viz/2/quil/core.cljc.cache.json rename to srv/src/http/static/viz/2/quil/core.cljc.cache.json diff --git a/static/src/assets/viz/2/quil/core.js b/srv/src/http/static/viz/2/quil/core.js similarity index 100% rename from static/src/assets/viz/2/quil/core.js rename to srv/src/http/static/viz/2/quil/core.js diff --git a/static/src/assets/viz/2/quil/core.js.map b/srv/src/http/static/viz/2/quil/core.js.map similarity index 100% rename from static/src/assets/viz/2/quil/core.js.map rename to srv/src/http/static/viz/2/quil/core.js.map diff --git a/static/src/assets/viz/2/quil/middleware.cljc b/srv/src/http/static/viz/2/quil/middleware.cljc similarity index 100% rename from static/src/assets/viz/2/quil/middleware.cljc rename to srv/src/http/static/viz/2/quil/middleware.cljc diff --git a/static/src/assets/viz/2/quil/middleware.cljc.cache.json b/srv/src/http/static/viz/2/quil/middleware.cljc.cache.json similarity index 100% rename from static/src/assets/viz/2/quil/middleware.cljc.cache.json rename to srv/src/http/static/viz/2/quil/middleware.cljc.cache.json diff --git a/static/src/assets/viz/2/quil/middleware.js b/srv/src/http/static/viz/2/quil/middleware.js similarity index 100% rename from static/src/assets/viz/2/quil/middleware.js rename to srv/src/http/static/viz/2/quil/middleware.js diff --git a/static/src/assets/viz/2/quil/middleware.js.map b/srv/src/http/static/viz/2/quil/middleware.js.map similarity index 100% rename from static/src/assets/viz/2/quil/middleware.js.map rename to srv/src/http/static/viz/2/quil/middleware.js.map diff --git a/static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc rename to srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc diff --git a/static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/deprecated_options.cljc.cache.json rename to srv/src/http/static/viz/2/quil/middlewares/deprecated_options.cljc.cache.json diff --git a/static/src/assets/viz/2/quil/middlewares/deprecated_options.js b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/deprecated_options.js rename to srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js diff --git a/static/src/assets/viz/2/quil/middlewares/deprecated_options.js.map b/srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/deprecated_options.js.map rename to srv/src/http/static/viz/2/quil/middlewares/deprecated_options.js.map diff --git a/static/src/assets/viz/2/quil/middlewares/fun_mode.cljc b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/fun_mode.cljc rename to srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc diff --git a/static/src/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/fun_mode.cljc.cache.json rename to srv/src/http/static/viz/2/quil/middlewares/fun_mode.cljc.cache.json diff --git a/static/src/assets/viz/2/quil/middlewares/fun_mode.js b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/fun_mode.js rename to srv/src/http/static/viz/2/quil/middlewares/fun_mode.js diff --git a/static/src/assets/viz/2/quil/middlewares/fun_mode.js.map b/srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/fun_mode.js.map rename to srv/src/http/static/viz/2/quil/middlewares/fun_mode.js.map diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc rename to srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/navigation_2d.cljc.cache.json rename to srv/src/http/static/viz/2/quil/middlewares/navigation_2d.cljc.cache.json diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_2d.js b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/navigation_2d.js rename to srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_2d.js.map b/srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/navigation_2d.js.map rename to srv/src/http/static/viz/2/quil/middlewares/navigation_2d.js.map diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc rename to srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/navigation_3d.cljc.cache.json rename to srv/src/http/static/viz/2/quil/middlewares/navigation_3d.cljc.cache.json diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_3d.js b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/navigation_3d.js rename to srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js diff --git a/static/src/assets/viz/2/quil/middlewares/navigation_3d.js.map b/srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map similarity index 100% rename from static/src/assets/viz/2/quil/middlewares/navigation_3d.js.map rename to srv/src/http/static/viz/2/quil/middlewares/navigation_3d.js.map diff --git a/static/src/assets/viz/2/quil/sketch.cljs b/srv/src/http/static/viz/2/quil/sketch.cljs similarity index 100% rename from static/src/assets/viz/2/quil/sketch.cljs rename to srv/src/http/static/viz/2/quil/sketch.cljs diff --git a/static/src/assets/viz/2/quil/sketch.cljs.cache.json b/srv/src/http/static/viz/2/quil/sketch.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/quil/sketch.cljs.cache.json rename to srv/src/http/static/viz/2/quil/sketch.cljs.cache.json diff --git a/static/src/assets/viz/2/quil/sketch.js b/srv/src/http/static/viz/2/quil/sketch.js similarity index 100% rename from static/src/assets/viz/2/quil/sketch.js rename to srv/src/http/static/viz/2/quil/sketch.js diff --git a/static/src/assets/viz/2/quil/sketch.js.map b/srv/src/http/static/viz/2/quil/sketch.js.map similarity index 100% rename from static/src/assets/viz/2/quil/sketch.js.map rename to srv/src/http/static/viz/2/quil/sketch.js.map diff --git a/static/src/assets/viz/2/quil/util.cljc b/srv/src/http/static/viz/2/quil/util.cljc similarity index 100% rename from static/src/assets/viz/2/quil/util.cljc rename to srv/src/http/static/viz/2/quil/util.cljc diff --git a/static/src/assets/viz/2/quil/util.cljc.cache.json b/srv/src/http/static/viz/2/quil/util.cljc.cache.json similarity index 100% rename from static/src/assets/viz/2/quil/util.cljc.cache.json rename to srv/src/http/static/viz/2/quil/util.cljc.cache.json diff --git a/static/src/assets/viz/2/quil/util.js b/srv/src/http/static/viz/2/quil/util.js similarity index 100% rename from static/src/assets/viz/2/quil/util.js rename to srv/src/http/static/viz/2/quil/util.js diff --git a/static/src/assets/viz/2/quil/util.js.map b/srv/src/http/static/viz/2/quil/util.js.map similarity index 100% rename from static/src/assets/viz/2/quil/util.js.map rename to srv/src/http/static/viz/2/quil/util.js.map diff --git a/static/src/assets/viz/2/viz/core.cljs b/srv/src/http/static/viz/2/viz/core.cljs similarity index 100% rename from static/src/assets/viz/2/viz/core.cljs rename to srv/src/http/static/viz/2/viz/core.cljs diff --git a/static/src/assets/viz/2/viz/core.cljs.cache.json b/srv/src/http/static/viz/2/viz/core.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/viz/core.cljs.cache.json rename to srv/src/http/static/viz/2/viz/core.cljs.cache.json diff --git a/static/src/assets/viz/2/viz/core.js b/srv/src/http/static/viz/2/viz/core.js similarity index 100% rename from static/src/assets/viz/2/viz/core.js rename to srv/src/http/static/viz/2/viz/core.js diff --git a/static/src/assets/viz/2/viz/core.js.map b/srv/src/http/static/viz/2/viz/core.js.map similarity index 100% rename from static/src/assets/viz/2/viz/core.js.map rename to srv/src/http/static/viz/2/viz/core.js.map diff --git a/static/src/assets/viz/2/viz/debug.cljs b/srv/src/http/static/viz/2/viz/debug.cljs similarity index 100% rename from static/src/assets/viz/2/viz/debug.cljs rename to srv/src/http/static/viz/2/viz/debug.cljs diff --git a/static/src/assets/viz/2/viz/debug.cljs.cache.json b/srv/src/http/static/viz/2/viz/debug.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/viz/debug.cljs.cache.json rename to srv/src/http/static/viz/2/viz/debug.cljs.cache.json diff --git a/static/src/assets/viz/2/viz/debug.js b/srv/src/http/static/viz/2/viz/debug.js similarity index 100% rename from static/src/assets/viz/2/viz/debug.js rename to srv/src/http/static/viz/2/viz/debug.js diff --git a/static/src/assets/viz/2/viz/debug.js.map b/srv/src/http/static/viz/2/viz/debug.js.map similarity index 100% rename from static/src/assets/viz/2/viz/debug.js.map rename to srv/src/http/static/viz/2/viz/debug.js.map diff --git a/static/src/assets/viz/2/viz/dial.cljs b/srv/src/http/static/viz/2/viz/dial.cljs similarity index 100% rename from static/src/assets/viz/2/viz/dial.cljs rename to srv/src/http/static/viz/2/viz/dial.cljs diff --git a/static/src/assets/viz/2/viz/dial.cljs.cache.json b/srv/src/http/static/viz/2/viz/dial.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/viz/dial.cljs.cache.json rename to srv/src/http/static/viz/2/viz/dial.cljs.cache.json diff --git a/static/src/assets/viz/2/viz/dial.js b/srv/src/http/static/viz/2/viz/dial.js similarity index 100% rename from static/src/assets/viz/2/viz/dial.js rename to srv/src/http/static/viz/2/viz/dial.js diff --git a/static/src/assets/viz/2/viz/dial.js.map b/srv/src/http/static/viz/2/viz/dial.js.map similarity index 100% rename from static/src/assets/viz/2/viz/dial.js.map rename to srv/src/http/static/viz/2/viz/dial.js.map diff --git a/static/src/assets/viz/2/viz/forest.cljs b/srv/src/http/static/viz/2/viz/forest.cljs similarity index 100% rename from static/src/assets/viz/2/viz/forest.cljs rename to srv/src/http/static/viz/2/viz/forest.cljs diff --git a/static/src/assets/viz/2/viz/forest.cljs.cache.json b/srv/src/http/static/viz/2/viz/forest.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/viz/forest.cljs.cache.json rename to srv/src/http/static/viz/2/viz/forest.cljs.cache.json diff --git a/static/src/assets/viz/2/viz/forest.js b/srv/src/http/static/viz/2/viz/forest.js similarity index 100% rename from static/src/assets/viz/2/viz/forest.js rename to srv/src/http/static/viz/2/viz/forest.js diff --git a/static/src/assets/viz/2/viz/forest.js.map b/srv/src/http/static/viz/2/viz/forest.js.map similarity index 100% rename from static/src/assets/viz/2/viz/forest.js.map rename to srv/src/http/static/viz/2/viz/forest.js.map diff --git a/static/src/assets/viz/2/viz/ghost.cljs b/srv/src/http/static/viz/2/viz/ghost.cljs similarity index 100% rename from static/src/assets/viz/2/viz/ghost.cljs rename to srv/src/http/static/viz/2/viz/ghost.cljs diff --git a/static/src/assets/viz/2/viz/ghost.cljs.cache.json b/srv/src/http/static/viz/2/viz/ghost.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/viz/ghost.cljs.cache.json rename to srv/src/http/static/viz/2/viz/ghost.cljs.cache.json diff --git a/static/src/assets/viz/2/viz/ghost.js b/srv/src/http/static/viz/2/viz/ghost.js similarity index 100% rename from static/src/assets/viz/2/viz/ghost.js rename to srv/src/http/static/viz/2/viz/ghost.js diff --git a/static/src/assets/viz/2/viz/ghost.js.map b/srv/src/http/static/viz/2/viz/ghost.js.map similarity index 100% rename from static/src/assets/viz/2/viz/ghost.js.map rename to srv/src/http/static/viz/2/viz/ghost.js.map diff --git a/static/src/assets/viz/2/viz/grid.cljs b/srv/src/http/static/viz/2/viz/grid.cljs similarity index 100% rename from static/src/assets/viz/2/viz/grid.cljs rename to srv/src/http/static/viz/2/viz/grid.cljs diff --git a/static/src/assets/viz/2/viz/grid.cljs.cache.json b/srv/src/http/static/viz/2/viz/grid.cljs.cache.json similarity index 100% rename from static/src/assets/viz/2/viz/grid.cljs.cache.json rename to srv/src/http/static/viz/2/viz/grid.cljs.cache.json diff --git a/static/src/assets/viz/2/viz/grid.js b/srv/src/http/static/viz/2/viz/grid.js similarity index 100% rename from static/src/assets/viz/2/viz/grid.js rename to srv/src/http/static/viz/2/viz/grid.js diff --git a/static/src/assets/viz/2/viz/grid.js.map b/srv/src/http/static/viz/2/viz/grid.js.map similarity index 100% rename from static/src/assets/viz/2/viz/grid.js.map rename to srv/src/http/static/viz/2/viz/grid.js.map diff --git a/static/src/assets/wtfpl.txt b/srv/src/http/static/wtfpl.txt similarity index 100% rename from static/src/assets/wtfpl.txt rename to srv/src/http/static/wtfpl.txt diff --git a/srv/src/http/tpl.go b/srv/src/http/tpl.go index d647317..65f23a7 100644 --- a/srv/src/http/tpl.go +++ b/srv/src/http/tpl.go @@ -31,10 +31,12 @@ func (a *api) mustParseTpl(name string) *template.Template { blogURL := func(path string) string { + // filepath.Join strips trailing slash, but we want to keep it trailingSlash := strings.HasSuffix(path, "/") - path = filepath.Join(a.params.PathPrefix, "/v2", path) - if trailingSlash { + path = filepath.Join("/", a.params.PathPrefix, path) + + if trailingSlash && path != "/" { path += "/" } @@ -43,6 +45,10 @@ func (a *api) mustParseTpl(name string) *template.Template { tpl := template.New("").Funcs(template.FuncMap{ "BlogURL": blogURL, + "StaticURL": func(path string) string { + path = filepath.Join("static", path) + return blogURL(path) + }, "AssetURL": func(id string) string { path := filepath.Join("assets", id) return blogURL(path) diff --git a/srv/src/http/tpl/base.html b/srv/src/http/tpl/base.html index 6031919..e209034 100644 --- a/srv/src/http/tpl/base.html +++ b/srv/src/http/tpl/base.html @@ -3,11 +3,11 @@ - - - - - + + + + + @@ -54,7 +54,7 @@ diff --git a/srv/src/http/tpl/follow.html b/srv/src/http/tpl/follow.html index 8cf9dc6..48b7541 100644 --- a/srv/src/http/tpl/follow.html +++ b/srv/src/http/tpl/follow.html @@ -1,6 +1,6 @@ {{ define "body" }} - +

Here's your options for receiving updates about new blog posts: @@ -67,7 +67,7 @@ const emailStatus = document.getElementById("emailStatus"); emailSubscribe.onclick = async () => { - const api = await import("/assets/api.js"); + const api = await import("{{ StaticURL "api.js" }}"); emailSubscribe.disabled = true; emailSubscribe.className = "";