Next.js website for Xing Lab at Fudan University. The site is built around editable content files in lib/content/, with layout and visual components in app/ and components/.
Live site: https://xinglab-omics.github.io/
Install dependencies:
npm installRun the local development server:
npm run devOpen:
http://localhost:3000
Useful checks:
npm run typecheck
npm run buildThis repository is configured for GitHub Pages at:
https://xinglab-omics.github.io/
The GitHub Actions workflow in .github/workflows/pages.yml builds and deploys the static Next.js export. Pushing to main will update the Pages site after the workflow finishes.
Most day-to-day website updates are in:
lib/content/
For detailed content instructions, see:
lib/content/README.md
Common non-content files:
| File | Use |
|---|---|
app/globals.css |
Main theme colors, including --color-paper, --color-fudan, and background color options |
app/page.tsx |
Homepage section order and major layout |
components/HeroVisual.tsx |
Hero SVG/network illustration, hero icons, node colors, and artwork position |
components/HeroScrollAnimation.tsx |
Scroll-driven hero animation settings |
components/FeaturedPapersRail.tsx |
Homepage featured paper carousel layout |
components/NewsTicker.tsx |
Homepage latest-news ticker layout |
Put images under public/images/, organized by use:
public/images/branding/ site logo and brand assets
public/images/hero/ hero SVG/image assets and reusable visual assets
public/images/papers/ featured paper figures
public/images/profiles/ profile and team photos
public/images/research/ research section illustrations
public/images/news/ news-specific images
When referencing an image in content, start the path at /images/....
Example:
image: "/images/papers/2026_conjugate.png"Do not include public in the path.
- Edit
lib/content/publications.ts. - Add the publication object near the top if it is recent.
- Set
highlighted: trueonly if it should appear in the highlighted publications section. - Add a news item in
lib/content/news.tsif the publication should appear as news.
- Add the figure to
public/images/papers/. - Make sure the paper exists in
lib/content/publications.ts. - Add
{ title, image }tofeaturedPapersinlib/content/home.ts.
All entries in featuredPapers are shown in the homepage carousel, in order. The title must match the publication title.
- Edit
lib/content/team.ts. - Add a member object with an allowed
group. - Add a photo to
public/images/profiles/if available. - Use the same name spelling in publications if you want the site to bold that person's name automatically.
- Edit the member in
lib/content/team.ts. - Set
group: "Alumni". - The alumni section appears automatically when at least one alumni member exists.
- Edit
lib/content/news.ts. - Add a unique
slug. - Use date format
YYYY-MM-DD. - Add an optional image to
public/images/news/or reuse an existing image path.
The homepage news ticker links to the matching item on /news.
Edit app/globals.css, especially:
--color-paper
--color-fudan
--color-sage
--color-lineThe background options comment near the top of globals.css lists several possible --color-paper values.