Compare commits

..

No commits in common. "12876f0773f30621ddd49070aa7dfa07413ba720" and "db32cb2ee1a245655bacefc5adcc4fa2670bbf22" have entirely different histories.

18 changed files with 15 additions and 15 deletions

View file

@ -6,19 +6,7 @@ import htmlminifier from 'html-minifier-terser';
import markdownIt from 'markdown-it'; import markdownIt from 'markdown-it';
const MARKDOWNIT_OPTIONS = { html: true, linkify: true, typographer: true }; const MARKDOWNIT_OPTIONS = { html: true, linkify: true, typographer: true };
const IMAGE_BASE_WIDTHS = [500, 750, 1000];
const IMAGE_COMPUTED_WIDTHS = new Set(IMAGE_BASE_WIDTHS.flatMap((w) => [w * 1, w * 2, w * 3]));
const IMAGE_ATTR_SIZES = [
{ minw: '120em', size: '1000px' },
{ minw: '64em', size: '750px' },
{ minw: '40em', size: '700px' },
{ minw: '35em', size: '500px' },
{ minw: null, size: 'calc(100vw - 3rem)' }
];
const IMAGE_TRANSFORM_OPTS = { const IMAGE_TRANSFORM_OPTS = {
widths: [...IMAGE_COMPUTED_WIDTHS, 'auto'],
formats: ['avif', 'webp', 'auto'], formats: ['avif', 'webp', 'auto'],
sharpJpegOptions: { mozjpeg: true, optimiseScans: true, quality: 95 }, sharpJpegOptions: { mozjpeg: true, optimiseScans: true, quality: 95 },
sharpPngOptions: { compressionLevel: 9 }, sharpPngOptions: { compressionLevel: 9 },
@ -27,7 +15,7 @@ const IMAGE_TRANSFORM_OPTS = {
defaultAttributes: { defaultAttributes: {
loading: 'lazy', loading: 'lazy',
decoding: 'async', decoding: 'async',
sizes: IMAGE_ATTR_SIZES.map(({ minw, size }) => (minw ? `(min-width: ${minw}): ${size}` : size)) sizes: '(min-width: 64em) 500px, (min-width: 50em) 420px, 375px'
} }
}; };

View file

@ -4,12 +4,16 @@
:class="(dropshadow ? 'dropshadow' : '')" :class="(dropshadow ? 'dropshadow' : '')"
:src="`src/img/${char}/${src}`" :src="`src/img/${char}/${src}`"
:alt="`${alt} by ${artist}`" :alt="`${alt} by ${artist}`"
:width="width"
sizes="1000px"
></eleventy-image> ></eleventy-image>
<eleventy-image <eleventy-image
class="image nsfw" class="image nsfw"
:class="(dropshadow ? 'dropshadow' : '')" :class="(dropshadow ? 'dropshadow' : '')"
:src="`src/img/${char}/${src.replace(/^(.*?)(\.[^.]+)$/, '$1-nsfw$2')}`" :src="`src/img/${char}/${src.replace(/^(.*?)(\.[^.]+)$/, '$1-nsfw$2')}`"
:alt="`${alt} by ${artist}`" :alt="`${alt} by ${artist}`"
:width="width"
sizes="1000px"
webc:if="nsfw" webc:if="nsfw"
></eleventy-image> ></eleventy-image>
<figcaption class="caption"> <figcaption class="caption">

Binary file not shown.

Before

Width:  |  Height:  |  Size: 693 KiB

After

Width:  |  Height:  |  Size: 702 KiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4 MiB

After

Width:  |  Height:  |  Size: 2.4 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 MiB

After

Width:  |  Height:  |  Size: 2.1 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 305 KiB

After

Width:  |  Height:  |  Size: 1.6 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 MiB

After

Width:  |  Height:  |  Size: 1.7 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 MiB

After

Width:  |  Height:  |  Size: 2 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 MiB

After

Width:  |  Height:  |  Size: 2.3 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

Before After
Before After

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

After

Width:  |  Height:  |  Size: 1.1 MiB

Before After
Before After

View file

@ -9,6 +9,7 @@ eleventyNavigation:
:@alt="'Jarek Ref'" :@alt="'Jarek Ref'"
:@artist="'Alpha Moonlight'" :@artist="'Alpha Moonlight'"
:@href="'https://bsky.app/profile/alphamoonlight.bsky.social'" :@href="'https://bsky.app/profile/alphamoonlight.bsky.social'"
:@width="[1000]"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
:@dropshadow="true" :@dropshadow="true"
:@nsfw="true" :@nsfw="true"

View file

@ -19,8 +19,7 @@ feedbackLink: https://cloud.sebin-nyshkim.net/apps/forms/s/eHjsosE9FB4fCpjBt4mbP
slot="avatar" slot="avatar"
:src="`src/img/${firstName.toLowerCase()}/avatar.png`" :src="`src/img/${firstName.toLowerCase()}/avatar.png`"
:alt="firstName + ' Avatar'" :alt="firstName + ' Avatar'"
:width="[100, 200, 300, 400, 500, 600]" :width="[500, 1000]"
sizes="(min-width: 120em) 250px, (min-width: 64em) 200px, 100px"
></eleventy-image> ></eleventy-image>
<template webc:nokeep slot="name" @text="fullName"></template> <template webc:nokeep slot="name" @text="fullName"></template>
<template webc:nokeep slot="species" @text="species"></template> <template webc:nokeep slot="species" @text="species"></template>

View file

@ -9,6 +9,7 @@ eleventyNavigation:
:@alt="`Sebin Ref`" :@alt="`Sebin Ref`"
:@artist="`draftgon`" :@artist="`draftgon`"
:@href="`https://bsky.app/profile/draftgon.bsky.social`" :@href="`https://bsky.app/profile/draftgon.bsky.social`"
:@width="[1000]"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
:@dropshadow="true" :@dropshadow="true"
:@nsfw="true" :@nsfw="true"
@ -37,6 +38,7 @@ Sebin has a muscular build that he keeps in shape with regular exercise, which h
:@alt="`Sebin Ref`" :@alt="`Sebin Ref`"
:@artist="`draftgon`" :@artist="`draftgon`"
:@href="`https://bsky.app/profile/draftgon.bsky.social`" :@href="`https://bsky.app/profile/draftgon.bsky.social`"
:@width="[1000]"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
:@dropshadow="true" :@dropshadow="true"
:@nsfw="true" :@nsfw="true"
@ -59,6 +61,7 @@ While Sebin's wings can carry him short to medium distances, there are limitatio
:@alt="`Sebin's expressions`" :@alt="`Sebin's expressions`"
:@artist="`draftgon`" :@artist="`draftgon`"
:@href="`https://bsky.app/profile/draftgon.bsky.social`" :@href="`https://bsky.app/profile/draftgon.bsky.social`"
:@width="[1000]"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
:@dropshadow="true" :@dropshadow="true"
></ref-img> ></ref-img>
@ -84,6 +87,7 @@ When threatened or enraged, Sebin can unleash a stream of fire from his mouth, w
:@alt="`Sebin's upper body closeup`" :@alt="`Sebin's upper body closeup`"
:@artist="`Nidhogg`" :@artist="`Nidhogg`"
:@href="`https://bsky.app/profile/nidthedragon.bsky.social`" :@href="`https://bsky.app/profile/nidthedragon.bsky.social`"
:@width="[1000]"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
:@dropshadow="true" :@dropshadow="true"
></ref-img> ></ref-img>
@ -104,6 +108,7 @@ Sebin's drawn muscle anatomy can vary quite a bit. It can range from athletic to
<ref-img webc:for="ref of [...Array(9).keys()]" <ref-img webc:for="ref of [...Array(9).keys()]"
:@src="`ref-muscle-${ref + 1}.png`" :@src="`ref-muscle-${ref + 1}.png`"
:@alt="$data.galleryMuscle[ref].alt" :@alt="$data.galleryMuscle[ref].alt"
:@width="[500, 1000]"
:@href="$data.galleryMuscle[ref].href" :@href="$data.galleryMuscle[ref].href"
:@artist="$data.galleryMuscle[ref].artist" :@artist="$data.galleryMuscle[ref].artist"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
@ -126,6 +131,7 @@ There's still one piece of anatomy you *haven't* seen yet! 👀💦
:@alt="`Sebin's manly parts`" :@alt="`Sebin's manly parts`"
:@artist="`draftgon`" :@artist="`draftgon`"
:@href="`https://bsky.app/profile/draftgon.bsky.social`" :@href="`https://bsky.app/profile/draftgon.bsky.social`"
:@width="[500, 1000]"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
:@dropshadow="true" :@dropshadow="true"
></ref-img> ></ref-img>

View file

@ -11,6 +11,7 @@ Sebin knows how to dress!
:@src="`ref-clothes-${ref + 1}.png`" :@src="`ref-clothes-${ref + 1}.png`"
:@alt="$data.galleryClothing[ref].alt" :@alt="$data.galleryClothing[ref].alt"
:@href="$data.galleryClothing[ref].href" :@href="$data.galleryClothing[ref].href"
:@width="[500, 1000]"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
:@artist="$data.galleryClothing[ref].artist" :@artist="$data.galleryClothing[ref].artist"
:@dropshadow="false" :@dropshadow="false"

View file

@ -46,6 +46,7 @@ He needed answers. If he ever were to tap into this power again, he feared he co
:@alt="`Sebin Overdrive Ref`" :@alt="`Sebin Overdrive Ref`"
:@artist="`CVictorrosso`" :@artist="`CVictorrosso`"
:@href="`https://bsky.app/profile/cvictorrosso.bsky.social`" :@href="`https://bsky.app/profile/cvictorrosso.bsky.social`"
:@width="[1000]"
:@char="$data.firstName.toLowerCase()" :@char="$data.firstName.toLowerCase()"
:@dropshadow="false" :@dropshadow="false"
></ref-img> ></ref-img>