From c7e09688bae3767e5c2bb157adb4a4cc67315dca Mon Sep 17 00:00:00 2001 From: Kaleb Cole Date: Fri, 17 Jul 2026 10:42:37 -0700 Subject: [PATCH 1/4] Add Episode 7 empty blog baseline Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1407f956-1591-47f7-b4bb-2096dd4a494e --- episode-07/portfolio/README.md | 12 + .../portfolio/assets/content-refresh.svg | 22 + .../portfolio/assets/first-gen-voices.svg | 17 + .../portfolio/assets/recycling-dashboard.svg | 21 + episode-07/portfolio/assets/trail-journal.svg | 14 + episode-07/portfolio/blog/drafts/.gitkeep | 0 episode-07/portfolio/blog/index.html | 44 ++ episode-07/portfolio/blog/posts/.gitkeep | 0 episode-07/portfolio/css/styles.css | 469 ++++++++++++++++++ episode-07/portfolio/index.html | 210 ++++++++ episode-07/portfolio/js/main.js | 101 ++++ .../portfolio/resume/Jamie-Rivera-Resume.docx | Bin 0 -> 36794 bytes 12 files changed, 910 insertions(+) create mode 100644 episode-07/portfolio/README.md create mode 100644 episode-07/portfolio/assets/content-refresh.svg create mode 100644 episode-07/portfolio/assets/first-gen-voices.svg create mode 100644 episode-07/portfolio/assets/recycling-dashboard.svg create mode 100644 episode-07/portfolio/assets/trail-journal.svg create mode 100644 episode-07/portfolio/blog/drafts/.gitkeep create mode 100644 episode-07/portfolio/blog/index.html create mode 100644 episode-07/portfolio/blog/posts/.gitkeep create mode 100644 episode-07/portfolio/css/styles.css create mode 100644 episode-07/portfolio/index.html create mode 100644 episode-07/portfolio/js/main.js create mode 100644 episode-07/portfolio/resume/Jamie-Rivera-Resume.docx diff --git a/episode-07/portfolio/README.md b/episode-07/portfolio/README.md new file mode 100644 index 0000000..e79a1a8 --- /dev/null +++ b/episode-07/portfolio/README.md @@ -0,0 +1,12 @@ +# Jamie Rivera portfolio + +This is the frozen Episode 7 starting website. It uses plain HTML, CSS, and JavaScript with no build step. + +## Blog folder contract + +- Save authored Markdown drafts in `blog/drafts/.md`. +- Generate approved static post pages in `blog/posts/.html`. +- Add a published post link to `blog/index.html` only after the draft is approved. +- Keep links relative so the website works from a local HTTP server and from a repository subpath. + +Drafts are source material and are not linked from the website. The starting state intentionally contains no published posts. diff --git a/episode-07/portfolio/assets/content-refresh.svg b/episode-07/portfolio/assets/content-refresh.svg new file mode 100644 index 0000000..91fe472 --- /dev/null +++ b/episode-07/portfolio/assets/content-refresh.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/episode-07/portfolio/assets/first-gen-voices.svg b/episode-07/portfolio/assets/first-gen-voices.svg new file mode 100644 index 0000000..ac1030e --- /dev/null +++ b/episode-07/portfolio/assets/first-gen-voices.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/episode-07/portfolio/assets/recycling-dashboard.svg b/episode-07/portfolio/assets/recycling-dashboard.svg new file mode 100644 index 0000000..ea853cf --- /dev/null +++ b/episode-07/portfolio/assets/recycling-dashboard.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/episode-07/portfolio/assets/trail-journal.svg b/episode-07/portfolio/assets/trail-journal.svg new file mode 100644 index 0000000..1c17e13 --- /dev/null +++ b/episode-07/portfolio/assets/trail-journal.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/episode-07/portfolio/blog/drafts/.gitkeep b/episode-07/portfolio/blog/drafts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/episode-07/portfolio/blog/index.html b/episode-07/portfolio/blog/index.html new file mode 100644 index 0000000..5d24d09 --- /dev/null +++ b/episode-07/portfolio/blog/index.html @@ -0,0 +1,44 @@ + + + + + + + Blog | Jamie Rivera + + + + + + + +
+
+
+

Blog

+
+
+ +
+
+ +
+
+

© Jamie Rivera

