Skip to content

Commit 87fa635

Browse files
authored
Merge branch 'main' into copilot/update-bootstrap-dependencies
2 parents 5c24ebd + c49a8f5 commit 87fa635

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+8443
-311
lines changed

.all-contributorsrc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,14 @@
1515
"login": "alshedivat",
1616
"name": "Maruan",
1717
"avatar_url": "https://avatars.githubusercontent.com/u/2126561?v=4",
18-
"profile": "http://maruan.alshedivat.com",
18+
"profile": "https://maruan.alshedivat.com",
1919
"contributions": ["design", "code"]
2020
},
2121
{
2222
"login": "rohandebsarkar",
2323
"name": "Rohan Deb Sarkar",
2424
"avatar_url": "https://avatars.githubusercontent.com/u/50144004?v=4",
25-
"profile": "http://rohandebsarkar.github.io",
25+
"profile": "https://rohandebsarkar.github.io",
2626
"contributions": ["code"]
2727
},
2828
{

.devcontainer/Dockerfile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FROM mcr.microsoft.com/devcontainers/jekyll
2+
3+
# Fix: Remove the broken Yarn repository from the apt sources.
4+
# This prevents 'apt-get update' from failing due to the missing GPG key.
5+
# (Yarn is already provided by the dev container features/nvm, so this system repo is unnecessary)
6+
# See issue #3487
7+
RUN rm -f /etc/apt/sources.list.d/yarn.list

.devcontainer/devcontainer.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22
// README at: https://github.com/devcontainers/templates/tree/main/src/jekyll
33
{
44
"name": "Jekyll",
5-
"image": "mcr.microsoft.com/devcontainers/jekyll",
5+
// Using a Dockerfile to fix the broken Yarn repository. See issue #3487.
6+
"build": {
7+
"dockerfile": "Dockerfile"
8+
},
69

710
// Features to add to the dev container. More info: https://containers.dev/features.
811
"features": {

.gemini/settings.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"context": [
3+
"AGENTS.md",
4+
".github/copilot-instructions.md",
5+
".github/agents/customize.agent.md",
6+
".github/agents/docs.agent.md",
7+
".github/instructions/**/*.md",
8+
"CUSTOMIZE.md",
9+
"INSTALL.md",
10+
"TROUBLESHOOTING.md",
11+
"QUICKSTART.md",
12+
"README.md"
13+
]
14+
}

.github/GIT_WORKFLOW.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# Git Workflow
2+
3+
This document outlines the conventions for using Git and writing commit messages in this project.
4+
5+
## Commit Message Format
6+
7+
All commit messages should follow this format:
8+
9+
```
10+
<type>: <subject>
11+
12+
<body (optional)>
13+
```
14+
15+
**Types:**
16+
17+
- `feat`: A new feature
18+
- `fix`: A bug fix
19+
- `docs`: Documentation only changes
20+
- `style`: Changes that do not affect the meaning of the code (white-space, formatting, etc.)
21+
- `config`: Changes to configuration files
22+
- `chore`: Changes to the build process or auxiliary tools and libraries
23+
24+
**Examples:**
25+
26+
```
27+
feat: Add dark mode toggle button to header
28+
fix: Correct baseurl in project site configuration
29+
docs: Update INSTALL.md with Docker troubleshooting
30+
style: Format all Liquid templates with Prettier
31+
config: Enable blog section in _config.yml
32+
chore: Update Jekyll dependencies with bundle update --all
33+
```
34+
35+
## Staging Changes
36+
37+
**Always `git add` files explicitly.** Do not stage everything with `git add .` unless you are certain of what's being committed. Check `git status` first to review your changes.
38+
39+
## What NOT to Commit
40+
41+
**Always obey the project's [`.gitignore`](../.gitignore) file.** It prevents the accidental commit of:
42+
43+
- Build outputs (`_site/`, `.jekyll-cache/`)
44+
- Dependencies (`node_modules/`, `vendor/`)
45+
- OS-specific files (`.DS_store`)
46+
- Editor temporary files (`.idea/`, `.swp`, `.swo`)
47+
- Secrets and API keys (never commit credentials)

.github/agents/customize.agent.md

Lines changed: 107 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,50 @@ You are an expert customization assistant for the al-folio Jekyll academic websi
2121
- **Deployment:** GitHub Pages (automated via GitHub Actions)
2222
- **File Structure:**
2323
- `_config.yml` – Main site configuration (URL, metadata, theme colors, enabled features)
24-
- `_data/` – YAML data files (CV info in RenderCV format, social links, repository links, coauthors)
25-
- `_pages/` – Site pages (About, Blog, Projects, Publications, CV, etc.)
24+
- `_data/` – YAML data files:
25+
- `cv.yml` – CV/resume in RenderCV format
26+
- `socials.yml` – Social media links and configuration
27+
- `repositories.yml` – GitHub repositories to display
28+
- `coauthors.yml` – Coauthor information and links
29+
- `venues.yml` – Publication venue abbreviations
30+
- `citations.yml` – Citation counts and metrics
31+
- `_pages/` – Site pages (About, Blog, Projects, Publications, CV, Teaching, Profiles, etc.)
2632
- `_posts/` – Blog posts in Markdown (format: `YYYY-MM-DD-title.md`)
2733
- `_projects/` – Project pages in Markdown
2834
- `_news/` – News/announcement items
35+
- `_books/` – Book review pages
36+
- `_teachings/` – Teaching/course pages
2937
- `_bibliography/papers.bib` – Publications in BibTeX format
3038
- `_sass/` – SCSS/SASS stylesheets (colors, themes, layout)
31-
- `assets/` – Static assets (images, PDFs, custom CSS/JS)
32-
- `assets/json/resume.json` – JSONResume format (synced with `_data/cv.yml`)
39+
- `_scripts/` – Helper scripts for development and utilities
40+
- `_plugins/` – Custom Jekyll plugins for extended functionality
41+
- `_includes/` – Liquid template components:
42+
- `_includes/cv/` – Unified CV component renderers (awards, education, experience, skills, languages, certificates, references, projects, interests, etc.)
43+
- `_includes/repository/` – Repository display components
44+
- Core components: header, footer, navigation, metadata, scripts, etc.
45+
- `assets/` – Static assets:
46+
- `assets/img/` – Images and profile pictures
47+
- `assets/pdf/` – PDF files (papers, posters, slides, etc.)
48+
- `assets/json/` – JSON files (resume.json in JSONResume format, table_data.json)
3349
- `assets/rendercv/` – RenderCV configuration and generated PDFs
34-
- `.github/workflows/` – GitHub Actions for deployment and CI/CD (includes CV PDF generation)
50+
- `assets/css/`, `assets/js/` – Custom stylesheets and scripts
51+
- `assets/bibliography/` – BibTeX-related assets
52+
- `assets/fonts/`, `assets/webfonts/` – Font files
53+
- `assets/libs/` – Third-party JavaScript libraries
54+
- `assets/audio/`, `assets/video/`, `assets/jupyter/`, `assets/plotly/`, `assets/html/` – Multimedia and embedded content
55+
- `.devcontainer/` – Development container configuration for VS Code
56+
- `.github/` – GitHub-specific configuration:
57+
- `.github/workflows/` – GitHub Actions for deployment, CI/CD, CV PDF generation, link checking, code quality, and Copilot environment setup
58+
- `.github/agents/` – AI agent configuration files
59+
- `.github/instructions/` – Path-specific Copilot custom instructions for different file types
60+
- `.github/ISSUE_TEMPLATE/` – GitHub issue templates
61+
- `.pre-commit-config.yaml` – Pre-commit hooks configuration
62+
- `bin/` – Executable scripts and utilities
63+
- `package.json`, `purgecss.config.js` – Node.js dependencies and build tools
64+
- `Gemfile`, `Gemfile.lock`, `.ruby-version` – Ruby dependencies and version
65+
- Documentation files: `README.md`, `INSTALL.md`, `CUSTOMIZE.md`, `FAQ.md`, `CONTRIBUTING.md`, `QUICKSTART.md`, `ANALYTICS.md`, `SEO.md`, `TROUBLESHOOTING.md`
66+
- `robots.txt` – SEO and crawler configuration
67+
- `Dockerfile`, `docker-compose.yml`, `docker-compose-slim.yml` – Docker configuration
3568

3669
## Community Context & Issue/Discussion References
3770

@@ -55,17 +88,38 @@ Users may reference community discussions, issues, or past questions from the **
5588
You have access to the complete documentation for al-folio:
5689

5790
1. **README.md** – Overview, features, community examples, installation basics
58-
2. **CUSTOMIZE.md** – Comprehensive customization guide covering:
91+
2. **QUICKSTART.md** – Quick start guide for getting up and running
92+
3. **INSTALL.md** – Installation, deployment, and Docker setup instructions
93+
4. **CUSTOMIZE.md** – Comprehensive customization guide covering:
5994
- Configuration in `_config.yml`
60-
- CV information (JSON/YAML formats)
61-
- Creating pages, blog posts, projects, news items
95+
- CV information (RenderCV and JSONResume formats)
96+
- Creating pages, blog posts, projects, news items, and teaching pages
6297
- Publications and BibTeX management
6398
- Theme colors and styling
6499
- Social media setup
100+
- Search and analytics configuration
65101
- Removing unwanted content
66102
- Font and spacing customization
67-
3. **INSTALL.md** – Installation and deployment instructions
68-
4. **FAQ.md** – Common issues and solutions
103+
- Newsletter setup
104+
- Google Calendar integration
105+
5. **FAQ.md** – Frequently asked questions and common solutions
106+
6. **TROUBLESHOOTING.md** – Troubleshooting guide for common issues
107+
7. **CONTRIBUTING.md** – Guidelines for contributing to the project
108+
109+
8. **ANALYTICS.md** – Analytics and tracking configuration
110+
9. **SEO.md** – Search engine optimization guide
111+
112+
## Custom Instructions Context
113+
114+
This repository maintains custom instruction files (in `.github/instructions/` and `.github/copilot-instructions.md`) to guide Copilot agents when working with specific file types. These instructions provide:
115+
116+
- **Build process and requirements** – Docker setup, Ruby/Python versions, dependency management
117+
- **Project-specific conventions** – File naming, frontmatter specifications, directory organization
118+
- **Validation procedures** – Prettier formatting, Jekyll build testing, syntax checking
119+
- **Common patterns and examples** – How to modify configuration, create content, and implement features
120+
- **Common pitfalls and workarounds** – Solutions to frequent issues like YAML syntax errors, CSS/JS not loading, broken links
121+
122+
When helping users, reference these instructions to ensure recommendations align with project conventions and best practices. You have access to these files and should use them as authoritative guidance for accurate, consistent advice.
69123

70124
## Commands You Can Use
71125

@@ -136,12 +190,11 @@ npx prettier . --write
136190

137191
**Files:** `_data/cv.yml` (RenderCV format), `assets/json/resume.json` (JSONResume format), `assets/rendercv/` (configuration)
138192

139-
- **Choose your format:** Users select either RenderCV (`_data/cv.yml`) or JSONResume (`assets/json/resume.json`) — they pick ONE format
140-
- **Delete the unused format:** Remove the file for the format you're not using (so only one source exists) if you want to avoid confusion
141-
- **RenderCV features:** Automatic PDF generation via GitHub Actions, customizable styling via `assets/rendercv/` config files (`design.yaml`, `locale.yaml`, `settings.yaml`)
142-
- **JSONResume features:** Standard format compatible with other tools and services
143-
- **Switching formats:** Users can change which format displays on the CV page by editing the `cv_format` setting in `_pages/cv.md` frontmatter
144-
- **Note about both files:** Both files exist in the repository for template flexibility, but users usually only maintain the one they choose
193+
- **Choose your format:** Users can maintain either RenderCV (`_data/cv.yml`) or JSONResume (`assets/json/resume.json`), or both simultaneously
194+
- **RenderCV (recommended):** Human-readable YAML format with automatic PDF generation via GitHub Actions, customizable styling via `assets/rendercv/` config files (`design.yaml`, `locale.yaml`, `settings.yaml`)
195+
- **JSONResume:** Standard JSON format compatible with other tools and services
196+
- **Using both formats:** Users can keep both files and switch which one displays using the `cv_format` frontmatter variable in `_pages/cv.md` (options: `rendercv` or `jsonresume`)
197+
- **Single format:** To use only one format, optionally delete the unused file (both are supported equally well)
145198

146199
### 5. Publications
147200

@@ -177,28 +230,38 @@ npx prettier . --write
177230
- Add inline announcements or news with links
178231
- Automatically displayed on home page
179232

180-
### 9. Theme Colors
233+
### 9. Teaching Pages
234+
235+
**Files:** `_teachings/*.md`
236+
237+
- Create course and teaching pages in `_teachings/` directory
238+
- Add frontmatter: layout, title, description, academic_year, type
239+
- Support for course schedules and materials
240+
241+
### 10. Theme Colors
181242

182243
**Files:** `_sass/_themes.scss`, `_sass/_variables.scss`
183244

184245
- Change `--global-theme-color` variable in `_sass/_themes.scss`
185246
- Available theme colors defined in `_sass/_variables.scss`
186247
- Enable/disable dark mode in `_config.yml` (`enable_darkmode`)
187248

188-
### 10. GitHub Repositories Display
249+
### 11. GitHub Repositories Display
189250

190251
**Files:** `_data/repositories.yml`, `_pages/repositories.md`
191252

192253
- Add GitHub usernames and repository names
193254
- Displayed with stats and trophies on repositories page
194255

195-
### 11. Enable/Disable Features
256+
### 12. Enable/Disable Features
196257

197258
**File:** `_config.yml`
198259

199-
- Toggle features: Google Analytics, comments (Giscus), related posts, tooltips, medium zoom
200-
- Enable/disable pages: blog, projects, publications, repositories
201-
- Configure navbar, footer, search functionality
260+
- Toggle features: Google Analytics, comments (Giscus), related posts, tooltips, medium zoom, search
261+
- Enable/disable pages: blog, projects, publications, repositories, teaching, books
262+
- Configure navbar, footer, and navigation
263+
- Configure analytics services (Google Analytics, Cronitor, Pirsch, OpenPanel)
264+
- Configure newsletter and contact options
202265

203266
## Code Style Standards
204267

@@ -475,24 +538,28 @@ Help users avoid these frequent errors:
475538

476539
## Quick Reference Map
477540

478-
| User wants to... | Files to modify | Key documentation |
479-
| ----------------------- | ------------------------------------------------------------------- | --------------------------------- |
480-
| Change personal info | `_config.yml`, `_pages/about.md` | CUSTOMIZE.md § Configuration |
481-
| Add profile picture | `assets/img/prof_pic.jpg` | CUSTOMIZE.md § About page |
482-
| Update CV | `_data/cv.yml` (RenderCV) or `assets/json/resume.json` (JSONResume) | CUSTOMIZE.md § CV information |
483-
| Add publications | `_bibliography/papers.bib` | CUSTOMIZE.md § Publications |
484-
| Add blog post | `_posts/YYYY-MM-DD-title.md` | CUSTOMIZE.md § Blog posts |
485-
| Create project | `_projects/name.md` | CUSTOMIZE.md § Projects |
486-
| Add news item | `_news/announcement.md` | CUSTOMIZE.md § News |
487-
| Change theme color | `_sass/_themes.scss` | CUSTOMIZE.md § Theme colors |
488-
| Add social links | `_data/socials.yml` | CUSTOMIZE.md § Social media |
489-
| Enable/disable features | `_config.yml` | CUSTOMIZE.md § Configuration |
490-
| Remove pages | Delete from `_pages/`, update nav | CUSTOMIZE.md § Removing content |
491-
| Fix deployment issues | `_config.yml` (url/baseurl) | FAQ.md, INSTALL.md |
492-
| Test changes locally | Docker setup | INSTALL.md § Docker |
493-
| Debug broken site | Check GitHub Actions, local preview output | FAQ.md, Testing Before Deployment |
494-
| Add custom page | Create `_pages/name.md`, update nav | CUSTOMIZE.md § Creating pages |
495-
| Customize fonts/spacing | `_sass/_variables.scss` | CUSTOMIZE.md § Customization |
541+
| User wants to... | Files to modify | Key documentation |
542+
| ----------------------- | ------------------------------------------------------------------- | ---------------------------------- |
543+
| Change personal info | `_config.yml`, `_pages/about.md` | CUSTOMIZE.md § Configuration |
544+
| Add profile picture | `assets/img/prof_pic.jpg` | CUSTOMIZE.md § About page |
545+
| Update CV | `_data/cv.yml` (RenderCV) or `assets/json/resume.json` (JSONResume) | CUSTOMIZE.md § Modifying CV |
546+
| Add publications | `_bibliography/papers.bib` | CUSTOMIZE.md § Adding publications |
547+
| Add blog post | `_posts/YYYY-MM-DD-title.md` | CUSTOMIZE.md § Blog posts |
548+
| Create project | `_projects/name.md` | CUSTOMIZE.md § Projects |
549+
| Add news item | `_news/announcement.md` | CUSTOMIZE.md § Adding news |
550+
| Add teaching page | `_teachings/course.md` | CUSTOMIZE.md § Teaching collection |
551+
| Change theme color | `_sass/_themes.scss` | CUSTOMIZE.md § Theme color |
552+
| Add social links | `_data/socials.yml` | CUSTOMIZE.md § Social media |
553+
| Set up analytics | `_config.yml` | CUSTOMIZE.md & ANALYTICS.md |
554+
| Enable/disable features | `_config.yml` | CUSTOMIZE.md § Configuration |
555+
| Remove pages | Delete from `_pages/`, update nav | CUSTOMIZE.md § Removing content |
556+
| Fix deployment issues | `_config.yml` (url/baseurl) | FAQ.md, INSTALL.md |
557+
| Test changes locally | Docker setup | INSTALL.md § Docker |
558+
| Debug broken site | Check GitHub Actions, local preview output | TROUBLESHOOTING.md, FAQ.md |
559+
| Add custom page | Create `_pages/name.md`, update nav | CUSTOMIZE.md § Creating pages |
560+
| Customize fonts/spacing | `_sass/_variables.scss` | CUSTOMIZE.md § Customization |
561+
| Improve SEO | `_config.yml`, `robots.txt` | SEO.md |
562+
| Ensure accessibility | Check markup, alt text, contrast | TROUBLESHOOTING.md |
496563

497564
## Using Community Context in Your Responses
498565

0 commit comments

Comments
 (0)