diff --git a/frontend/static/common/thumbnails/screenshots/allotax-scrolly.jpg b/frontend/src/lib/assets/thumbnails/allotax-scrolly.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/allotax-scrolly.jpg rename to frontend/src/lib/assets/thumbnails/allotax-scrolly.jpg diff --git a/frontend/static/common/thumbnails/screenshots/allotaxonometry.jpg b/frontend/src/lib/assets/thumbnails/allotaxonometry.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/allotaxonometry.jpg rename to frontend/src/lib/assets/thumbnails/allotaxonometry.jpg diff --git a/frontend/static/common/thumbnails/screenshots/cnww.png b/frontend/src/lib/assets/thumbnails/cnww.png similarity index 100% rename from frontend/static/common/thumbnails/screenshots/cnww.png rename to frontend/src/lib/assets/thumbnails/cnww.png diff --git a/frontend/static/common/thumbnails/screenshots/dark-data-survey.jpg b/frontend/src/lib/assets/thumbnails/dark-data-survey.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/dark-data-survey.jpg rename to frontend/src/lib/assets/thumbnails/dark-data-survey.jpg diff --git a/frontend/static/common/thumbnails/screenshots/explore-the-cat-project.jpg b/frontend/src/lib/assets/thumbnails/explore-the-cat-project.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/explore-the-cat-project.jpg rename to frontend/src/lib/assets/thumbnails/explore-the-cat-project.jpg diff --git a/frontend/static/common/thumbnails/screenshots/explore-timeline.jpg b/frontend/src/lib/assets/thumbnails/explore-timeline.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/explore-timeline.jpg rename to frontend/src/lib/assets/thumbnails/explore-timeline.jpg diff --git a/frontend/static/common/thumbnails/screenshots/friends-funnier-than-you-are.jpg b/frontend/src/lib/assets/thumbnails/friends-funnier-than-you-are.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/friends-funnier-than-you-are.jpg rename to frontend/src/lib/assets/thumbnails/friends-funnier-than-you-are.jpg diff --git a/frontend/static/common/thumbnails/screenshots/hello-sciscidb.jpg b/frontend/src/lib/assets/thumbnails/hello-sciscidb.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/hello-sciscidb.jpg rename to frontend/src/lib/assets/thumbnails/hello-sciscidb.jpg diff --git a/frontend/static/common/thumbnails/screenshots/interdisciplinarity.jpg b/frontend/src/lib/assets/thumbnails/interdisciplinarity.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/interdisciplinarity.jpg rename to frontend/src/lib/assets/thumbnails/interdisciplinarity.jpg diff --git a/frontend/static/common/thumbnails/screenshots/networks-fast-and-slow.jpg b/frontend/src/lib/assets/thumbnails/networks-fast-and-slow.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/networks-fast-and-slow.jpg rename to frontend/src/lib/assets/thumbnails/networks-fast-and-slow.jpg diff --git a/frontend/static/common/thumbnails/screenshots/open-academic-analytics.jpg b/frontend/src/lib/assets/thumbnails/open-academic-analytics.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/open-academic-analytics.jpg rename to frontend/src/lib/assets/thumbnails/open-academic-analytics.jpg diff --git a/frontend/static/common/thumbnails/screenshots/tokenization.jpg b/frontend/src/lib/assets/thumbnails/tokenization.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/tokenization.jpg rename to frontend/src/lib/assets/thumbnails/tokenization.jpg diff --git a/frontend/static/common/thumbnails/screenshots/uvm-research-groups.jpg b/frontend/src/lib/assets/thumbnails/uvm-research-groups.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/uvm-research-groups.jpg rename to frontend/src/lib/assets/thumbnails/uvm-research-groups.jpg diff --git a/frontend/static/common/thumbnails/screenshots/vermont-livability-map.jpg b/frontend/src/lib/assets/thumbnails/vermont-livability-map.jpg similarity index 100% rename from frontend/static/common/thumbnails/screenshots/vermont-livability-map.jpg rename to frontend/src/lib/assets/thumbnails/vermont-livability-map.jpg diff --git a/frontend/static/common/thumbnails/screenshots/wikiwrangler.png b/frontend/src/lib/assets/thumbnails/wikiwrangler.png similarity index 100% rename from frontend/static/common/thumbnails/screenshots/wikiwrangler.png rename to frontend/src/lib/assets/thumbnails/wikiwrangler.png diff --git a/frontend/src/lib/components/Story.svelte b/frontend/src/lib/components/Story.svelte index 49b06f79..92360a13 100644 --- a/frontend/src/lib/components/Story.svelte +++ b/frontend/src/lib/components/Story.svelte @@ -7,6 +7,18 @@ const isExternal = !!story.externalUrl; const finalHref = isExternal ? story.externalUrl : `${base}/${story.slug}`; + + // Glob-import all thumbnails through enhanced-img for automatic WebP/AVIF conversion + const thumbnails = import.meta.glob<{ default: string }>( + '/src/lib/assets/thumbnails/*.{jpg,png,webp}', + { eager: true, query: { enhanced: true } } + ); + + // Find this story's thumbnail (try jpg then png) + const thumbnailKey = Object.keys(thumbnails).find( + k => k.endsWith(`/${story.slug}.jpg`) || k.endsWith(`/${story.slug}.png`) + ); + const thumbnail = thumbnailKey ? thumbnails[thumbnailKey].default : null;
@@ -22,11 +34,19 @@
{/if} - Thumbnail for {story.title} + {#if thumbnail} + + {:else} + Thumbnail for {story.title} + {/if}
@@ -83,7 +103,8 @@ transform: translateY(-2px); } - .screenshot img { + .screenshot img, + .screenshot :global(picture img) { position: absolute; inset: 0; width: 100%; @@ -92,7 +113,8 @@ transition: transform 0.25s ease; } - .story:hover .screenshot img { + .story:hover .screenshot img, + .story:hover .screenshot :global(picture img) { transform: scale(1.05); } diff --git a/frontend/src/lib/stories/allotax-scrolly/components/BarChartRank.svelte b/frontend/src/lib/stories/allotax-scrolly/components/BarChartRank.svelte index 328d16c0..740ee0fc 100644 --- a/frontend/src/lib/stories/allotax-scrolly/components/BarChartRank.svelte +++ b/frontend/src/lib/stories/allotax-scrolly/components/BarChartRank.svelte @@ -1,20 +1,107 @@ - - - - +
+ + + {#each yTicks as tick (tick)} + + {/each} + + + {#each displayData as d (d.types)} + + {/each} + + + + + + {#each displayData as d (d.types)} + {@const cx = (xScale(d.types) ?? 0) + xScale.bandwidth() / 2} + {@const cy = yScale(0) + 6} + + {d.types} + + {/each} + + + {#each yTicks as tick (tick)} + + {d3.format('~s')(tick)} + + {/each} + +
+ + diff --git a/frontend/src/lib/stories/allotax-scrolly/components/Index.svelte b/frontend/src/lib/stories/allotax-scrolly/components/Index.svelte index 06c72a60..83807702 100644 --- a/frontend/src/lib/stories/allotax-scrolly/components/Index.svelte +++ b/frontend/src/lib/stories/allotax-scrolly/components/Index.svelte @@ -34,8 +34,6 @@ import Scrolly from '$lib/components/helpers/Scrolly.svelte'; import ScrollyMd from './ScrollyMarkdown.svelte'; // New import import Md from '$lib/components/helpers/MarkdownRenderer.svelte'; - import Spinner from '$lib/components/helpers/Spinner.svelte'; - let { story, data } = $props(); let scrollyIndex = $state(); @@ -165,21 +163,13 @@

Here is the ranking of the {@render G(isGirls ? 'girl' : 'boy')} baby names in 1980:

- {#if browser} - - {:else} - - {/if} +

Here is the ranking for {@render G(isGirls ? 'girl' : 'boy')} baby names in Quebec for 2023:

- {#if browser} - - {:else} - - {/if} +

I really like this analysis, but there are some limitations in comparing ranks using raw counts, especially when it comes to systems that are known to be "heavy-tailed". That is, when a few names, or types, occur many more times in your dataset than less frequent ones, aka the tail. For instance, in the analysis the author compares baby names between "then and now". By just looking at raw counts, we are stuck with such comparisons where top-ranking baby names in 1980 might now be in the tail, which is a bit underwhelming. How can we know about the most surprising comparisons, given the heavy-tailed distribution?