A modern, responsive academic website for the Waterloo Computational Learning (WatCL) Lab at the Cheriton School of Computer Science, University of Waterloo.
- Modern Design: Clean, professional academic website design
- Responsive Layout: Optimized for all devices and screen sizes
- Accessibility: WCAG compliant with proper semantic HTML and ARIA labels
- Performance: Optimized loading with lazy images and efficient CSS
- SEO Optimized: Built-in meta tags, sitemap, and structured data
- Interactive Elements: Smooth animations and modern user interactions
- Mobile First: Designed with mobile users in mind
- Jekyll 4.3+: Static site generator
- Bootstrap 5: Modern CSS framework
- Font Awesome 6: Icon library
- Google Fonts: Inter and JetBrains Mono typography
- Modern JavaScript: ES6+ with progressive enhancement
- CSS Custom Properties: Modern CSS with variables and animations
watcl.github.io/
βββ _config.yml # Jekyll configuration
βββ _data/ # Data files (team, publications, news)
βββ _includes/ # Reusable HTML components
βββ _layouts/ # Page layout templates
βββ _pages/ # Content pages
βββ css/ # Stylesheets
βββ js/ # JavaScript files
βββ images/ # Images and media
βββ Gemfile # Ruby dependencies
- Ruby 2.7+ (recommended: Ruby 3.0+)
- RubyGems
- Bundler
-
Clone the repository
git clone https://github.com/opallab/watcl.github.io.git cd watcl.github.io
-
Install dependencies
bundle install
-
Start the development server
bundle exec jekyll serve
-
Open your browser Navigate to
http://localhost:4000
bundle exec jekyll build
The built site will be in the _site
directory.
Edit _data/graduate_members.yml
to add new team members:
- name: "John Doe"
photo: john.jpg
info: "PhD student"
duration: "September 2024 - Now"
email: "[email protected]"
number_educ: 2
education1: "B.Sc. in Computer Science, University of Example"
education2: "M.Sc. in Computer Science, University of Example"
Edit _data/publist.yml
to add new publications:
- title: "Your Publication Title"
image: publication_image.png
description: "Brief description of the publication"
authors: "Author 1, Author 2, Author 3"
link:
url: "https://example.com/paper"
display: "Paper Link"
highlight: 1
code:
url: "https://github.com/example/code"
display: "(Code)"
preprint:
url: "https://arxiv.org/abs/1234.5678"
display: "(Preprint)"
Edit _data/news.yml
to add news items:
- date: "15 January 2025"
headline: "Your news headline with <a href='link'>optional link</a>"
Edit CSS variables in css/main.css
:
:root {
--primary-color: #2c3e50;
--secondary-color: #3498db;
--accent-color: #e74c3c;
/* ... more variables */
}
Customize page layouts in the _layouts/
directory. Each layout extends the base default.html
layout.
Modify styles in css/main.css
. The CSS is organized into logical sections:
- Base styles and typography
- Header and navigation
- Page layouts and components
- Team member cards
- Publication displays
- Responsive design
- Utility classes
The website is built with a mobile-first approach and includes:
- Responsive navigation with mobile menu
- Flexible grid system
- Optimized typography for all screen sizes
- Touch-friendly interactive elements
- Optimized images for different devices
The website follows WCAG 2.1 AA guidelines:
- Semantic HTML structure
- Proper heading hierarchy
- ARIA labels and roles
- Keyboard navigation support
- High contrast ratios
- Screen reader compatibility
- Skip navigation links
Optimizations include:
- Minified CSS and JavaScript
- Optimized images
- Lazy loading for images
- Efficient CSS with custom properties
- Minimal HTTP requests
- Progressive enhancement
- Create a new markdown file in
_pages/
- Add front matter with layout and metadata
- Add navigation link in
_includes/header.html
- Create a new layout file in
_layouts/
- Extend the base layout or create a custom one
- Update page front matter to use the new layout
The main JavaScript file (js/main.js
) is organized into modules:
- Navigation functionality
- Smooth scrolling
- Animations and effects
- Accessibility features
- Search functionality
- Form validation
Google Analytics is included via _includes/analytics.html
. Update the tracking ID in the include file.
The site is configured for GitHub Pages deployment. Simply push to the main branch to deploy.
For other hosting providers:
- Build the site:
bundle exec jekyll build
- Upload the
_site
directory contents to your web server
- Fork the repository
- Create a feature branch
- Make your changes
- Test locally
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For questions about the website or lab:
- Lab Director: Kimon Fountoulakis
- Email: [email protected]
- Website: https://watcl.ca
- Built with Jekyll
- Styled with Bootstrap
- Icons from Font Awesome
- Typography from Google Fonts
The WatCL Lab - Machine learning and artificial intelligence.