From b41ab2710205d9e16e8aa6e0e4fbe2c82700e716 Mon Sep 17 00:00:00 2001 From: furedea <132188853+furedea@users.noreply.github.com> Date: Mon, 19 Oct 2026 15:02:10 +0900 Subject: [PATCH 1/5] feat: restructure the home page for engineering job hunting Lead with About (introduction, skills, education) and Works, keep Research next to its Publications & Talks, and fold News into that section so the same talk is not listed twice. Refs #74 Co-Authored-By: Claude Opus 5.5 --- src/components/about_section.astro | 14 ++++++ src/components/news_section.astro | 39 --------------- src/components/publications_section.astro | 19 ++++++- src/data/profile.ts | 7 +++ src/data/sections.ts | 3 +- src/data/works.ts | 45 +++++++++++++++++ src/i18n/ui.ts | 14 ++---- src/pages/[lang]/index.astro | 4 +- tests/e2e/site.spec.ts | 60 +++++++++++++++++++++++ 9 files changed, 150 insertions(+), 55 deletions(-) delete mode 100644 src/components/news_section.astro diff --git a/src/components/about_section.astro b/src/components/about_section.astro index 8618fca..8984945 100644 --- a/src/components/about_section.astro +++ b/src/components/about_section.astro @@ -2,7 +2,9 @@ import type { Lang } from "@i18n/ui"; import { useTranslations, pickLocale } from "@i18n/utils"; import { education } from "@data/education"; +import { profile } from "@data/profile"; import Section from "./section.astro"; +import TagList from "./tag_list.astro"; interface Props { lang: Lang; @@ -13,6 +15,10 @@ const t = useTranslations(lang); ---
+

{pickLocale(profile.introduction, lang)}

+
+ +

{t("about.education")}

diff --git a/src/components/publications_section.astro b/src/components/publications_section.astro index 083d832..c64cd35 100644 --- a/src/components/publications_section.astro +++ b/src/components/publications_section.astro @@ -1,8 +1,10 @@ --- import type { Lang } from "@i18n/ui"; import { useTranslations } from "@i18n/utils"; +import { getNews } from "@data/news"; import { getPublications } from "@data/publications"; import Section from "./section.astro"; +import NewsEntry from "./news_entry.astro"; import PublicationEntry from "./publication_entry.astro"; interface Props { @@ -12,6 +14,7 @@ interface Props { const { lang } = Astro.props; const t = useTranslations(lang); const publications = await getPublications(lang); +const news = await getNews(); ---
@@ -26,13 +29,27 @@ const publications = await getPublications(lang);

{t("publications.empty")}

) } + { + news.length > 0 && ( + + ) + }