From 1e9ef58a90e5c8fd9ce32ed480d1123fa145af80 Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Sun, 21 Apr 2019 21:20:53 -0400 Subject: [PATCH 01/16] better error pages --- site/src/routes/_error.svelte | 70 +++++++++++++++++++++++++++-------- 1 file changed, 54 insertions(+), 16 deletions(-) diff --git a/site/src/routes/_error.svelte b/site/src/routes/_error.svelte index 45dfbaef97..0071e3cea7 100644 --- a/site/src/routes/_error.svelte +++ b/site/src/routes/_error.svelte @@ -1,33 +1,71 @@ - - - {status} - -

{status}

- -

{error.message}

- -{#if dev && error.stack} -
{error.stack}
-{/if} + // we don't want to use here, + // because we only care about the online state when + // the page first loads + let online = typeof navigator !== 'undefined' + ? navigator.onLine + : true; + \ No newline at end of file + + /* @media (min-width: 480px) { + h1 { font-size: 4em } + } */ + + + + {status} + + +
+ {#if online} +

Yikes!

+ + {#if error.message} +

{status}: {error.message}

+ {:else} +

Encountered a {status} error

+ {/if} + + {#if dev && error.stack} +
{error.stack}
+ {:else} + {#if status >= 500} +

Please try reloading the page.

+ {/if} + +

If the error persists, please drop by Discord chatroom and let us know, or raise an issue on GitHub. Thanks!

+ {/if} + {:else} +

It looks like you're offline

+ +

Reload the page once you've found the internet.

+ {/if} +
\ No newline at end of file From 18c2e6b675af61a6e8dcf186c81b0ffb0722d939 Mon Sep 17 00:00:00 2001 From: Luke Edwards Date: Sun, 21 Apr 2019 22:24:32 -0700 Subject: [PATCH 02/16] =?UTF-8?q?site:=20remove=20=E2=80=9Ccompression?= =?UTF-8?q?=E2=80=9D=20lib;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - handled better by Cloudflare --- site/package-lock.json | 63 ++++++++---------------------------------- site/package.json | 1 - site/src/server.js | 4 +-- 3 files changed, 12 insertions(+), 56 deletions(-) diff --git a/site/package-lock.json b/site/package-lock.json index b977151326..47fba5c0b5 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -1917,28 +1917,6 @@ "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", "dev": true }, - "compressible": { - "version": "2.0.16", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.16.tgz", - "integrity": "sha512-JQfEOdnI7dASwCuSPWIeVYwc/zMsu/+tRhoUvEfXz2gxOA2DNjmG5vhtFdBlhWPPGo+RdT9S3tgc/uH5qgDiiA==", - "requires": { - "mime-db": ">= 1.38.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - } - }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -2617,8 +2595,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -2642,15 +2619,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -2667,22 +2642,19 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -2813,8 +2785,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -2828,7 +2799,6 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2845,7 +2815,6 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2854,15 +2823,13 @@ "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2883,7 +2850,6 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -2972,8 +2938,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -2987,7 +2952,6 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -3083,8 +3047,7 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -3126,7 +3089,6 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -3148,7 +3110,6 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -3197,15 +3158,13 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", - "dev": true, - "optional": true + "dev": true } } }, diff --git a/site/package.json b/site/package.json index 8fff42e6c1..de822e4faa 100644 --- a/site/package.json +++ b/site/package.json @@ -15,7 +15,6 @@ }, "dependencies": { "codemirror": "^5.44.0", - "compression": "^1.7.3", "devalue": "^1.1.0", "do-not-zip": "^1.0.0", "dotenv": "^6.2.0", diff --git a/site/src/server.js b/site/src/server.js index 084b52b5b6..7c31cf18cf 100644 --- a/site/src/server.js +++ b/site/src/server.js @@ -1,6 +1,5 @@ import 'dotenv/config'; import express from 'express'; -import compression from 'compression'; import session from 'express-session'; import passport from 'passport'; import { Strategy } from 'passport-github'; @@ -93,7 +92,6 @@ if (process.env.GITHUB_CLIENT_ID) { } app.use( - compression({ threshold: 0 }), serve('static', { setHeaders: res => res.setHeader('Access-Control-Allow-Origin', '*') }), sapper.middleware({ // TODO update Sapper so that we can pass props to the client @@ -111,4 +109,4 @@ app.use( }; } }) -).listen(process.env.PORT); \ No newline at end of file +).listen(process.env.PORT); From 4c3499f57872aa52bb76dcc7a30d51a104624f7f Mon Sep 17 00:00:00 2001 From: Luke Edwards Date: Sun, 21 Apr 2019 22:31:50 -0700 Subject: [PATCH 03/16] fix(site): remove "dotenv" from runtime --- site/package-lock.json | 7 ++++--- site/package.json | 2 +- site/src/server.js | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/site/package-lock.json b/site/package-lock.json index 47fba5c0b5..e01503eba7 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -2130,9 +2130,10 @@ "dev": true }, "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==" + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-7.0.0.tgz", + "integrity": "sha512-M3NhsLbV1i6HuGzBUH8vXrtxOk+tWmzWKDMbAVSUp3Zsjm7ywFeuwrUXhmhQyRK1q5B5GGy7hcXPbj3bnfZg2g==", + "dev": true }, "ee-first": { "version": "1.1.1", diff --git a/site/package.json b/site/package.json index de822e4faa..5f31257942 100644 --- a/site/package.json +++ b/site/package.json @@ -17,7 +17,6 @@ "codemirror": "^5.44.0", "devalue": "^1.1.0", "do-not-zip": "^1.0.0", - "dotenv": "^6.2.0", "express": "^4.16.4", "express-session": "^1.15.6", "golden-fleece": "^1.0.9", @@ -41,6 +40,7 @@ "@sveltejs/svelte-repl": "0.0.10", "chokidar": "^2.1.2", "degit": "^2.1.3", + "dotenv": "^7.0.0", "eslint-plugin-svelte3": "^0.4.4", "esm": "^3.2.22", "jimp": "^0.6.0", diff --git a/site/src/server.js b/site/src/server.js index 7c31cf18cf..6d9a9539b7 100644 --- a/site/src/server.js +++ b/site/src/server.js @@ -1,4 +1,3 @@ -import 'dotenv/config'; import express from 'express'; import session from 'express-session'; import passport from 'passport'; From 9dc554203d7652c950c86270a72315b64e719b8e Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Mon, 22 Apr 2019 06:38:31 -0400 Subject: [PATCH 04/16] fix opacity on examples TOC --- .../routes/examples/_TableOfContents.svelte | 74 +++++++++---------- 1 file changed, 36 insertions(+), 38 deletions(-) diff --git a/site/src/routes/examples/_TableOfContents.svelte b/site/src/routes/examples/_TableOfContents.svelte index a3e8b23216..d23925a0c3 100644 --- a/site/src/routes/examples/_TableOfContents.svelte +++ b/site/src/routes/examples/_TableOfContents.svelte @@ -40,7 +40,7 @@ border-right: 1px solid var(--second); background-color: var(--second); color: white; - padding: 2em 2em 0 2em; + padding: 3rem 3rem 0 3rem; } .examples-toc li { @@ -49,13 +49,6 @@ margin: 0 0 4.8rem 0; } - a { - position: relative; - opacity: 0.7; - transition: opacity 0.2s; - color: white; - } - .section-title { display: block; padding: 0 0 .8rem 0; @@ -74,35 +67,43 @@ .example-title:hover { color: var(--flash); - opacity: 1 } - .active { - opacity: 1; + /* .active { font-weight: 600; - } + } */ - .row { - position: relative; - margin: 0.5em 0; + a { display: flex; + position: relative; + color: white; + border-bottom: none; + padding: 0.2rem 3rem; + margin: 0 -3rem; + /* margin: 0.5em 0; */ align-items: center; - justify-content: space-between; + justify-content: start; } - .info { - display: flex; - align-items: center; + a:hover { + color: var(--flash); + } + + a.active { + background: rgba(255, 255, 255, 0.1) calc(100% - 3rem) 50% no-repeat url(/icons/arrow-right.svg); + background-size: 1em 1em; + color: white; } .thumbnail { - background: white 50% 50% no-repeat; - background-size: contain; + background-color: white; + object-fit: contain; width: 5rem; height: 5rem; - border: 1px solid #ccc; + /* border: 1px solid #ccc; */ border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,0.13); + margin: 0.2em 0.5em 0.2em 0; } @@ -114,25 +115,22 @@ {#each section.examples as example} - -
-
-
-
- {example.title} -
-
- {#if example.slug === active_section} - - {/if} -
-
+ {example.title} thumbnail + + {example.title} + + {/each} {/each} From 813f4870bbe9a450d95606db35b1365f7b1893bd Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Mon, 22 Apr 2019 06:43:30 -0400 Subject: [PATCH 05/16] remove some unused code --- .../routes/examples/_TableOfContents.svelte | 53 +------------------ 1 file changed, 2 insertions(+), 51 deletions(-) diff --git a/site/src/routes/examples/_TableOfContents.svelte b/site/src/routes/examples/_TableOfContents.svelte index d23925a0c3..ec7310c5fa 100644 --- a/site/src/routes/examples/_TableOfContents.svelte +++ b/site/src/routes/examples/_TableOfContents.svelte @@ -1,36 +1,6 @@ -
    +
      {#each sections as section}
    • @@ -127,9 +81,6 @@ > {example.title} - {/each}
    • From 0b54fa9537d7cc89fce01efe1da1fdfab7977ebf Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Mon, 22 Apr 2019 07:03:43 -0400 Subject: [PATCH 06/16] add video to blog post, remove draft flag --- ...2019-04-22-svelte-3-rethinking-reactivity.md} | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) rename site/content/blog/{2019-04-18-svelte-3-rethinking-reactivity.md => 2019-04-22-svelte-3-rethinking-reactivity.md} (90%) diff --git a/site/content/blog/2019-04-18-svelte-3-rethinking-reactivity.md b/site/content/blog/2019-04-22-svelte-3-rethinking-reactivity.md similarity index 90% rename from site/content/blog/2019-04-18-svelte-3-rethinking-reactivity.md rename to site/content/blog/2019-04-22-svelte-3-rethinking-reactivity.md index d00a680426..dcb8c50fc0 100644 --- a/site/content/blog/2019-04-18-svelte-3-rethinking-reactivity.md +++ b/site/content/blog/2019-04-22-svelte-3-rethinking-reactivity.md @@ -1,9 +1,8 @@ --- -title: Svelte 3: Rethinking Reactivity +title: Svelte 3: Rethinking reactivity description: It's finally here author: Rich Harris authorURL: https://twitter.com/Rich_Harris -draft: true --- After several months of being just days away, we are over the moon to announce the stable release of Svelte 3. This is a huge release representing hundreds of hours of work by many people in the Svelte community, including invaluable feedback from beta testers who have helped shape the design every step of the way. @@ -23,14 +22,15 @@ Version 3 is a significant overhaul. Our focus for the last five or six months h To make that possible we first needed to rethink the concept at the heart of modern UI frameworks: reactivity. -
      -Rich Harris delivering a conference talk at You Gotta Love Frontend +
      +
      +
      + +
      -
      TKTKTK replace this with a video embed once the YGLF videos appear on YouTube
      +
      'Rethinking Reactivity' from You Gotta Love Frontend Code Camp
      +
      ## Moving reactivity into the language From 210ac8aa571f87c926c200b50bca1199474346d0 Mon Sep 17 00:00:00 2001 From: Achim Vedam Date: Mon, 22 Apr 2019 13:20:57 +0200 Subject: [PATCH 07/16] closes #2482 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit • fix missing :hover-state in TopNav --- site/src/components/TopNav.svelte | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/src/components/TopNav.svelte b/site/src/components/TopNav.svelte index c135ac12f0..4254e99152 100644 --- a/site/src/components/TopNav.svelte +++ b/site/src/components/TopNav.svelte @@ -185,6 +185,10 @@ transition: none; } + li:not(.active) a:hover { + color: var(--flash); + } + @media (min-width: 840px) { ul { padding: 0; From 0e6b002573d911f2da968bdaf7c32213f2d2356c Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Mon, 22 Apr 2019 07:26:25 -0400 Subject: [PATCH 08/16] work around transition bug --- site/src/components/PreloadingIndicator.svelte | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/site/src/components/PreloadingIndicator.svelte b/site/src/components/PreloadingIndicator.svelte index 22980e2a6b..cc7d2ef057 100644 --- a/site/src/components/PreloadingIndicator.svelte +++ b/site/src/components/PreloadingIndicator.svelte @@ -3,6 +3,7 @@ import { fade } from 'svelte/transition'; let p = 0; + let visible = false; const sleep = ms => new Promise(f => setTimeout(f, ms)); @@ -10,6 +11,7 @@ let running = true; function next() { + visible = true; p += 0.1; const remaining = 1 - p; @@ -53,7 +55,7 @@ } -{#if p > 0} +{#if visible}
      From 8c26471d00d4522d4732a942744a81b95d267715 Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Mon, 22 Apr 2019 08:02:46 -0400 Subject: [PATCH 09/16] fix gist icon in REPL --- site/src/routes/repl/_components/AppControls/index.svelte | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/src/routes/repl/_components/AppControls/index.svelte b/site/src/routes/repl/_components/AppControls/index.svelte index 368136bb6e..179a8e4470 100644 --- a/site/src/routes/repl/_components/AppControls/index.svelte +++ b/site/src/routes/repl/_components/AppControls/index.svelte @@ -232,7 +232,7 @@ export default app;` }); {/if} {#if gist} - + {/if} @@ -272,6 +272,7 @@ export default app;` }); transition: opacity .3s; font-family: var(--font); font-size: 1.6rem; + color: white; /* width: 1.6em; height: 1.6em; */ line-height: 1; From de153eff0f2fa4951969997a424379791904a807 Mon Sep 17 00:00:00 2001 From: Richard Harris Date: Mon, 22 Apr 2019 08:34:30 -0400 Subject: [PATCH 10/16] surely this will fix it --- site/src/components/PreloadingIndicator.svelte | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/site/src/components/PreloadingIndicator.svelte b/site/src/components/PreloadingIndicator.svelte index cc7d2ef057..43bcf3ab5a 100644 --- a/site/src/components/PreloadingIndicator.svelte +++ b/site/src/components/PreloadingIndicator.svelte @@ -1,6 +1,5 @@