+
+
+ + + + diff --git a/episode-07/portfolio/blog/posts/.gitkeep b/episode-07/portfolio/blog/posts/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/episode-07/portfolio/css/styles.css b/episode-07/portfolio/css/styles.css new file mode 100644 index 0000000..36e89c4 --- /dev/null +++ b/episode-07/portfolio/css/styles.css @@ -0,0 +1,469 @@ +:root { + --bg: #fffdf9; + --surface: #ffffff; + --surface-soft: #fff6ef; + --text: #2f2a26; + --muted: #6f645d; + --accent: #c96f3d; + --accent-dark: #a95a2e; + --border: #ecdccf; + --radius: 16px; + --shadow: 0 8px 24px rgba(96, 65, 42, 0.08); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif; + color: var(--text); + background: var(--bg); + line-height: 1.65; +} + +img { + display: block; + max-width: 100%; +} + +a { + color: var(--accent-dark); + text-underline-offset: 0.18em; +} + +a:hover, +a:focus-visible { + color: var(--accent); +} + +h1, +h2, +h3 { + line-height: 1.2; + margin: 0 0 0.6rem; +} + +h1 { + font-size: clamp(2.1rem, 5vw, 3.4rem); +} + +h2 { + font-size: clamp(1.5rem, 3vw, 2rem); +} + +.container { + width: min(1100px, 92%); + margin-inline: auto; +} + +.narrow { + width: min(780px, 92%); +} + +.skip-link { + position: absolute; + left: -999px; + top: -999px; + background: var(--text); + color: #fff; + padding: 0.7rem 1rem; + border-radius: 10px; +} + +.skip-link:focus { + left: 1rem; + top: 1rem; + z-index: 1000; +} + +.site-header { + position: sticky; + top: 0; + z-index: 100; + border-bottom: 1px solid var(--border); + background: rgba(255, 253, 249, 0.96); + backdrop-filter: blur(4px); +} + +.nav { + min-height: 4.25rem; + display: flex; + align-items: center; + justify-content: space-between; + gap: 1rem; +} + +.brand { + color: var(--text); + text-decoration: none; + font-weight: 700; + letter-spacing: 0.01em; +} + +.nav-menu { + margin: 0; + padding: 0; + list-style: none; + display: flex; + gap: 1.3rem; +} + +.nav-menu a { + color: var(--text); + text-decoration: none; + font-weight: 600; +} + +.nav-menu a:hover, +.nav-menu a:focus-visible { + color: var(--accent-dark); +} + +.nav-toggle { + display: none; + width: 44px; + height: 44px; + border: 1px solid var(--border); + border-radius: 10px; + background: var(--surface); + padding: 10px 8px; + cursor: pointer; +} + +.nav-toggle span { + display: block; + height: 2px; + background: var(--text); + margin: 5px 0; +} + +.hero { + padding: clamp(4rem, 8vw, 7rem) 0; +} + +.hero-content { + width: min(800px, 100%); +} + +.eyebrow { + margin: 0; + color: var(--muted); + font-weight: 600; +} + +.headline { + margin: 0; + font-size: clamp(1.2rem, 2.7vw, 1.6rem); + color: var(--accent-dark); + font-weight: 600; +} + +.intro { + margin-top: 1rem; + font-size: 1.06rem; + max-width: 64ch; +} + +.hero-actions { + margin-top: 1.6rem; + display: flex; + flex-wrap: wrap; + gap: 0.8rem; +} + +.btn { + display: inline-block; + text-decoration: none; + font-weight: 700; + border-radius: 999px; + padding: 0.72rem 1.15rem; + transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease; +} + +.btn:hover, +.btn:focus-visible { + transform: translateY(-1px); +} + +.btn-primary { + color: #fff; + background: var(--accent); +} + +.btn-primary:hover, +.btn-primary:focus-visible { + background: var(--accent-dark); + color: #fff; +} + +.btn-secondary { + color: var(--text); + background: var(--surface); + border: 1px solid var(--border); +} + +.hero-links { + margin-top: 1.1rem; + display: flex; + flex-wrap: wrap; + gap: 0.8rem; + list-style: none; + padding: 0; +} + +.section { + padding: clamp(3.2rem, 6vw, 4.8rem) 0; +} + +.blog-hero { + padding: clamp(3.2rem, 6vw, 4.8rem) 0 1.5rem; +} + +.blog-list { + min-height: 16rem; + padding-bottom: clamp(3.2rem, 6vw, 4.8rem); +} + +.section-soft { + background: var(--surface-soft); +} + +.about-meta p { + margin: 0.45rem 0; +} + +.skills-grid { + display: grid; + grid-template-columns: repeat(4, minmax(0, 1fr)); + gap: 1rem; +} + +.card { + background: var(--surface); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: var(--shadow); + padding: 1.2rem; +} + +.timeline { + margin: 0; + padding: 0; + list-style: none; + position: relative; +} + +.timeline::before { + content: ""; + position: absolute; + left: 11px; + top: 0.6rem; + bottom: 0.6rem; + width: 2px; + background: var(--border); +} + +.timeline-item { + position: relative; + margin: 0 0 1rem 0; + padding-left: 2rem; +} + +.timeline-item::before { + content: ""; + position: absolute; + left: 3px; + top: 1.3rem; + width: 18px; + height: 18px; + border-radius: 50%; + border: 2px solid var(--accent); + background: var(--bg); +} + +.role-meta, +.org { + margin: 0; + color: var(--muted); +} + +.card ul { + margin: 0.7rem 0 0; + padding-left: 1.1rem; +} + +.projects-grid { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 1.1rem; +} + +.project-card { + border: 1px solid var(--border); + border-radius: var(--radius); + overflow: hidden; + background: var(--surface); + box-shadow: var(--shadow); + transition: transform 0.2s ease, box-shadow 0.2s ease; +} + +.project-card:hover, +.project-card:focus-within { + transform: translateY(-2px); + box-shadow: 0 12px 26px rgba(96, 65, 42, 0.12); +} + +.project-card img { + width: 100%; + aspect-ratio: 16 / 9; + object-fit: cover; + border-bottom: 1px solid var(--border); +} + +.project-content { + padding: 1rem 1rem 1.1rem; +} + +.project-content p { + margin: 0; +} + +.project-content .tags { + margin-top: 0.65rem; + color: var(--muted); + font-size: 0.93rem; + font-weight: 600; +} + +.involvement { + color: var(--muted); +} + +.site-footer { + border-top: 1px solid var(--border); + padding: 1.1rem 0 1.6rem; + color: var(--muted); +} + +@media (max-width: 920px) { + .skills-grid { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + +@media (max-width: 760px) { + .nav-toggle { + display: inline-block; + } + + .nav-menu { + position: absolute; + left: 4%; + right: 4%; + top: calc(100% + 0.4rem); + flex-direction: column; + gap: 0; + background: var(--surface); + border: 1px solid var(--border); + border-radius: 14px; + box-shadow: var(--shadow); + opacity: 0; + visibility: hidden; + transform: translateY(-8px); + transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease; + } + + .nav-menu li + li { + border-top: 1px solid var(--border); + } + + .nav-menu a { + display: block; + padding: 0.85rem 1rem; + } + + .nav-menu.is-open { + opacity: 1; + visibility: visible; + transform: translateY(0); + } + + .projects-grid { + grid-template-columns: 1fr; + } +} + +@media (max-width: 560px) { + .skills-grid { + grid-template-columns: 1fr; + } +} + +/* Email popup modal */ +.email-modal[hidden] { display: none; } +.email-modal { + position: fixed; + inset: 0; + z-index: 200; + display: flex; + align-items: center; + justify-content: center; + padding: 1rem; +} +.email-modal__overlay { + position: absolute; + inset: 0; + background: rgba(47, 42, 38, 0.5); +} +.email-modal__dialog { + position: relative; + z-index: 1; + width: min(100%, 420px); + background: var(--surface); + border: 1px solid var(--border); + border-radius: var(--radius); + box-shadow: 0 20px 50px rgba(96, 65, 42, 0.22); + padding: 1.5rem; +} +.email-modal__close { + position: absolute; + top: 0.5rem; + right: 0.7rem; + border: none; + background: transparent; + font-size: 1.6rem; + line-height: 1; + color: var(--muted); + cursor: pointer; +} +.email-modal__close:hover, +.email-modal__close:focus-visible { color: var(--text); } +.email-modal__title { margin: 0 0 0.3rem; } +.email-modal__desc { margin: 0 0 1rem; color: var(--muted); } +.email-modal__address { + display: flex; + align-items: center; + gap: 0.5rem; + background: var(--surface-soft); + border: 1px solid var(--border); + border-radius: 12px; + padding: 0.4rem 0.4rem 0.4rem 0.85rem; + margin-bottom: 0.9rem; +} +.email-modal__address span { + flex: 1; + font-family: "SFMono-Regular", ui-monospace, Consolas, monospace; + font-size: 0.92rem; + overflow-wrap: anywhere; +} +.email-modal__copy { white-space: nowrap; } +.email-modal__copy.copied { background: #3f8f5b; color: #fff; } +.email-modal__mail { width: 100%; text-align: center; } diff --git a/episode-07/portfolio/index.html b/episode-07/portfolio/index.html new file mode 100644 index 0000000..90a84ad --- /dev/null +++ b/episode-07/portfolio/index.html @@ -0,0 +1,210 @@ + + + + + + + Jamie Rivera | Portfolio + + + + + + + +
+
+
+

Seattle, WA

+

Jamie Rivera

+

Storyteller and data-curious.

+

+ I turn ideas into clear stories across writing, audio, and social, then use simple data to show impact. +

+ + +
+
+ +
+
+

About

+

+ I’m a junior Communication & Media Studies major at Cascade State University, with a minor in Data Analytics. + My work sits at the intersection of creativity and clarity: writing content people actually read, producing media that + feels human, and using lightweight data to understand what’s working. I’m currently looking for roles in content, + communications, and community programs. +

+
+

Education: B.A. Communication & Media Studies, Minor in Data Analytics (Expected May 2027)

+

GPA: 3.7 / 4.0

+

Relevant coursework: Digital Media Production, Intro to Data Analytics, Public Relations Writing, Web Content and Design

+
+
+
+ +
+
+

Skills

+
+
+

Tools

+

Microsoft 365 (Word, Excel, PowerPoint), Canva, Adobe Express, Audacity, basic HTML & CSS, Git & GitHub (learning)

+
+
+

Data & Research

+

Spreadsheets, basic charting, survey design

+
+
+

Communication

+

Copywriting, public speaking, social media strategy

+
+
+

Languages

+

English (native), Spanish (conversational)

+
+
+
+
+ +
+
+

Experience

+
    +
  1. +
    +

    Jun 2025 - Present · Seattle, WA

    +

    Marketing & Communications Intern

    +

    Greenline Community Trust

    +
      +
    • Rebuilt the nonprofit’s social presence and grew Instagram following by 40% in one semester.
    • +
    • Write and schedule a weekly newsletter reaching 1,200+ subscribers.
    • +
    • Produce short-form volunteer event recaps, from filming through captions.
    • +
    +
    +
  2. +
  3. +
    +

    Sep 2024 - Present · Seattle, WA

    +

    Peer Writing Tutor

    +

    Cascade State Writing Center

    +
      +
    • Coach 60+ students per term on essays, résumés, and applications.
    • +
    • Led two campus workshops on clear, structured writing.
    • +
    +
    +
  4. +
  5. +
    +

    2023 - 2024

    +

    Barista

    +

    Foghorn Coffee

    +
      +
    • Trained four new hires and kept service moving during high-volume mornings.
    • +
    +
    +
  6. +
+
+
+ +
+
+

Featured Projects

+
+
+ Abstract illustration representing a podcast conversation. +
+

First-Gen Voices Podcast

+

Student podcast featuring first-generation stories, with 15 episodes and 2,000+ downloads.

+

Podcast · Audio

+
+
+
+ Abstract chart shapes representing recycling trends. +
+

Campus Recycling Dashboard

+

Analyzed two years of waste data and translated trends into practical recommendations.

+

Data · Charts

+
+
+
+ Abstract layout blocks representing improved web content flow. +
+

Greenline Content Refresh

+

Rewrote “Get Involved” content and simplified signups to increase form completions.

+

Writing · UX

+
+
+
+ Abstract landscape illustration inspired by Pacific Northwest trails. +
+

Trail Journal

+

A growing photo-and-notes log documenting Pacific Northwest day hikes.

+

Photography · Storytelling

+
+
+
+
+
+ +
+
+

Contact

+

+ I’d love to connect about content, communications, and community-focused opportunities. +

+

+ +

+

+ Founder, First-Gen Voices Podcast · Member, Campus Sustainability Club · Volunteer, Seattle Public Library reading program +

+
+
+
+ +
+
+

© Jamie Rivera

+
+
+ + + + + + diff --git a/episode-07/portfolio/js/main.js b/episode-07/portfolio/js/main.js new file mode 100644 index 0000000..50d7c0e --- /dev/null +++ b/episode-07/portfolio/js/main.js @@ -0,0 +1,101 @@ +const navToggle = document.querySelector(".nav-toggle"); +const navMenu = document.querySelector(".nav-menu"); +const navLinks = document.querySelectorAll(".nav-menu a"); +const yearNode = document.getElementById("year"); + +if (yearNode) { + yearNode.textContent = new Date().getFullYear(); +} + +if (navToggle && navMenu) { + const setMenuState = (isOpen) => { + navMenu.classList.toggle("is-open", isOpen); + navToggle.setAttribute("aria-expanded", String(isOpen)); + navToggle.setAttribute("aria-label", isOpen ? "Close menu" : "Open menu"); + }; + + navToggle.addEventListener("click", () => { + const expanded = navToggle.getAttribute("aria-expanded") === "true"; + setMenuState(!expanded); + }); + + navLinks.forEach((link) => { + link.addEventListener("click", () => setMenuState(false)); + }); + + document.addEventListener("keydown", (event) => { + if (event.key === "Escape") { + setMenuState(false); + } + }); +} + +// Email popup modal +const emailModal = document.getElementById("emailModal"); +if (emailModal) { + const triggers = document.querySelectorAll(".email-trigger"); + const addressEl = document.getElementById("emailAddress"); + const copyBtn = document.getElementById("copyEmailBtn"); + const mailBtn = document.getElementById("openMailBtn"); + const closers = emailModal.querySelectorAll("[data-close]"); + let lastFocused = null; + let copyResetTimer; + + const resetCopy = () => { + clearTimeout(copyResetTimer); + copyBtn.textContent = "Copy"; + copyBtn.classList.remove("copied"); + }; + + function closeModal() { + emailModal.hidden = true; + resetCopy(); + document.removeEventListener("keydown", onKeydown); + if (lastFocused && typeof lastFocused.focus === "function") lastFocused.focus(); + } + + function onKeydown(event) { + if (event.key === "Escape") closeModal(); + } + + const openModal = (email) => { + if (email) { + addressEl.textContent = email; + mailBtn.href = "mailto:" + email; + } + lastFocused = document.activeElement; + emailModal.hidden = false; + copyBtn.focus(); + document.addEventListener("keydown", onKeydown); + }; + + const copyEmail = async () => { + const email = addressEl.textContent.trim(); + try { + await navigator.clipboard.writeText(email); + } catch (err) { + const ta = document.createElement("textarea"); + ta.value = email; + ta.setAttribute("readonly", ""); + ta.style.position = "absolute"; + ta.style.left = "-9999px"; + document.body.appendChild(ta); + ta.select(); + try { document.execCommand("copy"); } catch (e) { /* no-op */ } + document.body.removeChild(ta); + } + copyBtn.textContent = "Copied!"; + copyBtn.classList.add("copied"); + clearTimeout(copyResetTimer); + copyResetTimer = setTimeout(resetCopy, 2000); + }; + + triggers.forEach((trigger) => { + trigger.addEventListener("click", (event) => { + event.preventDefault(); + openModal(trigger.dataset.email); + }); + }); + copyBtn.addEventListener("click", copyEmail); + closers.forEach((closer) => closer.addEventListener("click", closeModal)); +} diff --git a/episode-07/portfolio/resume/Jamie-Rivera-Resume.docx b/episode-07/portfolio/resume/Jamie-Rivera-Resume.docx new file mode 100644 index 0000000000000000000000000000000000000000..5108f1867d5792264ab10aed891f9899cb984861 GIT binary patch literal 36794 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 Xff(S;3d}*ETqVem2+WDj-5?$S8%OOs literal 0 HcmV?d00001 From b8ae0d49c70e60796163c636c88c858cc4b373f2 Mon Sep 17 00:00:00 2001 From: Kaleb Cole Date: Fri, 17 Jul 2026 11:30:19 -0700 Subject: [PATCH 2/4] Align Episode 7 with merged portfolio Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1407f956-1591-47f7-b4bb-2096dd4a494e --- episode-07/portfolio/README.md | 23 +- .../portfolio/assets/content-refresh.svg | 22 - .../portfolio/assets/first-gen-voices.svg | 17 - .../portfolio/assets/recycling-dashboard.svg | 21 - episode-07/portfolio/assets/trail-journal.svg | 14 - episode-07/portfolio/blog/generate_posts.py | 186 +++++++ episode-07/portfolio/blog/index.html | 46 +- .../blog/{drafts => posts-src}/.gitkeep | 0 episode-07/portfolio/blog/posts.json | 1 + episode-07/portfolio/css/styles.css | 469 ------------------ episode-07/portfolio/index.html | 344 ++++++------- episode-07/portfolio/js/main.js | 101 ---- .../resume/Jamie Rivera - Resume.pdf | Bin 0 -> 55852 bytes .../portfolio/resume/Jamie-Rivera-Resume.docx | Bin 36794 -> 0 bytes episode-07/portfolio/script.js | 107 ++++ episode-07/portfolio/styles.css | 407 +++++++++++++++ 16 files changed, 923 insertions(+), 835 deletions(-) delete mode 100644 episode-07/portfolio/assets/content-refresh.svg delete mode 100644 episode-07/portfolio/assets/first-gen-voices.svg delete mode 100644 episode-07/portfolio/assets/recycling-dashboard.svg delete mode 100644 episode-07/portfolio/assets/trail-journal.svg create mode 100644 episode-07/portfolio/blog/generate_posts.py rename episode-07/portfolio/blog/{drafts => posts-src}/.gitkeep (100%) create mode 100644 episode-07/portfolio/blog/posts.json delete mode 100644 episode-07/portfolio/css/styles.css delete mode 100644 episode-07/portfolio/js/main.js create mode 100644 episode-07/portfolio/resume/Jamie Rivera - Resume.pdf delete mode 100644 episode-07/portfolio/resume/Jamie-Rivera-Resume.docx create mode 100644 episode-07/portfolio/script.js create mode 100644 episode-07/portfolio/styles.css diff --git a/episode-07/portfolio/README.md b/episode-07/portfolio/README.md index e79a1a8..14221d7 100644 --- a/episode-07/portfolio/README.md +++ b/episode-07/portfolio/README.md @@ -1,12 +1,27 @@ # Jamie Rivera portfolio -This is the frozen Episode 7 starting website. It uses plain HTML, CSS, and JavaScript with no build step. +This is the frozen Episode 7 starting website. It extends the Jamie Rivera portfolio merged in commit +`aab5fdf72c21520c12a435528cb2d09c28f418f1` and uses plain HTML, CSS, and JavaScript. ## Blog folder contract -- Save authored Markdown drafts in `blog/drafts/.md`. +- Save authored Markdown drafts in `blog/posts-src/.md`. - Generate approved static post pages in `blog/posts/.html`. -- Add a published post link to `blog/index.html` only after the draft is approved. +- Add approved post metadata to `blog/posts.json` so the homepage and full blog page list it. - Keep links relative so the website works from a local HTTP server and from a repository subpath. -Drafts are source material and are not linked from the website. The starting state intentionally contains no published posts. +Drafts are source material and are not linked from the website. The starting `posts.json` is empty, so this +recording baseline intentionally contains no published posts. + +Each Markdown source uses this metadata: + +```markdown +--- +title: Post title +date: 2026-07-17 +summary: A short description shown on the homepage and blog page. +--- +``` + +After approval, run `python blog/generate_posts.py` from this folder to regenerate the static post pages and +listing metadata. diff --git a/episode-07/portfolio/assets/content-refresh.svg b/episode-07/portfolio/assets/content-refresh.svg deleted file mode 100644 index 91fe472..0000000 --- a/episode-07/portfolio/assets/content-refresh.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/episode-07/portfolio/assets/first-gen-voices.svg b/episode-07/portfolio/assets/first-gen-voices.svg deleted file mode 100644 index ac1030e..0000000 --- a/episode-07/portfolio/assets/first-gen-voices.svg +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/episode-07/portfolio/assets/recycling-dashboard.svg b/episode-07/portfolio/assets/recycling-dashboard.svg deleted file mode 100644 index ea853cf..0000000 --- a/episode-07/portfolio/assets/recycling-dashboard.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/episode-07/portfolio/assets/trail-journal.svg b/episode-07/portfolio/assets/trail-journal.svg deleted file mode 100644 index 1c17e13..0000000 --- a/episode-07/portfolio/assets/trail-journal.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/episode-07/portfolio/blog/generate_posts.py b/episode-07/portfolio/blog/generate_posts.py new file mode 100644 index 0000000..ce788ce --- /dev/null +++ b/episode-07/portfolio/blog/generate_posts.py @@ -0,0 +1,186 @@ +from __future__ import annotations + +import html +import json +import re +from datetime import date +from pathlib import Path + + +BLOG_DIR = Path(__file__).parent +SOURCE_DIR = BLOG_DIR / "posts-src" +OUTPUT_DIR = BLOG_DIR / "posts" +POSTS_FILE = BLOG_DIR / "posts.json" +REQUIRED_FIELDS = ("title", "date", "summary") + + +def parse_post(source_path: Path) -> tuple[dict[str, str], str]: + text = source_path.read_text(encoding="utf-8") + if not text.startswith("---\n"): + raise ValueError(f"{source_path.name}: expected metadata between --- lines") + + try: + metadata_text, body = text[4:].split("\n---\n", 1) + except ValueError as error: + raise ValueError(f"{source_path.name}: metadata is missing its closing --- line") from error + + metadata: dict[str, str] = {} + for line in metadata_text.splitlines(): + key, separator, value = line.partition(":") + if not separator or not key.strip() or not value.strip(): + raise ValueError(f"{source_path.name}: invalid metadata line: {line}") + metadata[key.strip()] = value.strip() + + missing = [field for field in REQUIRED_FIELDS if not metadata.get(field)] + if missing: + raise ValueError(f"{source_path.name}: missing metadata: {', '.join(missing)}") + + date.fromisoformat(metadata["date"]) + if not re.fullmatch(r"[a-z0-9]+(?:-[a-z0-9]+)*", source_path.stem): + raise ValueError(f"{source_path.name}: filename must be a lowercase kebab-case slug") + + return metadata, body.strip() + + +def render_inline(text: str) -> str: + escaped = html.escape(text) + escaped = re.sub(r"\*\*(.+?)\*\*", r"\1", escaped) + escaped = re.sub( + r"\[([^\]]+)\]\((https?://[^)\s]+)\)", + r'\1', + escaped, + ) + return escaped + + +def render_markdown(markdown: str) -> str: + output: list[str] = [] + paragraph: list[str] = [] + list_type: str | None = None + + def flush_paragraph() -> None: + if paragraph: + output.append(f"

{render_inline(' '.join(paragraph))}

") + paragraph.clear() + + def close_list() -> None: + nonlocal list_type + if list_type: + output.append(f"") + list_type = None + + for raw_line in markdown.splitlines(): + line = raw_line.strip() + if not line: + flush_paragraph() + close_list() + continue + + heading = re.match(r"^(#{2,3})\s+(.+)$", line) + unordered = re.match(r"^[-*]\s+(.+)$", line) + ordered = re.match(r"^\d+\.\s+(.+)$", line) + + if heading: + flush_paragraph() + close_list() + level = len(heading.group(1)) + output.append(f"{render_inline(heading.group(2))}") + elif unordered or ordered: + flush_paragraph() + next_list_type = "ul" if unordered else "ol" + if list_type != next_list_type: + close_list() + output.append(f"<{next_list_type}>") + list_type = next_list_type + item = (unordered or ordered).group(1) + output.append(f"
  • {render_inline(item)}
  • ") + elif line.startswith("> "): + flush_paragraph() + close_list() + output.append(f"
    {render_inline(line[2:])}
    ") + else: + close_list() + paragraph.append(line) + + flush_paragraph() + close_list() + return "\n ".join(output) + + +def render_post_page(metadata: dict[str, str], body_html: str) -> str: + title = html.escape(metadata["title"]) + published = html.escape(metadata["date"]) + summary = html.escape(metadata["summary"]) + return f""" + + + + + {title} | Jamie Rivera + + + + + + +
    + +
    +
    +

    © Jamie Rivera

    +
    + + + +""" + + +def main() -> None: + OUTPUT_DIR.mkdir(parents=True, exist_ok=True) + posts: list[dict[str, str]] = [] + + for output_path in OUTPUT_DIR.glob("*.html"): + output_path.unlink() + + for source_path in SOURCE_DIR.glob("*.md"): + metadata, body = parse_post(source_path) + output_name = f"{source_path.stem}.html" + output_path = OUTPUT_DIR / output_name + output_path.write_text( + render_post_page(metadata, render_markdown(body)), + encoding="utf-8", + ) + posts.append( + { + "title": metadata["title"], + "date": metadata["date"], + "summary": metadata["summary"], + "url": f"posts/{output_name}", + } + ) + + posts.sort(key=lambda post: post["date"], reverse=True) + POSTS_FILE.write_text(f"{json.dumps(posts, indent=2)}\n", encoding="utf-8") + print(f"Generated {len(posts)} post(s).") + + +if __name__ == "__main__": + main() diff --git a/episode-07/portfolio/blog/index.html b/episode-07/portfolio/blog/index.html index 5d24d09..cf6a4bf 100644 --- a/episode-07/portfolio/blog/index.html +++ b/episode-07/portfolio/blog/index.html @@ -1,44 +1,50 @@ - + - - - + + Blog | Jamie Rivera - + + - + -
    -
    -
    -

    Blog

    -
    -
    +
    +
    +

    Writing and reflections

    +

    Blog

    +
    -
    +
    +
    +
    -

    © Jamie Rivera

    +

    © Jamie Rivera

    - + diff --git a/episode-07/portfolio/blog/drafts/.gitkeep b/episode-07/portfolio/blog/posts-src/.gitkeep similarity index 100% rename from episode-07/portfolio/blog/drafts/.gitkeep rename to episode-07/portfolio/blog/posts-src/.gitkeep diff --git a/episode-07/portfolio/blog/posts.json b/episode-07/portfolio/blog/posts.json new file mode 100644 index 0000000..fe51488 --- /dev/null +++ b/episode-07/portfolio/blog/posts.json @@ -0,0 +1 @@ +[] diff --git a/episode-07/portfolio/css/styles.css b/episode-07/portfolio/css/styles.css deleted file mode 100644 index 36e89c4..0000000 --- a/episode-07/portfolio/css/styles.css +++ /dev/null @@ -1,469 +0,0 @@ -:root { - --bg: #fffdf9; - --surface: #ffffff; - --surface-soft: #fff6ef; - --text: #2f2a26; - --muted: #6f645d; - --accent: #c96f3d; - --accent-dark: #a95a2e; - --border: #ecdccf; - --radius: 16px; - --shadow: 0 8px 24px rgba(96, 65, 42, 0.08); -} - -*, -*::before, -*::after { - box-sizing: border-box; -} - -html { - scroll-behavior: smooth; -} - -body { - margin: 0; - font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, system-ui, sans-serif; - color: var(--text); - background: var(--bg); - line-height: 1.65; -} - -img { - display: block; - max-width: 100%; -} - -a { - color: var(--accent-dark); - text-underline-offset: 0.18em; -} - -a:hover, -a:focus-visible { - color: var(--accent); -} - -h1, -h2, -h3 { - line-height: 1.2; - margin: 0 0 0.6rem; -} - -h1 { - font-size: clamp(2.1rem, 5vw, 3.4rem); -} - -h2 { - font-size: clamp(1.5rem, 3vw, 2rem); -} - -.container { - width: min(1100px, 92%); - margin-inline: auto; -} - -.narrow { - width: min(780px, 92%); -} - -.skip-link { - position: absolute; - left: -999px; - top: -999px; - background: var(--text); - color: #fff; - padding: 0.7rem 1rem; - border-radius: 10px; -} - -.skip-link:focus { - left: 1rem; - top: 1rem; - z-index: 1000; -} - -.site-header { - position: sticky; - top: 0; - z-index: 100; - border-bottom: 1px solid var(--border); - background: rgba(255, 253, 249, 0.96); - backdrop-filter: blur(4px); -} - -.nav { - min-height: 4.25rem; - display: flex; - align-items: center; - justify-content: space-between; - gap: 1rem; -} - -.brand { - color: var(--text); - text-decoration: none; - font-weight: 700; - letter-spacing: 0.01em; -} - -.nav-menu { - margin: 0; - padding: 0; - list-style: none; - display: flex; - gap: 1.3rem; -} - -.nav-menu a { - color: var(--text); - text-decoration: none; - font-weight: 600; -} - -.nav-menu a:hover, -.nav-menu a:focus-visible { - color: var(--accent-dark); -} - -.nav-toggle { - display: none; - width: 44px; - height: 44px; - border: 1px solid var(--border); - border-radius: 10px; - background: var(--surface); - padding: 10px 8px; - cursor: pointer; -} - -.nav-toggle span { - display: block; - height: 2px; - background: var(--text); - margin: 5px 0; -} - -.hero { - padding: clamp(4rem, 8vw, 7rem) 0; -} - -.hero-content { - width: min(800px, 100%); -} - -.eyebrow { - margin: 0; - color: var(--muted); - font-weight: 600; -} - -.headline { - margin: 0; - font-size: clamp(1.2rem, 2.7vw, 1.6rem); - color: var(--accent-dark); - font-weight: 600; -} - -.intro { - margin-top: 1rem; - font-size: 1.06rem; - max-width: 64ch; -} - -.hero-actions { - margin-top: 1.6rem; - display: flex; - flex-wrap: wrap; - gap: 0.8rem; -} - -.btn { - display: inline-block; - text-decoration: none; - font-weight: 700; - border-radius: 999px; - padding: 0.72rem 1.15rem; - transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease; -} - -.btn:hover, -.btn:focus-visible { - transform: translateY(-1px); -} - -.btn-primary { - color: #fff; - background: var(--accent); -} - -.btn-primary:hover, -.btn-primary:focus-visible { - background: var(--accent-dark); - color: #fff; -} - -.btn-secondary { - color: var(--text); - background: var(--surface); - border: 1px solid var(--border); -} - -.hero-links { - margin-top: 1.1rem; - display: flex; - flex-wrap: wrap; - gap: 0.8rem; - list-style: none; - padding: 0; -} - -.section { - padding: clamp(3.2rem, 6vw, 4.8rem) 0; -} - -.blog-hero { - padding: clamp(3.2rem, 6vw, 4.8rem) 0 1.5rem; -} - -.blog-list { - min-height: 16rem; - padding-bottom: clamp(3.2rem, 6vw, 4.8rem); -} - -.section-soft { - background: var(--surface-soft); -} - -.about-meta p { - margin: 0.45rem 0; -} - -.skills-grid { - display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); - gap: 1rem; -} - -.card { - background: var(--surface); - border: 1px solid var(--border); - border-radius: var(--radius); - box-shadow: var(--shadow); - padding: 1.2rem; -} - -.timeline { - margin: 0; - padding: 0; - list-style: none; - position: relative; -} - -.timeline::before { - content: ""; - position: absolute; - left: 11px; - top: 0.6rem; - bottom: 0.6rem; - width: 2px; - background: var(--border); -} - -.timeline-item { - position: relative; - margin: 0 0 1rem 0; - padding-left: 2rem; -} - -.timeline-item::before { - content: ""; - position: absolute; - left: 3px; - top: 1.3rem; - width: 18px; - height: 18px; - border-radius: 50%; - border: 2px solid var(--accent); - background: var(--bg); -} - -.role-meta, -.org { - margin: 0; - color: var(--muted); -} - -.card ul { - margin: 0.7rem 0 0; - padding-left: 1.1rem; -} - -.projects-grid { - display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); - gap: 1.1rem; -} - -.project-card { - border: 1px solid var(--border); - border-radius: var(--radius); - overflow: hidden; - background: var(--surface); - box-shadow: var(--shadow); - transition: transform 0.2s ease, box-shadow 0.2s ease; -} - -.project-card:hover, -.project-card:focus-within { - transform: translateY(-2px); - box-shadow: 0 12px 26px rgba(96, 65, 42, 0.12); -} - -.project-card img { - width: 100%; - aspect-ratio: 16 / 9; - object-fit: cover; - border-bottom: 1px solid var(--border); -} - -.project-content { - padding: 1rem 1rem 1.1rem; -} - -.project-content p { - margin: 0; -} - -.project-content .tags { - margin-top: 0.65rem; - color: var(--muted); - font-size: 0.93rem; - font-weight: 600; -} - -.involvement { - color: var(--muted); -} - -.site-footer { - border-top: 1px solid var(--border); - padding: 1.1rem 0 1.6rem; - color: var(--muted); -} - -@media (max-width: 920px) { - .skills-grid { - grid-template-columns: repeat(2, minmax(0, 1fr)); - } -} - -@media (max-width: 760px) { - .nav-toggle { - display: inline-block; - } - - .nav-menu { - position: absolute; - left: 4%; - right: 4%; - top: calc(100% + 0.4rem); - flex-direction: column; - gap: 0; - background: var(--surface); - border: 1px solid var(--border); - border-radius: 14px; - box-shadow: var(--shadow); - opacity: 0; - visibility: hidden; - transform: translateY(-8px); - transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease; - } - - .nav-menu li + li { - border-top: 1px solid var(--border); - } - - .nav-menu a { - display: block; - padding: 0.85rem 1rem; - } - - .nav-menu.is-open { - opacity: 1; - visibility: visible; - transform: translateY(0); - } - - .projects-grid { - grid-template-columns: 1fr; - } -} - -@media (max-width: 560px) { - .skills-grid { - grid-template-columns: 1fr; - } -} - -/* Email popup modal */ -.email-modal[hidden] { display: none; } -.email-modal { - position: fixed; - inset: 0; - z-index: 200; - display: flex; - align-items: center; - justify-content: center; - padding: 1rem; -} -.email-modal__overlay { - position: absolute; - inset: 0; - background: rgba(47, 42, 38, 0.5); -} -.email-modal__dialog { - position: relative; - z-index: 1; - width: min(100%, 420px); - background: var(--surface); - border: 1px solid var(--border); - border-radius: var(--radius); - box-shadow: 0 20px 50px rgba(96, 65, 42, 0.22); - padding: 1.5rem; -} -.email-modal__close { - position: absolute; - top: 0.5rem; - right: 0.7rem; - border: none; - background: transparent; - font-size: 1.6rem; - line-height: 1; - color: var(--muted); - cursor: pointer; -} -.email-modal__close:hover, -.email-modal__close:focus-visible { color: var(--text); } -.email-modal__title { margin: 0 0 0.3rem; } -.email-modal__desc { margin: 0 0 1rem; color: var(--muted); } -.email-modal__address { - display: flex; - align-items: center; - gap: 0.5rem; - background: var(--surface-soft); - border: 1px solid var(--border); - border-radius: 12px; - padding: 0.4rem 0.4rem 0.4rem 0.85rem; - margin-bottom: 0.9rem; -} -.email-modal__address span { - flex: 1; - font-family: "SFMono-Regular", ui-monospace, Consolas, monospace; - font-size: 0.92rem; - overflow-wrap: anywhere; -} -.email-modal__copy { white-space: nowrap; } -.email-modal__copy.copied { background: #3f8f5b; color: #fff; } -.email-modal__mail { width: 100%; text-align: center; } diff --git a/episode-07/portfolio/index.html b/episode-07/portfolio/index.html index 90a84ad..fa25828 100644 --- a/episode-07/portfolio/index.html +++ b/episode-07/portfolio/index.html @@ -1,210 +1,220 @@ - + - - - + + Jamie Rivera | Portfolio - + + - + -
    -
    -
    -

    Seattle, WA

    -

    Jamie Rivera

    -

    Storyteller and data-curious.

    -

    - I turn ideas into clear stories across writing, audio, and social, then use simple data to show impact. -

    - - +
    +
    +

    Seattle, WA

    +

    Jamie Rivera (they/them)

    +

    Communication & Media Studies Student | Storyteller and data-curious

    +

    + Junior Communication & Media Studies major with a Data Analytics minor who turns ideas into clear stories + across writing, audio, and social. Comfortable pairing creative work with simple data to show impact. +

    +
    -
    -
    -

    About

    -

    - I’m a junior Communication & Media Studies major at Cascade State University, with a minor in Data Analytics. - My work sits at the intersection of creativity and clarity: writing content people actually read, producing media that - feels human, and using lightweight data to understand what’s working. I’m currently looking for roles in content, - communications, and community programs. -

    -
    -

    Education: B.A. Communication & Media Studies, Minor in Data Analytics (Expected May 2027)

    -

    GPA: 3.7 / 4.0

    -

    Relevant coursework: Digital Media Production, Intro to Data Analytics, Public Relations Writing, Web Content and Design

    -
    +
    +

    About

    +

    + I am a junior at Cascade State University studying Communication & Media Studies with a minor in Data + Analytics. I enjoy creating clear, audience-first content and using simple data to show what is working. + I am seeking internship roles in content, communications, and community programs. +

    +
    + +
    +

    Resume Preview

    +

    + If the preview does not load in your browser, use the download button above. +

    +
    +
    -
    -
    -

    Skills

    -
    -
    -

    Tools

    -

    Microsoft 365 (Word, Excel, PowerPoint), Canva, Adobe Express, Audacity, basic HTML & CSS, Git & GitHub (learning)

    -
    -
    -

    Data & Research

    -

    Spreadsheets, basic charting, survey design

    -
    -
    -

    Communication

    -

    Copywriting, public speaking, social media strategy

    -
    -
    -

    Languages

    -

    English (native), Spanish (conversational)

    -
    -
    +
    +

    Experience

    +
    +
    +

    Marketing and Communications Intern

    +

    Greenline Community Trust | Seattle, WA | Jun 2025 - Present

    +
      +
    • Rebuilt the nonprofit social presence and grew Instagram following by 40% in one semester.
    • +
    • Write and schedule a weekly newsletter reaching more than 1,200 subscribers.
    • +
    • Produce short-form volunteer event recaps from filming through captions.
    • +
    +
    +
    +

    Peer Writing Tutor

    +

    Cascade State Writing Center | Seattle, WA | Sep 2024 - Present

    +
      +
    • Coach 60+ students each term on essays, resumes, and application materials.
    • +
    • Led two campus workshops on clear, structured writing.
    • +
    +
    +
    +

    Barista

    +

    Foghorn Coffee | 2023 - 2024

    +
      +
    • Trained four new hires and supported reliable service during high-volume shifts.
    • +
    +
    -
    -
    -

    Experience

    -
      -
    1. -
      -

      Jun 2025 - Present · Seattle, WA

      -

      Marketing & Communications Intern

      -

      Greenline Community Trust

      -
        -
      • Rebuilt the nonprofit’s social presence and grew Instagram following by 40% in one semester.
      • -
      • Write and schedule a weekly newsletter reaching 1,200+ subscribers.
      • -
      • Produce short-form volunteer event recaps, from filming through captions.
      • -
      -
      -
    2. -
    3. -
      -

      Sep 2024 - Present · Seattle, WA

      -

      Peer Writing Tutor

      -

      Cascade State Writing Center

      -
        -
      • Coach 60+ students per term on essays, résumés, and applications.
      • -
      • Led two campus workshops on clear, structured writing.
      • -
      -
      -
    4. -
    5. -
      -

      2023 - 2024

      -

      Barista

      -

      Foghorn Coffee

      -
        -
      • Trained four new hires and kept service moving during high-volume mornings.
      • -
      -
      -
    6. -
    +
    +

    Projects

    +
    +
    +

    First-Gen Voices Podcast (Founder & Producer)

    +

    2024 - Present

    +
      +
    • Launched a student podcast featuring first-generation college stories.
    • +
    • Published 15 episodes and reached 2,000+ downloads.
    • +
    • Own recording, editing, cover art, and release scheduling.
    • +
    + Podcast link (TODO: add URL) +
    +
    +

    Campus Recycling Dashboard

    +

    Spring 2025

    +
      +
    • Analyzed two years of campus waste data and built charts of recycling trends.
    • +
    • Recommended three changes that the sustainability office later piloted.
    • +
    +
    +
    +

    Greenline Content Refresh

    +

    Internship Project | 2025

    +
      +
    • Rewrote the Get Involved page and simplified volunteer signup flow, lifting completions.
    • +
    +
    +
    +

    Trail Journal

    +

    Personal Project | Ongoing

    +
      +
    • Growing photo-and-notes log of Pacific Northwest day hikes.
    • +
    + Project link (TODO: add URL) +
    -
    -
    -

    Featured Projects

    -
    -
    - Abstract illustration representing a podcast conversation. -
    -

    First-Gen Voices Podcast

    -

    Student podcast featuring first-generation stories, with 15 episodes and 2,000+ downloads.

    -

    Podcast · Audio

    -
    -
    -
    - Abstract chart shapes representing recycling trends. -
    -

    Campus Recycling Dashboard

    -

    Analyzed two years of waste data and translated trends into practical recommendations.

    -

    Data · Charts

    -
    -
    -
    - Abstract layout blocks representing improved web content flow. -
    -

    Greenline Content Refresh

    -

    Rewrote “Get Involved” content and simplified signups to increase form completions.

    -

    Writing · UX

    -
    -
    -
    - Abstract landscape illustration inspired by Pacific Northwest trails. -
    -

    Trail Journal

    -

    A growing photo-and-notes log documenting Pacific Northwest day hikes.

    -

    Photography · Storytelling

    -
    -
    -
    +
    +

    Blog

    +
    +

    View full blog

    +
    + +
    +

    Skills

    +
    +
    +

    Tools

    +

    Microsoft 365, Canva, Adobe Express, Audacity, basic HTML/CSS, Git/GitHub (learning)

    +
    +
    +

    Data

    +

    Spreadsheets, basic charting, survey design

    +
    +
    +

    Communication

    +

    Copywriting, public speaking, social media strategy

    +
    +
    +

    Languages

    +

    English (native), Spanish (conversational)

    +
    -
    -
    -

    Contact

    -

    - I’d love to connect about content, communications, and community-focused opportunities. -

    -

    - -

    -

    - Founder, First-Gen Voices Podcast · Member, Campus Sustainability Club · Volunteer, Seattle Public Library reading program +

    +

    Education

    +
    +

    Cascade State University

    +

    Seattle, WA | Expected May 2027

    +

    B.A. in Communication & Media Studies, Minor in Data Analytics | GPA 3.7 / 4.0

    +

    + Relevant coursework: Digital Media Production, Intro to Data Analytics, Public Relations Writing, Web + Content and Design

    +
    +
    + +
    +

    Leadership & Involvement

    +
      +
    • Founder, First-Gen Voices Podcast (2024 - Present)
    • +
    • Member, Campus Sustainability Club
    • +
    • Volunteer, Seattle Public Library reading program
    • +
    +
    + +
    +

    Contact

    +

    + I am currently looking for internship opportunities in content, communications, and community-focused teams. + If you are hiring, I would love to connect. +

    +
    -

    © Jamie Rivera

    +

    © Jamie Rivera

    - - - + diff --git a/episode-07/portfolio/js/main.js b/episode-07/portfolio/js/main.js deleted file mode 100644 index 50d7c0e..0000000 --- a/episode-07/portfolio/js/main.js +++ /dev/null @@ -1,101 +0,0 @@ -const navToggle = document.querySelector(".nav-toggle"); -const navMenu = document.querySelector(".nav-menu"); -const navLinks = document.querySelectorAll(".nav-menu a"); -const yearNode = document.getElementById("year"); - -if (yearNode) { - yearNode.textContent = new Date().getFullYear(); -} - -if (navToggle && navMenu) { - const setMenuState = (isOpen) => { - navMenu.classList.toggle("is-open", isOpen); - navToggle.setAttribute("aria-expanded", String(isOpen)); - navToggle.setAttribute("aria-label", isOpen ? "Close menu" : "Open menu"); - }; - - navToggle.addEventListener("click", () => { - const expanded = navToggle.getAttribute("aria-expanded") === "true"; - setMenuState(!expanded); - }); - - navLinks.forEach((link) => { - link.addEventListener("click", () => setMenuState(false)); - }); - - document.addEventListener("keydown", (event) => { - if (event.key === "Escape") { - setMenuState(false); - } - }); -} - -// Email popup modal -const emailModal = document.getElementById("emailModal"); -if (emailModal) { - const triggers = document.querySelectorAll(".email-trigger"); - const addressEl = document.getElementById("emailAddress"); - const copyBtn = document.getElementById("copyEmailBtn"); - const mailBtn = document.getElementById("openMailBtn"); - const closers = emailModal.querySelectorAll("[data-close]"); - let lastFocused = null; - let copyResetTimer; - - const resetCopy = () => { - clearTimeout(copyResetTimer); - copyBtn.textContent = "Copy"; - copyBtn.classList.remove("copied"); - }; - - function closeModal() { - emailModal.hidden = true; - resetCopy(); - document.removeEventListener("keydown", onKeydown); - if (lastFocused && typeof lastFocused.focus === "function") lastFocused.focus(); - } - - function onKeydown(event) { - if (event.key === "Escape") closeModal(); - } - - const openModal = (email) => { - if (email) { - addressEl.textContent = email; - mailBtn.href = "mailto:" + email; - } - lastFocused = document.activeElement; - emailModal.hidden = false; - copyBtn.focus(); - document.addEventListener("keydown", onKeydown); - }; - - const copyEmail = async () => { - const email = addressEl.textContent.trim(); - try { - await navigator.clipboard.writeText(email); - } catch (err) { - const ta = document.createElement("textarea"); - ta.value = email; - ta.setAttribute("readonly", ""); - ta.style.position = "absolute"; - ta.style.left = "-9999px"; - document.body.appendChild(ta); - ta.select(); - try { document.execCommand("copy"); } catch (e) { /* no-op */ } - document.body.removeChild(ta); - } - copyBtn.textContent = "Copied!"; - copyBtn.classList.add("copied"); - clearTimeout(copyResetTimer); - copyResetTimer = setTimeout(resetCopy, 2000); - }; - - triggers.forEach((trigger) => { - trigger.addEventListener("click", (event) => { - event.preventDefault(); - openModal(trigger.dataset.email); - }); - }); - copyBtn.addEventListener("click", copyEmail); - closers.forEach((closer) => closer.addEventListener("click", closeModal)); -} diff --git a/episode-07/portfolio/resume/Jamie Rivera - Resume.pdf b/episode-07/portfolio/resume/Jamie Rivera - Resume.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f2ff974f36f792ad717f778b8ed32a689f6cd2af GIT binary patch literal 55852 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

    ig?_^8xY9W(mnBK@MP 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 literal 0 HcmV?d00001 diff --git a/episode-07/portfolio/resume/Jamie-Rivera-Resume.docx b/episode-07/portfolio/resume/Jamie-Rivera-Resume.docx deleted file mode 100644 index 5108f1867d5792264ab10aed891f9899cb984861..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36794 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 Xff(S;3d}*ETqVem2+WDj-5?$S8%OOs diff --git a/episode-07/portfolio/script.js b/episode-07/portfolio/script.js new file mode 100644 index 0000000..da56423 --- /dev/null +++ b/episode-07/portfolio/script.js @@ -0,0 +1,107 @@ +const navToggle = document.querySelector(".nav-toggle"); +const navLinks = document.querySelector(".nav-links"); +const themeToggle = document.querySelector("#theme-toggle"); + +const themeStorageKey = "portfolio-theme"; +const savedTheme = localStorage.getItem(themeStorageKey); +const preferredTheme = window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"; +const initialTheme = savedTheme || preferredTheme; + +document.documentElement.setAttribute("data-theme", initialTheme); + +if (themeToggle) { + const syncThemeToggle = () => { + const isDark = document.documentElement.getAttribute("data-theme") === "dark"; + themeToggle.dataset.mode = isDark ? "dark" : "light"; + themeToggle.textContent = isDark ? "Light mode" : "Dark mode"; + themeToggle.setAttribute("aria-pressed", String(isDark)); + themeToggle.setAttribute("aria-label", isDark ? "Switch to light mode" : "Switch to dark mode"); + }; + + syncThemeToggle(); + + themeToggle.addEventListener("click", () => { + const isDark = document.documentElement.getAttribute("data-theme") === "dark"; + const nextTheme = isDark ? "light" : "dark"; + document.documentElement.setAttribute("data-theme", nextTheme); + localStorage.setItem(themeStorageKey, nextTheme); + syncThemeToggle(); + }); +} + +if (navToggle && navLinks) { + navToggle.addEventListener("click", () => { + const isExpanded = navToggle.getAttribute("aria-expanded") === "true"; + navToggle.setAttribute("aria-expanded", String(!isExpanded)); + navLinks.classList.toggle("open", !isExpanded); + }); + + navLinks.querySelectorAll("a").forEach((link) => { + link.addEventListener("click", () => { + navToggle.setAttribute("aria-expanded", "false"); + navLinks.classList.remove("open"); + }); + }); +} + +const yearElement = document.querySelector("#year"); +if (yearElement) { + yearElement.textContent = String(new Date().getFullYear()); +} + +const revealElements = document.querySelectorAll(".reveal"); + +if ("IntersectionObserver" in window) { + const observer = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + if (entry.isIntersecting) { + entry.target.classList.add("show"); + observer.unobserve(entry.target); + } + }); + }, + { threshold: 0.15 } + ); + + revealElements.forEach((element) => observer.observe(element)); +} else { + revealElements.forEach((element) => element.classList.add("show")); +} + +const renderPostList = async (list) => { + const response = await fetch(list.dataset.postSource); + if (!response.ok) { + throw new Error(`Unable to load blog posts: ${response.status}`); + } + + const posts = await response.json(); + const limit = Number.parseInt(list.dataset.postLimit, 10); + const visiblePosts = Number.isNaN(limit) ? posts : posts.slice(0, limit); + const postPrefix = list.dataset.postPrefix || ""; + + visiblePosts.forEach((post) => { + const article = document.createElement("article"); + article.className = "blog-card"; + + const heading = document.createElement(list.dataset.postLimit ? "h3" : "h2"); + const link = document.createElement("a"); + link.href = `${postPrefix}${post.url}`; + link.textContent = post.title; + heading.append(link); + + const date = document.createElement("p"); + date.className = "meta"; + date.textContent = post.date; + + const summary = document.createElement("p"); + summary.textContent = post.summary; + + article.append(heading, date, summary); + list.append(article); + }); +}; + +document.querySelectorAll("[data-post-list]").forEach((list) => { + renderPostList(list).catch((error) => console.error(error)); +}); diff --git a/episode-07/portfolio/styles.css b/episode-07/portfolio/styles.css new file mode 100644 index 0000000..b6a912a --- /dev/null +++ b/episode-07/portfolio/styles.css @@ -0,0 +1,407 @@ +:root { + --bg: #f7f8f6; + --surface: #ffffff; + --text: #111111; + --muted: #2f3b2f; + --line: #d8ddd2; + --primary: #1f6f3b; + --primary-hover: #16562d; + --accent: #e46f1b; + --accent-hover: #bf5a14; + --header-bg: rgba(247, 248, 246, 0.95); + --focus-ring: #f6b17b; + --skip-bg: #111111; + --btn-secondary-bg: #fff1e7; + --btn-secondary-border: #f6b17b; + --btn-secondary-hover-bg: #ffe5d4; + --radius: 14px; + --shadow: 0 8px 24px rgba(2, 8, 23, 0.08); + --space-1: 0.5rem; + --space-2: 0.75rem; + --space-3: 1rem; + --space-4: 1.5rem; + --space-5: 2rem; + --space-6: 3rem; + --max-width: 1100px; +} + +:root[data-theme="dark"] { + color-scheme: dark; + --bg: #101211; + --surface: #181d1a; + --text: #f2f7f0; + --muted: #b8c8b7; + --line: #2d3931; + --primary: #37a15b; + --primary-hover: #2a8449; + --accent: #ff9b45; + --accent-hover: #ffb980; + --header-bg: rgba(16, 18, 17, 0.95); + --focus-ring: #ffb980; + --skip-bg: #000000; + --btn-secondary-bg: #2a2017; + --btn-secondary-border: #775134; + --btn-secondary-hover-bg: #35291d; + --shadow: 0 8px 24px rgba(0, 0, 0, 0.35); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + font-family: "Segoe UI", system-ui, -apple-system, sans-serif; + color: var(--text); + background: var(--bg); + line-height: 1.6; +} + +a { + color: var(--primary); +} + +a:hover { + color: var(--primary-hover); +} + +.container { + width: min(100% - 2rem, var(--max-width)); + margin-inline: auto; +} + +.skip-link { + position: absolute; + top: -100px; + left: 1rem; + background: var(--skip-bg); + color: #fff; + padding: 0.5rem 0.75rem; + z-index: 9999; +} + +.skip-link:focus { + top: 1rem; +} + +.site-header { + position: sticky; + top: 0; + z-index: 10; + background: var(--header-bg); + border-bottom: 1px solid var(--line); + backdrop-filter: blur(8px); +} + +.nav { + position: relative; + min-height: 64px; + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--space-3); +} + +.nav-controls { + display: flex; + align-items: center; + gap: var(--space-2); +} + +.brand { + text-decoration: none; + color: var(--text); + font-weight: 700; +} + +.nav-toggle { + display: none; + border: 1px solid var(--line); + border-radius: 8px; + background: var(--surface); + padding: 0.4rem 0.7rem; + font: inherit; +} + +.theme-toggle { + display: inline-flex; + align-items: center; + gap: 0.4rem; + border: 1px solid var(--btn-secondary-border); + border-radius: 8px; + background: var(--btn-secondary-bg); + color: var(--accent-hover); + padding: 0.4rem 0.7rem; + font: inherit; + font-weight: 600; +} + +.theme-toggle::before { + content: "🌙"; + line-height: 1; +} + +.theme-toggle[data-mode="dark"]::before { + content: "☀️"; +} + +.theme-toggle:hover { + background: var(--btn-secondary-hover-bg); +} + +.nav-links { + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: 0.9rem; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; +} + +.nav-links a:focus-visible, +.btn:focus-visible, +.nav-toggle:focus-visible, +.theme-toggle:focus-visible { + outline: 3px solid var(--focus-ring); + outline-offset: 2px; + border-radius: 6px; +} + +.hero { + padding-block: var(--space-6); +} + +.eyebrow { + text-transform: uppercase; + letter-spacing: 0.08em; + color: var(--muted); + font-size: 0.85rem; + margin-bottom: var(--space-2); +} + +h1 { + font-size: clamp(2rem, 5vw, 3rem); + line-height: 1.2; + margin: 0; +} + +.headline { + font-size: clamp(1.1rem, 2.8vw, 1.35rem); + color: var(--muted); + margin: var(--space-2) 0 var(--space-3); +} + +.summary { + max-width: 70ch; +} + +.section { + padding-block: var(--space-5); +} + +.resume-frame-wrap { + background: var(--surface); + border: 1px solid var(--line); + border-radius: var(--radius); + box-shadow: var(--shadow); + overflow: hidden; +} + +.resume-frame { + display: block; + width: 100%; + min-height: 900px; + border: 0; +} + +h2 { + margin-top: 0; + margin-bottom: var(--space-4); + font-size: clamp(1.5rem, 4vw, 2rem); +} + +h3 { + margin: 0 0 var(--space-1); + font-size: 1.1rem; +} + +.cards, +.grid, +.blog-list { + display: grid; + gap: var(--space-3); +} + +.cards { + grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); +} + +.grid { + grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); +} + +.card, +.panel, +.blog-card { + background: var(--surface); + border: 1px solid var(--line); + border-radius: var(--radius); + padding: var(--space-4); + box-shadow: var(--shadow); +} + +.blog-card h2, +.blog-card h3 { + margin-bottom: var(--space-1); +} + +.blog-card h2 { + font-size: 1.3rem; +} + +.blog-card p:last-child { + margin-bottom: 0; +} + +.blog-actions { + margin-top: var(--space-4); + font-weight: 600; +} + +.blog-post { + max-width: 760px; +} + +.blog-post > * + * { + margin-top: var(--space-3); +} + +.meta { + color: var(--muted); + font-size: 0.95rem; + margin-top: 0; +} + +.small { + font-size: 0.95rem; + color: var(--muted); +} + +.muted { + color: var(--muted); + font-weight: 500; +} + +.list-clean { + background: var(--surface); + border: 1px solid var(--line); + border-radius: var(--radius); + padding: var(--space-4) var(--space-5); + box-shadow: var(--shadow); +} + +.list-clean li + li { + margin-top: var(--space-2); +} + +.cta-row { + display: flex; + flex-wrap: wrap; + gap: var(--space-2); + margin-top: var(--space-3); +} + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 10px; + padding: 0.62rem 1rem; + text-decoration: none; + font-weight: 600; + border: 1px solid transparent; + transition: transform 0.15s ease, box-shadow 0.15s ease; +} + +.btn:hover { + transform: translateY(-1px); +} + +.btn-primary { + background: var(--primary); + color: #fff; +} + +.btn-primary:hover { + color: #fff; + background: var(--primary-hover); +} + +.btn-secondary { + background: var(--btn-secondary-bg); + border-color: var(--btn-secondary-border); + color: var(--accent-hover); +} + +.btn-secondary:hover { + background: var(--btn-secondary-hover-bg); + color: var(--accent-hover); +} + +.site-footer { + border-top: 1px solid var(--line); + margin-top: var(--space-6); + padding: var(--space-4) 0; + color: var(--muted); +} + +.reveal { + opacity: 0; + transform: translateY(8px); + transition: opacity 0.45s ease, transform 0.45s ease; +} + +.reveal.show { + opacity: 1; + transform: translateY(0); +} + +@media (max-width: 900px) { + .nav-toggle { + display: inline-flex; + } + + .nav-links { + position: absolute; + right: 1rem; + top: 62px; + width: min(240px, 88vw); + padding: var(--space-3); + border: 1px solid var(--line); + border-radius: 12px; + box-shadow: var(--shadow); + background: var(--surface); + display: none; + flex-direction: column; + } + + .nav-links.open { + display: flex; + } + + .resume-frame { + min-height: 600px; + } +} From 6b584511cf1c79ee165acbec585414f6d3e19f58 Mon Sep 17 00:00:00 2001 From: Kaleb Cole Date: Fri, 17 Jul 2026 11:37:13 -0700 Subject: [PATCH 3/4] Clarify Episode 7 portfolio contents Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1407f956-1591-47f7-b4bb-2096dd4a494e --- episode-07/portfolio/README.md | 39 ++++++++++++++-------------------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/episode-07/portfolio/README.md b/episode-07/portfolio/README.md index 14221d7..a156afc 100644 --- a/episode-07/portfolio/README.md +++ b/episode-07/portfolio/README.md @@ -1,27 +1,20 @@ -# Jamie Rivera portfolio +# Episode 7 portfolio website -This is the frozen Episode 7 starting website. It extends the Jamie Rivera portfolio merged in commit -`aab5fdf72c21520c12a435528cb2d09c28f418f1` and uses plain HTML, CSS, and JavaScript. +This folder contains Jamie Rivera's portfolio website for Episode 7. -## Blog folder contract +## Folder contents -- Save authored Markdown drafts in `blog/posts-src/.md`. -- Generate approved static post pages in `blog/posts/.html`. -- Add approved post metadata to `blog/posts.json` so the homepage and full blog page list it. -- Keep links relative so the website works from a local HTTP server and from a repository subpath. +| Path | Purpose | +| --- | --- | +| `index.html` | Main portfolio page, including the homepage blog preview. | +| `styles.css` | Shared styling for the portfolio, blog, and published posts. | +| `script.js` | Responsive navigation, theme switching, animations, and blog listing behavior. | +| `resume/` | Resume displayed and downloaded from the portfolio. | +| `blog/index.html` | Full list of published blog posts. | +| `blog/posts-src/` | Markdown source files used to write and edit posts. | +| `blog/posts/` | Static HTML pages generated for published posts. | +| `blog/posts.json` | Post titles, dates, summaries, and links shown in the website's blog lists. | +| `blog/generate_posts.py` | Converts approved Markdown sources into static post pages and updates `posts.json`. | -Drafts are source material and are not linked from the website. The starting `posts.json` is empty, so this -recording baseline intentionally contains no published posts. - -Each Markdown source uses this metadata: - -```markdown ---- -title: Post title -date: 2026-07-17 -summary: A short description shown on the homepage and blog page. ---- -``` - -After approval, run `python blog/generate_posts.py` from this folder to regenerate the static post pages and -listing metadata. +The website starts with no published posts. To generate approved posts, run +`python blog/generate_posts.py` from this folder. From b0dd32deacbde92e03e8350478afacb6eeef59a2 Mon Sep 17 00:00:00 2001 From: Kaleb Cole Date: Fri, 17 Jul 2026 11:38:56 -0700 Subject: [PATCH 4/4] Restore full blog navigation Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 1407f956-1591-47f7-b4bb-2096dd4a494e --- episode-07/portfolio/blog/generate_posts.py | 10 +++++++++- episode-07/portfolio/blog/index.html | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/episode-07/portfolio/blog/generate_posts.py b/episode-07/portfolio/blog/generate_posts.py index ce788ce..81a7caf 100644 --- a/episode-07/portfolio/blog/generate_posts.py +++ b/episode-07/portfolio/blog/generate_posts.py @@ -127,7 +127,15 @@ def render_post_page(metadata: dict[str, str], body_html: str) -> str: Jamie Rivera