Personal Academic Homepage Redesign Implementation Plan
Personal Academic Homepage Redesign Implementation Plan
For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: Replace the current academic-pages homepage with a restrained, research-first personal homepage that combines the selected B direction, a white Nerfies-like visual language, and the supplied project links, while leaving inner pages unchanged.
Architecture: Use a homepage-only Jekyll layout and include so the existing default, sidebar, publication, CV, and archive layouts remain untouched. The homepage will contain a compact profile column and a research column with a statement, three research-news items, and four image-led work rows; all new styles will be scoped under .homepage-main.
Tech Stack: Jekyll/Liquid, existing Academic Pages Sass pipeline, existing repository images, Python standard-library contract tests, Bundler/GitHub Pages for local build and preview.
Task 1: Add a failing homepage contract test
Files:
Create:
tests/test_homepage_contract.pyStep 1: Write the failing contract test
Add Python
unittestchecks that read the repository source and assert the frozen homepage contract: the page uses the homepage include/layout marker; the three navigation labels remainPublications,Projects, andCV; the homepage contains the three existing paper URLs, the three user-supplied project URLs, and the exact recent-work title/description; the homepage contains the three required news dates/items; and the homepage does not contain GPA, TOEFL, ranking, education, Berkeley-exchange, or ongoing-project content.Step 2: Run the test to verify it fails before implementation
Run
python3 -m unittest discover -s tests -v.Expected: FAIL because the current about page still contains the old sidebar-oriented content, education statistics, Berkeley exchange news, no recent-work row, and no ZoomClick project URL.
Step 3: Commit the red test
Run
git add tests/test_homepage_contract.py && git commit -m "test: define personal homepage content contract".
Task 2: Create the isolated homepage structure
Files:
- Modify:
_pages/about.md - Create:
_includes/homepage.html Create:
_layouts/homepage.htmlStep 1: Replace the about page with the homepage entry point
Set
_pages/about.mdto uselayout: homepage,permalink: /,title: "",author_profile: false, and the existing redirect paths. Includehomepage.htmlas the sole page content so the old inline styles, education table, ongoing-project list, and Berkeley exchange item cannot leak into the new homepage.Step 2: Add the homepage layout wrapper
Create
_layouts/homepage.htmlon top ofdefault, retaining the site masthead/footer/scripts while rendering a dedicated<div id="main" class="homepage-main">and an article/page-content wrapper without the global sidebar.Step 3: Add source-backed homepage markup
Create
_includes/homepage.htmlwith:- a profile block using the configured portrait, name, XJTU/Princeton roles, location/affiliation, and exactly
Email,GitHub, andCVlinks; - a short research statement condensed only from the current about page;
- exactly the three ordered research-news entries from the approved spec;
- four compact work rows, with the supplied recent work plus
Wow, wo, val!, ZoomClick, and WoW. Use existing local teaser assets for the three papers; because no recent-work teaser is present in the repository, use a restrained text-onlyAgent Skillsthumbnail block for that row rather than a misleading paper image or a new unsupported visual asset; - exact paper/project/code URLs from the design spec, keeping
PaperandProjectas separate actions; - a restrained
View all publicationslink after the work rows.
Keep paragraph copy left aligned; center only the outer layout through CSS. Use
relative_urlfor local assets and internal routes.- a profile block using the configured portrait, name, XJTU/Princeton roles, location/affiliation, and exactly
Step 4: Run the contract test and verify the content assertions pass
Run
python3 -m unittest discover -s tests -v.Expected: all content assertions pass. The contract intentionally checks source files rather than browser styling, so no styling assertion should remain for Task 3. Do not modify unrelated inner pages.
Step 5: Commit the homepage structure
Run
git add _pages/about.md _includes/homepage.html _layouts/homepage.html && git commit -m "feat: add research-first homepage structure".
Task 3: Implement the scoped visual system
Files:
- Modify:
assets/css/main.scss Create:
_sass/layout/_homepage.scssStep 1: Add the homepage Sass import
Import
layout/homepageafter the existing page/layout imports so the homepage rules are available without changing the site-wide theme variables.Step 2: Implement desktop layout rules
Scope all selectors under
.homepage-main. Explicitly reset the inherited theme selectors on.homepage-main,.homepage-page, and.homepage-page .page__contentso the global#maincontainer padding,.pageSusy span/prefix/suffix widths, and default page-content heading borders cannot distort the homepage geometry. Use a white background, dark neutral text, one academic-blue link color, and no gradients or heavy cards. Set the centered outer container towidth: min(1080px, 100%),box-sizing: border-box, and 24px horizontal padding. Use a240px minmax(0, 1fr)profile/research grid with a 56px gap at widths>= 768px; keep headings concise and bold, and keep body paragraphs left aligned.Step 3: Implement research-row and responsive rules
Render work rows with subtle separators and
156pxdesktop thumbnails, including a compact text-only thumbnail for the recent work, readable titles, compact metadata/action links, and no horizontal overflow. At widths<= 767px, switch the page to one column, make the profile full width, and use an88px minmax(0, 1fr)thumbnail/text grid. Preserve normal title wrapping and usemax-width: 100%for all images.Step 4: Run the contract test and static checks
Run
python3 -m unittest discover -s tests -vandgit diff --check.Expected: all contract tests pass and Git reports no whitespace errors.
Step 5: Commit the scoped visual system
Run
git add assets/css/main.scss _sass/layout/_homepage.scss && git commit -m "style: add restrained research homepage layout".
Task 4: Build and visually verify the homepage locally
Files:
Modify only if required by build output: the files from Tasks 2–3.
Step 1: Install or validate the existing Jekyll dependencies
Run
bundle config set --local path vendor/bundleandbundle installifbundle checkreports missing dependencies. Do not add a new runtime dependency to the site.Step 2: Build the site
Run
bundle exec jekyll build --trace.Expected: the site builds successfully and
_site/index.htmlcontains the homepage profile, links, work rows, and news without the omitted education/side-content strings.Step 3: Start a local preview server
Run
bundle exec jekyll serve --host 127.0.0.1 --port 4000 --no-watchfrom the worktree and keep the process alive for browser review. Do not push any branch.Step 4: Inspect the rendered page at desktop and mobile widths
Open
http://127.0.0.1:4000/in the in-app browser, capture a desktop screenshot, then set a narrow mobile viewport and capture a second screenshot. Check the profile/research columns, white canvas, row thumbnail sizes, link visibility, title wrapping, and absence of horizontal scrolling. If a layout issue appears, patch only the homepage files, rebuild, and re-check.Step 5: Final verification
Run
python3 -m unittest discover -s tests -v,git diff --check, andbundle exec jekyll build --traceonce more. Report the local preview URL and worktree path; leave all changes local and unpushed.
