mirror of
https://github.com/github/awesome-copilot.git
synced 2026-06-13 11:33:32 +00:00
chore: publish from staged
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
# Awesome GitHub Copilot website
|
||||
|
||||
Astro + Starlight site published to <https://awesome-copilot.github.com/>.
|
||||
|
||||
## Local development
|
||||
|
||||
Run these from the **repository root** (they generate the data the site needs first):
|
||||
|
||||
```bash
|
||||
npm run website:data # generate public/data/*.json from repo content
|
||||
npm run website:dev # generate data + start the dev server
|
||||
npm run website:build # full production build
|
||||
```
|
||||
|
||||
## Social preview cards (LinkedIn, etc.)
|
||||
|
||||
Shared links render as large preview cards driven by Open Graph / Twitter meta tags.
|
||||
LinkedIn (and most platforms) read **Open Graph** — primarily `og:image` — while Twitter/X
|
||||
also uses `twitter:card=summary_large_image`. Most tags are produced automatically:
|
||||
|
||||
- **Starlight defaults** emit `og:title`, `og:description`, `og:url`, `og:type`,
|
||||
`og:site_name`, and `twitter:card=summary_large_image`.
|
||||
- **`astro.config.mjs`** (global `head`) emits the shared image tags: `og:image`,
|
||||
`og:image:width`, `og:image:height`, `og:image:alt`, and `twitter:image`.
|
||||
- **`src/components/Head.astro`** adds `twitter:title`/`description`, `og:image:secure_url`,
|
||||
`og:image:type`, and `twitter:image:alt`.
|
||||
|
||||
Each page's `title` and `description` (StarlightPage frontmatter) flow into the card text,
|
||||
so keep them clear and benefit-focused.
|
||||
|
||||
### The image-dimension invariant
|
||||
|
||||
`og:image:width` / `og:image:height` in `astro.config.mjs` describe `public/images/social-image.png`
|
||||
(currently **2400×1260**, ~1.91:1). Crawlers use these dimensions to understand the image and
|
||||
may use them when selecting/rendering the preview. If you swap the image or add a per-page image
|
||||
override, update the **full** image set so every tag stays consistent: `og:image`,
|
||||
`og:image:width`, `og:image:height`, `og:image:alt`, and `twitter:image` (the last one matters
|
||||
because `Head.astro` derives `og:image:secure_url` from `twitter:image` first).
|
||||
|
||||
### After deploying
|
||||
|
||||
LinkedIn caches scrapes aggressively. To force a refresh and confirm the card renders, run the
|
||||
changed URL through the [LinkedIn Post Inspector](https://www.linkedin.com/post-inspector/).
|
||||
HTML output alone doesn't prove the live card — verify the deployed image returns HTTP 200 over
|
||||
HTTPS with `Content-Type: image/png` and no auth.
|
||||
@@ -6,7 +6,13 @@ import pagefindResources from "./src/integrations/pagefind-resources";
|
||||
const site = "https://awesome-copilot.github.com/";
|
||||
const siteDescription =
|
||||
"Community-contributed agents, instructions, and skills to enhance your GitHub Copilot experience";
|
||||
// Social preview image used for all Open Graph / Twitter cards (e.g. LinkedIn, which is
|
||||
// Open Graph-driven). socialImageWidth/Height MUST match the actual pixels of social-image.png.
|
||||
// If a page ever overrides og:image, also override og:image:width/height and twitter:image
|
||||
// (Head.astro derives og:image:secure_url from twitter:image first).
|
||||
const socialImageUrl = new URL("/images/social-image.png", site).toString();
|
||||
const socialImageWidth = "2400";
|
||||
const socialImageHeight = "1260";
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
@@ -27,6 +33,20 @@ export default defineConfig({
|
||||
content: socialImageUrl,
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: {
|
||||
property: "og:image:width",
|
||||
content: socialImageWidth,
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: {
|
||||
property: "og:image:height",
|
||||
content: socialImageHeight,
|
||||
},
|
||||
},
|
||||
{
|
||||
tag: "meta",
|
||||
attrs: {
|
||||
|
||||
Reference in New Issue
Block a user