The content now uses standard Markdown, rendered by render hooks
(layouts/_markup):
- images: , rendered as a figure when the
image is standalone (replaces attachedFigure and screenshotOf)
- links: resolved to a page resource (replaces attachedFileLink in
links), to a page of the current site or of the other site with a
language flag (replaces internalLink and relref), and relative links
are made relative to the site root (they were broken in RSS feeds)
- code blocks: ```yaml {filename="x.yaml" hl_lines="3"} or
{title="..."} (replaces highlightFile, highlightWithTitle, highlight)
The content was converted with scripts/convert-shortcodes.py, which can
also be used on the drafts. The attachedFileLink shortcode is kept for
the URLs in code blocks, as well as embeddedVideo and youtube.
The generated HTML is the same, except:
- figures are no longer nested in paragraphs (invalid HTML)
- the screenshots of tweets get an alt text
- the language flags are removed from the summaries
Closes#13
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