diff --git a/packages/webawesome/docs/.eleventy.js b/packages/webawesome/docs/.eleventy.js index cece771ac..162a0ec58 100644 --- a/packages/webawesome/docs/.eleventy.js +++ b/packages/webawesome/docs/.eleventy.js @@ -94,6 +94,16 @@ export default async function (eleventyConfig) { flashes: '', }); + // Site metadata for social sharing (Open Graph, canonical URLs, etc.) + const siteMetadata = { + url: 'https://webawesome.com', + name: 'Web Awesome', + description: 'Build better with Web Awesome, the open source library of web components from Font Awesome.', + image: 'https://webawesome.com/assets/images/open-graph/default.png', + }; + + eleventyConfig.addGlobalData('siteMetadata', siteMetadata); + // Template filters - {{ content | filter }} eleventyConfig.addFilter('inlineMarkdown', content => markdown.renderInline(content || '')); eleventyConfig.addFilter('markdown', content => markdown.render(content || '')); @@ -172,6 +182,16 @@ export default async function (eleventyConfig) { // Attach lastUpdatedISO to page data so templates can use {{ lastUpdatedISO }} directly eleventyConfig.addGlobalData('eleventyComputed', { lastUpdatedISO: data => getLastModifiedISO(data.page?.inputPath, data.lastUpdated), + // Open Graph metadata with smart defaults + ogTitle: data => data.ogTitle || data.title, + ogDescription: data => data.ogDescription || data.description, + ogImage: data => data.ogImage || siteMetadata.image, + ogUrl: data => { + if (data.ogUrl) return data.ogUrl; + const url = data.page?.url || ''; + return url ? `${siteMetadata.url}${url}` : siteMetadata.url; + }, + ogType: data => data.ogType || 'website', }); // Trims whitespace and pipes from the start and end of a string. Useful for CEM types, which can be pipe-delimited. // With Prettier 3, this means a leading pipe will exist be present when the line wraps. diff --git a/packages/webawesome/docs/_includes/head.njk b/packages/webawesome/docs/_includes/head.njk index ab7cf5b74..7fdd6e096 100644 --- a/packages/webawesome/docs/_includes/head.njk +++ b/packages/webawesome/docs/_includes/head.njk @@ -3,7 +3,17 @@ {% if noindex or unlisted %}{% endif %} -