feat(footer): internationalize footer layout and remove directions section

- Remove #directions section and DirectionsBlock component from home page
- Translate Footer masthead brand titles to ANL and AI Agent Networking Lab
- Update Footer affiliated institution links to KNU, CSE, and College of IT Engineering
- Add advisor information (Prof. Seok-Joo Koh) and translate address to English
- Translate Footer quick navigation links and colophon/copyright text
- Update E2E test assertions for the updated footer layout and address
This commit is contained in:
2026-08-21 13:20:15 +09:00
parent 184ff8263c
commit b8f1a000fd
5 changed files with 49 additions and 202 deletions
+6 -92
View File
@@ -1,95 +1,9 @@
- `<p class="text-ink-mute text-base sm:text-lg leading-relaxed max-w-2xl">AI 에이전트 네트워크 연구실(ANL)은 멀티 AI 에이전트 오케스트레이션을 위해 서로 소통하고 협력하는 에이전트 네트워킹 기술과 표준 프레임워크 기술을 연구합니다.</p>`
`body > footer > div.container-content.grid.gap-12.py-16.lg\:grid-cols-12 > div.lg\:col-span-5 > h3``body > footer > div.container-content.grid.gap-12.py-16.lg\:grid-cols-12 > div.lg\:col-span-5 > h3` 앞에 favicon logo 넣어서 `body > header > div.container-content.flex.h-\[4\.25rem\].items-center.justify-between.gap-4.my-2.sm\:my-3 > a`와 같이 변경해줘.
- 문구 영어로 변경
`body > footer > div.border-t.border-line > div > p.kicker.text-ink-mute`
- 제거해줘.
- `<div class="pt-6 border-t border-line grid grid-cols-3 gap-4"><div><div class="font-serif text-3xl text-cobalt-dark font-normal">4</div><div class="font-mono text-xs text-ink-mute uppercase tracking-wider mt-1">Research Areas</div></div><div><div class="font-serif text-3xl text-cobalt-dark font-normal">220<!-- -->+</div><div class="font-mono text-xs text-ink-mute uppercase tracking-wider mt-1">Publications</div></div><div><div class="font-serif text-3xl text-ink font-normal">2026</div><div class="font-mono text-xs text-ink-mute uppercase tracking-wider mt-1">Issue Static</div></div></div>`
`body > footer > div.container-content.grid.gap-12.py-16.lg\:grid-cols-12 > div.lg\:col-span-4 > address`
- 교수 정보, 이메일 주소, 주소 순으로 배치해줘.
- 문구 수정
- 4 RESEARCH AREAS -> {Number of International Journals & Conference} International Journals & Conference
- 220+ PUBLICATIONS -> {Number of Patent} Patent
- 2026 ISSUE STATIC -> {Number of Standardization} Standardization Contributions
- `body > main > div > section.space-y-6 > div.flex.flex-col.sm\:flex-row.sm\:items-end.justify-between.gap-4.border-b.border-line.pb-4 > div > h2`
- 주요 연구 프로젝트 (Research Projects) -> Research Projects
- `"project-iot-standards`
- IoT Standards -> AIoT & AI-RAN
- `#project-iot-standards > div.space-y-4 > div.flex.items-start.justify-between.gap-3.border-b.border-line\/60.pb-3 > span` : 2026 ~ Present
- AIoT 관련 특히 Agent based IoT 관련 내용으로 수정
- `#project-iot-standards > div.space-y-3.pt-3.border-t.border-line\/60.text-xs.font-mono > div.flex.items-baseline.justify-between.gap-2 > span.text-cobalt-dark.font-bold`
- ISO/IEC JTC1/SC41 -> 한국연구재단 (NRF) 수정
- `#project-iot-standards > div.space-y-3.pt-3.border-t.border-line\/60.text-xs.font-mono > div.space-y-1\.5.pt-1` 부분 삭제
- `#project-ccis`
- CCIS -> MCM으로 수정
- `#project-ccis > div.space-y-4 > div.flex.items-start.justify-between.gap-3.border-b.border-line\/60.pb-3 > span` : 2026 ~ Present
- `#project-ccis > div.space-y-4 > p` : MCM 내용으로 수정
- @`/research/projects/mcm.md` 참조
- `#project-ccis > div.space-y-4 > div.flex.flex-wrap.gap-1\.5.pt-1` : MCM 관련 키워드로 수정
- `#project-ccis > div.space-y-3.pt-3.border-t.border-line\/60.text-xs.font-mono > div.flex.items-baseline.justify-between.gap-2 > span.text-cobalt-dark.font-bold`
- "IEC/TC 100/TA 17" -> "IEC/TC 100/WG 12 supported by KEIT"
- `#project-ccis > div.space-y-3.pt-3.border-t.border-line\/60.text-xs.font-mono > div.space-y-1\.5.pt-1` 삭제
- `#project-vlc-iot`
- VLC-IoT -> MVQM으로 수정
- `#project-vlc-iot > div.space-y-4 > p` : MVQM 내용으로 수정
- @`/research/projects/mvqm.md` 참조
- `#project-vlc-iot > div.space-y-4 > div.flex.flex-wrap.gap-1\.5.pt-1` : MVQM 관련 키워드로 수정
- `#project-vlc-iot > div.space-y-3.pt-3.border-t.border-line\/60.text-xs.font-mono > div.flex.items-baseline.justify-between.gap-2 > span.text-cobalt-dark.font-bold`
- "ITU-T SG20" -> "IEC/TC 100/WG 12 supported by KEIT"
- `#project-vlc-iot > div.space-y-3.pt-3.border-t.border-line\/60.text-xs.font-mono > div.space-y-1\.5.pt-1` 삭제
- `body > main > div > section.space-y-8.pt-20.md\:pt-28.border-t.border-line > div.flex.justify-between.items-end > div:nth-child(1)`
- 영문화 작업을 위해 "RESEARCH AREAS" 로 수정
- `body > main > div > section.space-y-8.pt-20.md\:pt-28.border-t.border-line > div.flex.justify-between.items-end > div:nth-child(1) > div`
- 삭제
- `body > main > div > section.space-y-8.pt-20.md\:pt-28.border-t.border-line > div.flex.justify-between.items-end > div.font-mono.text-xs.text-ink-mute`
- 삭제
- `body > main > div > section.space-y-8.pt-20.md\:pt-28.border-t.border-line > div.grid.grid-cols-1.md\:grid-cols-2.lg\:grid-cols-2.gap-6`
- 삭제
- 다음 키워드들을 각각 카드 형태로 표현
- Quick UDP Internet Conenction (QUIC)
- QUIC-based Mobility and Multi-Streaming Support
- Services and Protocols for Internet-of-Things (IoT)
- Constrained Application Protocol (CoAP)
- In-Vehicle Infotainment (IVI)
- Optical Wireless or Visible Light Communications (OWC/VLC)
- Lighting Control Networks (PLASA E1.45) for LED-based VLC
- Mobility Management: Distributed Mobility Control
- Multicast Routing Protocols and Reliable Multicasting
- mobile SCTP (mSCTP): Soft Handover in Transport Layer
- Stream Control Transmission Protocol (SCTP)
- Telecommunication Optimization: Network Planning and Management
- TAC/TAL Configuration for Paging and Location Management
- Tabu Search and Genetic Algorithm
- 새로운 섹션 추가:
위치 : `body > main > div > section.space-y-8.pt-20.md\:pt-28.border-t.border-line > div.flex.justify-between.items-end > div:nth-child(1)` 아래
섹션명: International Standardizations
내용:
```
Along with the research activities, we are also in pursuit of the International Standardization,
from the market deployment perspective, in the following SDOs (Standard-Defining Organizations):
- IEC TC100: Multimedia Systems and Equipment
- ISO/IEC JTC1/SC41: Internet-of-Things (IoT) Applications
- ITU-T SG20: IoT Services
- ITU-T SG13: Mobility Management
- ISO/IEC JTC1/SC6: Reliable Multicasting
Please refer to [here](link-to-standardization-page) for details of our works on International Standardization so far.
```
National Research Foundation of Korea (NRF)
`body > header > div.container-content.flex.h-\[4\.25rem\].items-center.justify-between.gap-4.my-2.sm\:my-3 > a > span.headline-ko.text-lg.text-ink.sm\:text-xl`
- AI 에이전트 네트워크 연구실 -> ANL
`body > header > div.container-content.flex.h-\[4\.25rem\].items-center.justify-between.gap-4.my-2.sm\:my-3 > a > span.headline-ko.text-lg.text-ink.sm\:text-xl`
- AI Agent Networking LAB (ANL) -> AI Agent Networking LAB
Footer 레이아웃을 조금 더 구조적이고 모던하게 보이도록 레이아웃을 변경해줘.
@@ -1,87 +0,0 @@
import React from "react";
export function DirectionsBlock() {
return (
<section className="mt-20 pt-16 border-t border-line" id="directions">
<div className="flex items-center gap-3 mb-6">
<span className="h-px w-8 bg-cobalt-dark"></span>
<span className="font-mono text-xs tracking-widest uppercase text-cobalt-dark font-bold">
Location & Contact
</span>
</div>
<div className="grid grid-cols-1 lg:grid-cols-12 gap-8">
{/* Left info column */}
<div className="lg:col-span-7 space-y-6">
<h2 className="font-serif text-3xl font-normal text-ink">
&
</h2>
<p className="text-ink-mute text-base leading-relaxed">
AI (ANL) IT대학 5 , .
</p>
<address className="not-italic space-y-4 pt-2 text-sm font-sans text-ink">
<div className="flex items-start gap-3">
<span className="font-mono text-xs uppercase tracking-wider text-ink-mute w-20 pt-0.5">
</span>
<div>
<p className="font-medium">
IT대학 5(415) 527
</p>
<p className="text-xs text-ink-mute mt-0.5">
School of Computer Science and Engineering, Kyungpook National University
</p>
</div>
</div>
<div className="flex items-center gap-3">
<span className="font-mono text-xs uppercase tracking-wider text-ink-mute w-20">
</span>
<span>
(<a href="mailto:sjkoh@knu.ac.kr" className="text-vermillion hover:underline">sjkoh@knu.ac.kr</a>)
</span>
</div>
<div className="flex items-start gap-3">
<span className="font-mono text-xs uppercase tracking-wider text-ink-mute w-20 pt-0.5">
</span>
<div className="flex flex-wrap gap-x-4 gap-y-1 text-xs font-mono text-cobalt-dark">
<a href="http://www.knu.ac.kr/" target="_blank" rel="noreferrer" className="hover:underline">
(KNU)
</a>
<a href="http://cse.knu.ac.kr/" target="_blank" rel="noreferrer" className="hover:underline">
</a>
<a href="http://it.knu.ac.kr/" target="_blank" rel="noreferrer" className="hover:underline">
IT대학
</a>
</div>
</div>
</address>
</div>
{/* Right card column */}
<div className="lg:col-span-5 bg-paper p-6 rounded-lg border border-line flex flex-col justify-between">
<div className="space-y-4">
<div className="font-mono text-xs text-ink-mute uppercase tracking-wider">
Research Environment
</div>
<h3 className="font-serif text-xl font-normal text-ink">
AI Agent Networking Lab
</h3>
<p className="text-xs text-ink-mute leading-relaxed">
QUIC/gRPC .
</p>
</div>
<div className="mt-6 pt-4 border-t border-line flex justify-between items-center text-xs font-mono text-ink-mute">
<span>IT-5 Building #527</span>
<span className="text-vermillion font-bold">ANL Laboratory</span>
</div>
</div>
</div>
</section>
);
}
-4
View File
@@ -1,7 +1,6 @@
import React from "react";
import Link from "next/link";
import HeroComposition from "./_components/HeroComposition";
import { DirectionsBlock } from "./_components/DirectionsBlock";
import { ProjectPageView } from "./_components/ProjectPageView";
import { publications, patents } from "../content/publications";
import { standardsBodies } from "../content/standards";
@@ -193,9 +192,6 @@ export default function HomePage() {
</div>
</div>
</section>
{/* Directions Block */}
<DirectionsBlock />
</div>
);
}
+40 -18
View File
@@ -3,11 +3,11 @@ import Marquee from "@/components/Marquee";
// CUSTOMIZATION HOOK: replace address / email placeholders & colophon below.
const links = [
{ href: "/", ko: "홈", en: "Home" },
{ href: "/members", ko: "구성원", en: "Members" },
{ href: "/publications", ko: "논문", en: "Publications" },
{ href: "/lectures", ko: "강의", en: "Lectures" },
{ href: "/standardization", ko: "표준화", en: "Standardization" },
{ href: "/", en: "Home" },
{ href: "/members", en: "Members" },
{ href: "/publications", en: "Publications" },
{ href: "/lectures", en: "Lectures" },
{ href: "/standardization", en: "Standardization" },
];
export default function Footer() {
@@ -29,25 +29,48 @@ export default function Footer() {
{/* Masthead title */}
<div className="lg:col-span-5">
<p className="kicker text-ink-mute">Colophon</p>
<h3 className="headline-ko mt-3 text-2xl leading-snug text-ink">
AI
<h3 className="font-display mt-3 text-2xl leading-snug text-ink">
ANL
</h3>
<p className="font-display mt-1 text-xl italic text-ink-soft">
AI Agent Networking Lab (ANL)
</p>
<p className="mt-5 max-w-sm text-sm leading-relaxed text-ink-mute">
<br />
Kyungpook National University,<br />
School of Computer Science and Engineering
AI Agent Networking Lab
</p>
<div className="mt-5 flex flex-wrap gap-x-4 gap-y-1 text-xs font-mono text-cobalt-dark">
<a
href="https://www.knu.ac.kr/"
target="_blank"
rel="noopener noreferrer"
className="hover:underline"
>
KNU
</a>
<a
href="https://cse.knu.ac.kr/"
target="_blank"
rel="noopener noreferrer"
className="hover:underline"
>
CSE
</a>
<a
href="https://it.knu.ac.kr/"
target="_blank"
rel="noopener noreferrer"
className="hover:underline"
>
College of IT Engineering
</a>
</div>
</div>
{/* Contact */}
<div className="lg:col-span-4">
<p className="kicker text-ink-mute">Contact</p>
<address className="mt-3 not-italic text-sm leading-relaxed text-ink-soft">
(41566) 80<br />
IT대학 5(415) 527<br />
Prof. Seok-Joo Koh<br />
Room 527, Bldg. 415 (IT-5), College of IT Engineering<br />
Kyungpook National University<br />
80 Daehak-ro, Buk-gu, Daegu 41566, Republic of Korea<br />
<a
href="mailto:sjkoh@knu.ac.kr"
className="draw-underline mt-2 inline-block text-ink hover:text-vermillion-dark font-medium"
@@ -70,8 +93,7 @@ export default function Footer() {
href={l.href}
className="text-sm text-ink-soft transition hover:text-vermillion-dark"
>
{l.ko}{" "}
<span className="text-xs text-ink-mute">{l.en}</span>
{l.en}
</Link>
</li>
))}
@@ -82,7 +104,7 @@ export default function Footer() {
<div className="border-t border-line">
<div className="container-content flex flex-col gap-2 py-5 sm:flex-row sm:items-center sm:justify-between">
<p className="text-xs text-ink-mute">
© {new Date().getFullYear()} AI (ANL) · . All rights reserved.
© {new Date().getFullYear()} AI Agent Networking Lab (ANL) · School of Computer Science and Engineering, KNU. All rights reserved.
</p>
<p className="kicker text-ink-mute">Set in Fraunces · Noto Serif KR · Pretendard</p>
</div>
+3 -1
View File
@@ -44,7 +44,9 @@ class TestANLHomepageE2E(unittest.TestCase):
# 3. Location / Address section
self.assertIn("address", html.lower())
self.assertIn("경북대학교 IT대학 5호관", html)
self.assertIn("Kyungpook National University", html)
self.assertIn("College of IT Engineering", html)
self.assertIn("Prof. Seok-Joo Koh", html)
self.assertIn("sjkoh@knu.ac.kr", html)
def test_02_members_page_content(self):