The image render hook converts the JPEG, PNG and WebP images to WebP in
several widths (480, 800, 1200, 1600 px, no wider than the original) with
srcset and sizes matching the layout. All images get their dimensions
(no layout shift) and are lazy loaded, except the first one of the page.
GIF and SVG images are served as-is.
The images downloaded by the pages go from 99 MB to 13 MB (desktop) or
8 MB (mobile), and the site from 168 MB to 101 MB.
The social image partial no longer reads the .RelPermalink of the page
images, which published all of them, and compares the images by name
since the content now refers to the processed variants.
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3
Descriptions (meta description, Open Graph, Twitter cards, JSON-LD):
the description front matter parameter, the site description for the
home page, "Articles related to <term>" for the term pages, the page
summary truncated to 160 characters, or the site description. The meta
description used to be the title of the page.
Social images: the images front matter parameter, a *feature*, *cover*
or *thumbnail* page resource, the first image of the page content or
the default image of the site. The image is converted to JPEG and
resized to 1200 px wide max, without cropping, and its dimensions are
given in the Open Graph tags. The default image (avatar) uses a small
Twitter card.
Structured data: BlogPosting for the blog, Article for the talks and
publications, with the description, the image and the author.
Refs #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YNHsWYTXPThURz6TbVS1j3