mirror of
https://github.com/Patiun/com.gregkilmer.www.git
synced 2026-11-08 04:08:24 +00:00
Resume from Greg's interview, one-page PDF, store slots closed
The experience notes, skills, education and a new /resume Page text now come from Greg's Resume Interview answers (tools/migrate/src/seed.ts). Comcast and Drexel move to a short Earlier list, and the page and PDF gain Selected projects. Carrier Connect's numbers are Greg's corrected ones. The PDF fits on one page and carries the email from site settings. Store lines migrate with no open slots until Greg opens orders. Schema: experience earlier, page projects, site-settings email. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012aSbo2D1qP8cMFQCykf7kx
This commit is contained in:
@@ -15,7 +15,7 @@ import StarPath from "@gk/ui/components/StarPath.astro";
|
||||
import TickRing from "@gk/ui/components/TickRing.astro";
|
||||
import TickScale from "@gk/ui/components/TickScale.astro";
|
||||
import { site } from "../lib/page.ts";
|
||||
import { period, resumeData } from "../lib/resume.ts";
|
||||
import { listOf, period, resumeData } from "../lib/resume.ts";
|
||||
import { formatDate } from "../lib/site.ts";
|
||||
|
||||
const s = await site();
|
||||
@@ -167,7 +167,7 @@ const isCore = (group: { core?: string[] }, item: string) => group.core?.some((c
|
||||
</div>
|
||||
<span class="company">{role.data.company}{role.data.location ? ` · ${role.data.location}` : ""}</span>
|
||||
{role.data.previousRoles?.length ? (
|
||||
<span class="previously">Previously {role.data.previousRoles.join(" and ")} at {role.data.company}</span>
|
||||
<span class="previously">Previously {listOf(role.data.previousRoles)}</span>
|
||||
) : null}
|
||||
{role.data.focus && <span class="focus">{role.data.focus}</span>}
|
||||
<ul>
|
||||
@@ -189,6 +189,43 @@ const isCore = (group: { core?: string[] }, item: string) => group.core?.some((c
|
||||
))
|
||||
}
|
||||
</div>
|
||||
{
|
||||
r.earlier.length > 0 && (
|
||||
<section aria-labelledby="earlier-h" class="earlier">
|
||||
<h3 id="earlier-h" class="sub-head">Earlier</h3>
|
||||
<ul>
|
||||
{r.earlier.map((role) => (
|
||||
<li id={role.slug}>
|
||||
<div class="role-top">
|
||||
<span class="earlier-role">{role.data.role}</span>
|
||||
<span class="dates">{period(role)}</span>
|
||||
</div>
|
||||
<span class="company">{role.data.company}</span>
|
||||
{role.data.focus && <span class="focus">{role.data.focus}</span>}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
{
|
||||
r.projects.length > 0 && (
|
||||
<section aria-labelledby="projects-h" class="projects">
|
||||
<h3 id="projects-h" class="sub-head">Selected projects</h3>
|
||||
<ul>
|
||||
{r.projects.map((p) => (
|
||||
<li>
|
||||
<Star size={10} />
|
||||
<span>
|
||||
{p.link ? <a href={p.link}>{p.title}</a> : <strong>{p.title}</strong>}
|
||||
<span class="muted"> · {p.detail}</span>
|
||||
</span>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
{caseStudies.length > 0 && <Button variant="text" href="/work" arrow>See the case studies on the Work page</Button>}
|
||||
</section>
|
||||
</div>
|
||||
@@ -556,4 +593,61 @@ const isCore = (group: { core?: string[] }, item: string) => group.core?.some((c
|
||||
.role li :global(svg) {
|
||||
margin-top: 7px;
|
||||
}
|
||||
.earlier,
|
||||
.projects {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
.sub-head {
|
||||
margin: 8px 0 0;
|
||||
font-size: 16px;
|
||||
letter-spacing: 0.08em;
|
||||
color: var(--gk-gold-bright);
|
||||
}
|
||||
.earlier ul,
|
||||
.projects ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
.earlier li {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4px;
|
||||
padding: 14px 18px;
|
||||
border: 1px solid var(--gk-lines);
|
||||
border-radius: 10px;
|
||||
background: var(--gk-midnight);
|
||||
scroll-margin-top: 24px;
|
||||
}
|
||||
.earlier-role {
|
||||
font-family: var(--gk-font-display);
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.04em;
|
||||
color: var(--gk-text);
|
||||
}
|
||||
.earlier .company {
|
||||
font-size: 14px;
|
||||
}
|
||||
.projects li {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
font-size: 15px;
|
||||
line-height: 1.55;
|
||||
color: var(--gk-soft);
|
||||
}
|
||||
.projects li :global(svg) {
|
||||
flex: none;
|
||||
margin-top: 6px;
|
||||
}
|
||||
.projects strong,
|
||||
.projects a {
|
||||
color: var(--gk-text);
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user