This guide will help you add and update content on the Cornell Interaction Design Research Lab website.
Team members are stored as markdown files in the src/content/team
directory.
-
Create a new markdown file in
src/content/team/
named after the person (e.g.,jane-doe.md
). Use lowercase and replace spaces with hyphens. -
Add the following frontmatter (information between the
---
lines) at the top of the file:--- name: "Jane Doe" role: "PhD Student" title: "Research Assistant" department: "Information Science" joinDate: "2023" endDate: "" active: true avatar: "../../assets/team/jane-doe.jpg" education: - degree: "PhD in Information Science" institution: "Cornell University" year: 2025 - degree: "MS in Computer Science" institution: "University of Example" year: 2021 email: "[email protected]" website: "https://janedoe.com" socialLinks: github: "https://github.com/janedoe" twitter: "https://twitter.com/janedoe" linkedin: "https://linkedin.com/in/janedoe" googleScholar: "https://scholar.google.com/citations?user=USERID" bio: "Jane Doe is a PhD student at Cornell University studying..." research_interests: - "Human-Computer Interaction" - "Artificial Intelligence" - "Design Methods" ---
-
Required Fields Explanation:
name
: Full name of the team memberrole
: Position in the lab (e.g., "PhD Student", "Professor", "Research Assistant")joinDate
: Year they joined the labactive
: Set totrue
for current members,false
for alumniavatar
: Path to profile picture (see Adding Images section)email
: Cornell email addressbio
: A brief biography (1-2 paragraphs)
-
Optional Fields:
endDate
: If the member has left the lab, add their end yeartitle
: Official title if different from roledepartment
: Home department at Cornellwebsite
: Personal website URL (includehttps://
)socialLinks
: Social media profiles (all optional)education
: Academic history with degree, institution, and yearresearch_interests
: List of research topics (used for filtering and search)
-
Save the file. The new team member will appear in the team directory after the site rebuilds.
Projects are stored as markdown files in the src/content/projects
directory.
-
Create a new markdown file in
src/content/projects/
with a descriptive name (e.g.,ai-ethics-toolkit.md
). Use lowercase and replace spaces with hyphens. -
Add the following frontmatter at the top of the file:
--- title: "AI Ethics Toolkit for Designers" summary: "A toolkit to help designers evaluate ethical implications of AI interfaces" featured: true status: "ongoing" startDate: "2023-01" endDate: "2024-12" tags: - "AI" - "Ethics" - "Design Tools" teamMemberIds: - "jane-doe" - "john-smith" publicationIds: - "10-1145-3290605-3300690" image: "../../assets/projects/ai-ethics-toolkit.jpg" fundingSource: - "NSF Grant #12345" - "Cornell Research Initiative" externalLink: "https://project-website.com" --- ## Project Description Detailed description of the project goes here. You can use Markdown formatting such as: - Bullet points - **Bold text** - *Italics* ### Research Questions 1. How do designers currently evaluate AI ethics? 2. What tools would help improve ethical considerations in AI design? ### Methodology Our approach involves interviews with practitioners and iterative design of toolkit components.
-
Required Fields Explanation:
title
: Project namesummary
: Brief 1-2 sentence descriptionstatus
: Choose from "ongoing", "completed", or "planned"startDate
: When the project began (YYYY-MM format)teamMemberIds
: List of team member file names (without .md extension)tags
: Keywords that describe the project (for filtering and search)
-
Optional Fields:
featured
: Set totrue
to highlight on the home pageendDate
: When the project ended or is expected to end (YYYY-MM format)publicationIds
: Related publications (DOIs or filenames)image
: Path to project image (see Adding Images section)fundingSource
: List of funding organizations or grant numbersexternalLink
: URL to project website or resource (includehttps://
)description
: A brief overview that appears on listing pages (if different from summary)
-
Add the main content of your project after the frontmatter (after the second
---
). You can use Markdown formatting for headings, lists, links, etc. -
Save the file. The new project will appear in the projects directory after the site rebuilds.
Publications are stored as markdown files in the src/content/publications
directory and use a DOI-based metadata system.
-
Create a new markdown file in
src/content/publications/
using the DOI as the filename (e.g.,10-1145-3290605-3300690.md
). Replace slashes (/) with hyphens (-). -
Add the following frontmatter at the top of the file:
--- doi: "10.1145/3290605.3300690" featured: false project: "ai-ethics-toolkit" manual_override: authors: publication_date: journal: conference: abstract: citation: ---
-
Required Fields Explanation:
doi
: The Digital Object Identifier for the publication (must match filename)
-
Optional Fields:
featured
: Set totrue
to highlight on publications pageproject
: Related project filename (without .md extension)manual_override
: Use only if you need to override metadata from CrossRef:authors
: List of authors if CrossRef data is incorrectpublication_date
: Publication date (YYYY-MM-DD) if CrossRef data is incorrectjournal
: Journal name if CrossRef data is incorrectconference
: Conference name if CrossRef data is incorrectabstract
: Paper abstract if CrossRef data is incorrectcitation
: Full citation if you want to override the automatically generated one
-
After adding publication files, run the update script to fetch metadata:
npm run update-publications
-
Save the file. The new publication will appear in the publications directory after the site rebuilds and the publication cache is updated.
Images should be stored in the appropriate directory under src/assets/
and optimized for web use.
-
Prepare your image:
- Use JPG format for photos and PNG for graphics with transparency
- Resize images to appropriate dimensions before uploading:
- Team avatars: 400x400 pixels (square)
- Project images: 1200x675 pixels (16:9 ratio)
- Blog post images: 1200x630 pixels (for social sharing)
- Keep file sizes under 200KB when possible
-
Optimize the image:
- Use a compression tool like TinyPNG, Squoosh, or ImageOptim to reduce file size
- Rename the file using lowercase letters, no spaces (use hyphens instead)
-
Save to the correct location:
- Team member photos:
src/assets/team/
- Project images:
src/assets/projects/
- Blog post images:
src/assets/blog/
- General images:
src/assets/images/
- Team member photos:
-
Reference in content files:
- In markdown files, reference images using the relative path from the content file:
or
avatar: "../../assets/team/jane-doe.jpg"
image: "../../assets/projects/ai-ethics-toolkit.jpg"
- In markdown files, reference images using the relative path from the content file:
-
Image best practices:
- Always include descriptive filenames (e.g.,
jane-doe-presenting-2023.jpg
instead ofIMG_0123.jpg
) - Crop images appropriately to focus on the subject
- Use consistent style and framing for team photos
- For project images, choose visuals that clearly represent the project's focus
- Always include descriptive filenames (e.g.,
-
For team member avatars:
- Use professional headshots with neutral backgrounds
- Crop to square format with the face centered
- Consistent lighting and style helps maintain a cohesive look
-
For project images:
- Choose images that visually represent the project
- Include project logo or key visual if available
- Avoid overly busy images that won't look good when scaled down
-
Troubleshooting image issues:
- If images aren't appearing, check:
- File path is correct (case-sensitive)
- File exists in the specified location
- File extension matches (.jpg vs .png)
- Image dimensions are appropriate
- If images aren't appearing, check:
The website uses a local cache system for publication metadata to avoid frequent API calls to CrossRef. This ensures the site respects rate limits and loads faster.
- Publication metadata is stored in a local JSON cache file (
public/data/publications-cache.json
) - When adding new publications, update the cache by running:
npm run update-publications
- This script:
- Scans all publication markdown files in
src/content/publications/
- Extracts DOIs and checks which ones need updating
- Makes API calls to CrossRef to fetch metadata for new/outdated entries
- Updates the cache file with new information
- Scans all publication markdown files in
-
Create a new markdown file in
src/content/publications/
with the DOI:--- doi: "10.1145/3290605.3300690" featured: true project: "project-slug" manual_override: publication_date: 2023-05-01 ---
-
Run the update script to fetch metadata:
npm run update-publications
-
Build the site to include the new publication data.
The cache is valid for 7 days by default, after which entries will be refreshed on the next run of the update script.
All commands are run from the root of the project, from a terminal:
Note! For
Docker
commands we must have it installed in your machine.
Command | Action |
---|---|
pnpm install |
Installs dependencies |
pnpm dev |
Starts local dev server at localhost:4321 |
pnpm build |
Build your production site to ./dist/ |
pnpm preview |
Preview your build locally, before deploying |
pnpm format:check |
Check code format with Prettier |
pnpm format |
Format codes with Prettier |
pnpm sync |
Generates TypeScript types for all Astro modules. Learn more. |
pnpm lint |
Lint with ESLint |
docker compose up -d |
Run AstroPaper on docker, You can access with the same hostname and port informed on dev command. |
docker compose run app pnpm install |
You can run any command above into the docker container. |
docker build -t astropaper . |
Build Docker image for AstroPaper. |
docker run -p 4321:80 astropaper |
Run AstroPaper on Docker. The website will be accessible at http://localhost:4321 . |
Warning! Windows PowerShell users may need to install the concurrently package if they want to run diagnostics during development (
astro check --watch & astro dev
). For more info, see this issue.
If you have any suggestions/feedback, you can contact me via my email. Alternatively, feel free to open an issue if you find bugs or want to request new features.
Licensed under the MIT License, Copyright Β© 2025
Made with π€ by Sat Naing π¨π»βπ» and contributors.