The official website for the Data, Agents, and Processes Lab (DAPLab) at Columbia University.
After editing, please test your changes locally using Docker (see below), submit a Pull Request to Columbia-DAP-Lab.github.io, and request @Alex-XJK (for students or general inquiries) or @sirrice (for faculty-related inquiries) to review and merge.
If you are adding a new feature or making significant changes, please talk to our maintaining team in advance.
You can now add yourself or update your profile by editing the _data/people.yml file.
-
For Faculty members:
- name: Your Name homepage: (optional) https://your.website image: (optional) /files/images/avatar/your_image.jpg bio: > (optional) A brief multi-line introduction category: Faculty field: [CS, Systems...] # comma-separated research fields
-
For Postdoc and PhD Students:
If you are adding yourself as a new member, you must include your supervisor's name in your PR description for verification. Without that, your PR may be delayed or rejected!- name: Your Name homepage: (optional) https://your.website image: (optional) /files/images/avatar/your_fullname.jpg category: Postdoc/PhD
-
For MS/Undergraduate Students:
For new members, please ask your advisor or advising PhD to make the PR on your behalf for verification. Personal PRs will be directly rejected without review.- name: Your Name image: (optional) /files/images/avatar/your_fullname.jpg category: Student advisor: - Advisor Name 1 - Advisor Name 2 # add more if you have multiple advisors
Please upload your avatar image to /files/images/avatar/ and use that full path above. Please ensure your image is in square format and appropriately sized under 1MB for the best display.
For Students and Researchers ordering: Since commit a92a4bc, for ease of maintenance, student categories no longer need to be sorted; Liquid will automatically sort them at deployment-time.
Edit _data/pubs.yml and follow the existing format to add your publications. Basically, you will need to provide the following information for each publication:
- title: Title of the paper
authors: name 1, name 2
conf: conference name
pub_date: "YYYY-MM-DD"
url: url to the paper
tags:
- tag1
- tag2A explanation of the publication date: Only the year and month will be displayed, but you need to provide complete information for sorting purposes.
All project-like content (including software releases) should be added under _projects/ using one shared format.
Use this exact structure:
_projects/<slug>/<slug>.md
Example:
_projects/my-cool-project/my-cool-project.md
Important:
- Keep
<slug>lowercase and hyphen-separated (no spaces). - The folder name and markdown filename should match.
- This keeps URLs and image paths predictable.
Copy this template and fill it in:
---
title: "Project Title"
subtitle: "One-line summary (optional but recommended)"
date: 2026-04-02
authors:
- name: "Author One"
url: "https://author.website" # optional
- name: "Author Two"
avatar: project-image.png # optional; place file in same folder as this .md
# avatar_url: /files/images/... # optional alternative to avatar
tags:
- "Tag1"
- "Tag2"
# Set this only for open-sourced software entries:
# is_software: true
links: # optional; currently supported keys are github/pypi/blog/demo
github: "https://github.com/org/repo"
pypi: "https://pypi.org/project/your-package/"
blog: "https://link.to/blog-post"
demo: "https://link.to/demo"
publications: # optional
- title: "Paper Title"
venue: "Conference/Journal"
url: "https://paper-link"
year: 2026
---Field requirements:
- Required/recommended for all entries:
titledate(YYYY-MM-DD)- at least one author under
authors
- Optional:
subtitle,avatar/avatar_url,tags,links,publications
- For software:
- set
is_software: true
- set
- For normal projects:
- leave
is_softwareunset (or setfalse)
- leave
After front matter, write normal Markdown content for overview, features, methods, etc.
To reference files in the same project folder, use:
/_projects/<slug>/<filename>
Example:
- All entries:
/projects/?view=all - Non-software projects:
/projects/?view=projects - Software entries (
is_software: true):/projects/?view=software
Each entry also gets its own detail page at:
/projects/<slug>/
To manage events,
- Edit the
_data/events.ymlfile, or - Add new events directly to the "website" table in the shared "Fall 2025 DAP Lab Seminar" Google Sheet. They will be automatically synced into the YAML file at 9 AM EST every day.
Note: The Google Sheet method is temporarily disabled due to the low frequency of use after Sept. 9, 2025. Please edit the YAML file directly for now.
However, if you are in charge of regularly adding events (such as seminar organizers), please contact our maintaining team for further assistance.
To create a new blog post, follow these steps:
Create a new file in _posts/ with the name format: YYYY-MM-DD-slug.md (e.g., 2026-01-16-my-great-post.md).
Include the following required fields at the top of your post:
---
layout: post
title: "Your Post Title Here"
date: 2026-01-16
categories: [general] # for organization
authors:
- name: "Your Name"
url: "https://your.website" # optional
- name: "Co-author Name" # add more authors as needed
url: "https://coauthor.website" # optional
excerpt: "A brief summary of your post (appears in the blog list)."
slug: "my-great-post" # Must match the filename slug
---Use standard Markdown syntax. For best readability, keep your article within ~900px width (this is enforced by the layout).
- Create a folder:
files/images/blog/{slug}/(e.g.,files/images/blog/my-great-post/) - Place your images there
- In your post, reference images using the
blog-imageinclude:This automatically generates:{% include blog-image.html file="image-name.png" alt="Alt text here" %}{{ site.baseurl }}/files/images/blog/{{ page.slug }}/image-name.png
Optional parameters:
slug: Use a different post's slug to reference images from another blog (useful for reusing images):{% include blog-image.html file="diagram.png" alt="Diagram" slug="my-other-post" %}class: Add CSS classes for styling (default isimg-fluid):{% include blog-image.html file="diagram.png" alt="Diagram" class="img-fluid shadow" %}
Use Jekyll's standard {% link %} syntax to reference other posts:
As {% link _posts/2026-01-01-my-other-post.md %} shows, ...You can define custom CSS directly in your post using a <style> block:
<style>
.my-custom-class {
color: #012169;
font-weight: bold;
}
</style>
<p class="my-custom-class">This text will be styled.</p>See the Local Development with Docker section below for complete testing instructions.
Push your changes to a branch and open a PR for review.
This project uses Docker to provide a consistent development environment. Follow these steps to test changes locally:
- Docker installed on your system
- Docker Compose (usually included with Docker Desktop)
-
Clone the repository (if you haven't already):
git clone https://github.com/Columbia-DAP-Lab/Columbia-DAP-Lab.github.io.git cd Columbia-DAP-Lab.github.io -
Start the development server:
docker compose up --build
-
Access the site:
- Open your browser and go to: http://localhost:8080
- The site will automatically reload when you make changes to files
- LiveReload is available at: http://localhost:35729
docker compose up --builddocker compose up -ddocker compose logs
docker compose logs --follow # Follow logs in real-timedocker compose downdocker compose restartdocker compose exec jekyll bash- Edit any file in the repository
- The site will automatically regenerate (watch for changes in the logs)
- Refresh your browser to see the changes
- For
_config.ymlchanges, restart the container:docker compose restart
If port 8080 is already in use, you can change it in docker-compose.yml:
ports:
- "3000:8080" # Use port 3000 instead# Clean up and rebuild
docker compose down
docker compose up --builddocker compose up --build --no-cache