feat: add support for multiple links in projects

Projects now support multiple links (source code, demo, etc) each with a label. Migrated all projects to use the new schema.
This commit is contained in:
2026-05-14 12:49:57 -04:00
parent 962efd0e75
commit 23e5e17be5
8 changed files with 54 additions and 19 deletions
+32 -12
View File
@@ -126,18 +126,28 @@ const currentUrl = Astro.url;
<p>{project.data.description}</p>
</div>
{project.data.link && (
{(project.data.links || project.data.link) && (
<>
<hr class="my-4 border-t" />
<div class="flex flex-col gap-2 text-sm text-muted-foreground">
<h3 class="text-base font-semibold">Project Links</h3>
<ul class="list-disc pl-4">
<li>
<a href={project.data.link} target="_blank" rel="noopener noreferrer" aria-label="Project link">
{project.data.link}
</a>
</li>
{project.data.links ? (
project.data.links.map((link) => (
<li>
<a href={link.url} target="_blank" rel="noopener noreferrer" aria-label={link.label}>
{link.label}
</a>
</li>
))
) : project.data.link ? (
<li>
<a href={project.data.link} target="_blank" rel="noopener noreferrer" aria-label="Project link">
{project.data.link}
</a>
</li>
) : null}
</ul>
</div>
</>
@@ -155,18 +165,28 @@ const currentUrl = Astro.url;
<p>{project.data.description}</p>
</div>
{project.data.link && (
{(project.data.links || project.data.link) && (
<>
<hr class="my-4 border-t" />
<div class="flex flex-col gap-2 text-sm text-muted-foreground">
<h3 class="text-base font-semibold">Project Links</h3>
<ul class="list-disc pl-4">
<li>
<a href={project.data.link} target="_blank" rel="noopener noreferrer" aria-label="Project link">
{project.data.link}
</a>
</li>
{project.data.links ? (
project.data.links.map((link) => (
<li>
<a href={link.url} target="_blank" rel="noopener noreferrer" aria-label={link.label}>
{link.label}
</a>
</li>
))
) : project.data.link ? (
<li>
<a href={project.data.link} target="_blank" rel="noopener noreferrer" aria-label="Project link">
{project.data.link}
</a>
</li>
) : null}
</ul>
</div>
</>