Brand new SEACrowd website in Jekyll and Boostrap 5.3.
- Fork the repository on GitHub
- Edit files directly in the GitHub web interface
- Submit a pull request with your changes
- _config.yml changes site settings
- _data/navbar.yml changes content of navigation bar
- _data/footer.yml changes content of footer
- Edit _data/team.yml to add/update team members
- Add profile images to assets/images/people
- Edit _data/apprentices.yml to add/update mentors + apprentices by team > project
In _bibliography/:
- main.bib: SEACrowd publication
- affiliated.bib: publication by SEACrowd members and affliates
- tutorials.bib: tutorials (counted as affiliated)
- apprenticeship.bib: publication by SEACrowd apprentices and mentors. To assign a publication to a batch, add "batch" key. Batch value must be synced between this .bib file and _data/apprentices.yml, such as "2025" for batch 2024-2025.
- Add
venueto bib to render venue/publisher more efficiently. - .bib accept custom fields: arxiv/pdf, award, code, demo, post, poster, resources, selected, slides, talk, video, website. For all fields, see bib.html.
Create new blog posts in _posts/ using the format: YYYY-MM-DD-title.md
Frontmatter:
---
layout: post
title: "Your Post Title"
date: 2024-10-01
description: "Brief description for SEO and previews"
tags: [tag1, tag2] # Optional
category: research # Optional, array or string separated by commas
featured: true # Optional: shows in featured section
authors: [Author Name] # Optional array
thumbnail: image.jpg # Optional: image filename in assets/images/posts/
---Writing tips:
- Use h2-h6, and clear heading hierarchy. Heading 1 is reserved for post title.
- Add alt text to images:
 - Use code blocks with language specification: ```python
- Keep descriptions under 160 characters for SEO
Starter template: Copy from _posts/_template.md
- Create new updates in
_news/with file nameYYYY-MM-DD-title.md - Add empty frontmatter and write the content in markdown. Recommended 300 characters max. Frontmatter is very important for Jekyll to read the file.
- Create new project in
_projects/with format:YYYY-MM-project-name.md - Add project details, objectives, and outcomes
- Include relevant images in the
assets/images/projectsfolder - Update _data/contributors.csv for contributor acknowledgments
- Fill _pages/apprenticeship.md in frontmatter the fields: form (url), openDate and closeDate (ISO datetime with timezone).
- Add other content in markdown
- Update static pages in
_pages/directory - Modify content in
events.md,resources.md,publications.md, etc. ⚠️ All_pages/*.mdshould start with heading 2 (##)
Use {% include carousel.html %} to add image carousels to any page:
{%
include carousel.html
id="uniqueCarouselId"
height="400"
duration="5"
items=site.data.carousel_items
%}Parameters:
id(optional): Unique carousel identifier, defaults to "mediaCarousel"height(optional): Height in pixels, defaults to 400duration(optional): Auto-advance interval in secondsitems(required): Array of carousel items
Item structure:
# In _data/carousel_items.yml or frontmatter
- image: "image1.jpg" # Auto-prepends /assets/images/ if no path
caption: "Simple caption" # Shows as badge
alt: "Image description"
- image: "/assets/images/custom/image2.jpg" # Custom path
description: "Rich description with markdown support"
button_text: "Learn More"
button_url: "/about"
alt: "Another image"Docker (Recommended): Building requires docker compose and >= 1.9GB disk space.
make build && make devTo change ports:
JEKYLL_PORT=4001 LIVERELOAD_PORT=35730 make devor create .env file from .env.example.
- Make exists on most systems, but if yours doesn't have it, copy corresponding commands in Makefile.
You can check for this using
make -v - If
docker compose(compose plugin of Docker) doesn't work, trydocker-compose(separate build).
Manual Ruby Setup:
make install # Install dependencies
make serve # Run development serverSee Makefile for all development commands:
make dev- Development server with live reload, and pre-commit hook for code formattingmake prod- Production buildmake restart- Restart without cachemake rebuild- Rebuild containers without cache (if changes not reflected)make clean- Remove local Jekyll cachesmake install && make serve- Install gems locally if you have Ruby and servemake format- Format code (requires npm)
- Manual Ruby setup requires rbenv (see Makefile comments) or globally installed ruby >= 3.4.5
- Site runs on http://localhost:4000