Metadata, feeds, & absolute URLs
Set a base URL once
config.addPlugin(dashly, { baseUrl: "https://example.com" });
absoluteUrl resolves paths against it. Full URLs, mailto:, tel:, & fragment links pass through unchanged. Without baseUrl, paths come back as given, which keeps local development simple.
Canonical & social tags
<link rel="canonical" href="{{ page.url | absoluteUrl }}">
<meta property="og:url" content="{{ page.url | absoluteUrl }}">
<meta property="og:image" content="{{ image | absoluteUrl }}">
Dates for machines & people
toISOString feeds <time> elements & JSON-LD. longDate & timeAgo read well on the page.
<time datetime="{{ post.date | toISOString }}">{{ post.date | longDate }}</time>
Date-only strings such as 2026-01-15 render as the same day everywhere: formatting defaults to UTC.
Feeds
cleanForRSS strips scripts, embeds, & heading permalinks from rendered HTML. Pass customTags for web components that feed readers cannot render. It needs the posthtml peer.