From 7df803f7bdbb8648c86b9647eb94851ad1481b97 Mon Sep 17 00:00:00 2001 From: navyjain7105 Date: Wed, 25 Mar 2026 11:43:14 +0530 Subject: [PATCH] Outdated README, Unclear directory structure, No contribution guidelines --- CONTRIBUTING.md | 316 ++++++++++++++++++++++++++++++++++++++++++++++++ README.md | 256 +++++++++++++++++++++++++++++++++++++-- STRUCTURE.md | 213 ++++++++++++++++++++++++++++++++ 3 files changed, 776 insertions(+), 9 deletions(-) create mode 100644 CONTRIBUTING.md create mode 100644 STRUCTURE.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..dc0e53d2 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,316 @@ +# Contributing to HumanAI Foundation Website + +Thank you for your interest in contributing! We welcome contributions from all community members, whether you're fixing typos, adding content, or improving the site structure. + +## Ways to Contribute + +### 1. **Quick Edits (Easy)** +Every page on the live website has an "Improve this page" link at the bottom. Click it to edit directly on GitHub (requires login). + +### 2. **Small Changes (Easy)** +- Fix typos or grammar +- Update existing content +- Add links or references +- Improve formatting + +### 3. **New Content (Medium)** +- Add activity descriptions +- Create working group pages +- Add training school information +- Publish profiles and news +### 4. **Structural Changes (Advanced)** +- Modify layouts or templates +- Update Jekyll configuration +- Reorganize directory structure +- Create new collections + +## Getting Started + +### Option A: Edit on GitHub (No Local Setup) + +1. Navigate to the file you want to edit +2. Click the pencil icon (Edit) +3. Make your changes +4. Write a commit message +5. Create a pull request + +**Best for:** Quick fixes, typos, small content updates + +### Option B: Fork & Clone (Full Development) + +1. **Fork the repository** on GitHub +2. **Clone your fork locally** + ```bash + git clone https://github.com/YOUR-USERNAME/humanai-foundation.github.io.git + cd humanai-foundation.github.io + ``` +3. **Create a new branch** + ```bash + git checkout -b feature/your-feature-name + ``` +4. **Make your changes** (see sections below) +5. **Test locally** + ```bash + bundle install + bundle exec jekyll serve + ``` + Visit `http://localhost:4000` to preview +6. **Commit and push** + ```bash + git add . + git commit -m "Description of your changes" + git push origin feature/your-feature-name + ``` +7. **Create a pull request** on GitHub + +## Content Guidelines + +### General Rules + +- **Use clear, concise language** - Write for a diverse audience +- **Include metadata** - All markdown files need YAML frontmatter +- **Use relative links** - Links should work locally and on GitHub Pages +- **Follow existing structure** - Keep content organized in logical directories +- **Check spelling** - Use a spell-checker before submitting + +### YAML Frontmatter Template + +```yaml +--- +title: "Page Title" +author: "Your Name" +layout: default +--- +``` + +**Common layouts:** +- `default` - Standard page with navigation +- `page` - Simple page +- `educator` - For educator profiles +- `event` - For event pages +- `gsoc_proposal` - For GSoC proposals + +### File Naming Conventions + +- **Pages**: Use hyphens, lowercase: `my-new-page.md` +- **Profiles**: Use format: `firstname_lastname.md` +- **Images**: Descriptive names: `feature-image-2026.png` +- **Dates**: Use ISO format in frontmatter or filenames: `2026-03-25` + +### Directory Organization + +``` +Root pages/ → Main navigation items +_activities/ → Activity areas (GSoC, initiatives) +_workinggroups/ → Technical working groups +_training/ → Training schools and programs +_profiles/ → Community member profiles +_gsocorgs/YEAR/ → GSoC organization submissions +_gsocprojects/YEAR/ → GSoC project ideas +_gsocproposals/YEAR/ → GSoC student proposals +announcements/ → News and blog posts +events/ → Event pages +newsletter/ → Newsletter content +``` + +## Specific Content Types + +### Adding a Profile + +1. Copy [_profiles/000_template.md](_profiles/000_template.md) +2. Rename to `_profiles/firstname_lastname.md` +3. Fill in all fields: + ```yaml + --- + title: "Full Name" + author: "Your Name" + layout: educator + institution: "Institution Name" + --- + ``` +4. Add biography and highlights +5. Submit pull request + +### Adding an Activity + +1. Create `_activities/activity-name.md` +2. Use proper frontmatter: + ```yaml + --- + title: "Activity Title" + layout: default + --- + ``` +3. Include description, contact info, and links +4. Keep similar format to existing activities + +### Adding a Working Group + +1. Create `_workinggroups/group-name.md` +2. Include leadership, scope, and meetings +3. Link to relevant resources and mailing lists +4. Add contact information + +### Adding a News Item + +1. Create `announcements/_posts/YYYY-MM-DD-slug.md` +2. Include proper date and title: + ```yaml + --- + title: "Announcement Title" + author: "Your Name" + layout: default + --- + ``` +3. Keep it concise and relevant + +### Adding GSoC Content + +**Organizations** (by year): +``` +_gsocorgs/2026/organization-name.md +``` + +**Projects/Ideas** (by year): +``` +_gsocprojects/2026/project-name.md +``` + +**Student Proposals** (by year): +``` +_gsocproposals/2026/student-name-project-name.md +``` + +## Style Guide + +### Markdown Format + +```markdown +# Main Heading (H1) +## Subheading (H2) +### Smaller Heading (H3) + +Regular paragraph text. + +**Bold text** for emphasis +*Italic text* for subtle emphasis + +- Bullet point +- Another point + - Nested point + +1. Numbered list +2. Second item + 1. Nested numbered + +[Link text](URL) + +> Blockquote for important notes + +| Column 1 | Column 2 | +|----------|----------| +| Value | Value | +``` + +### Links + +- **Internal**: Use relative paths: `[GSoC](activities/gsoc.html)` +- **External**: Use full URLs: `[GitHub](https://github.com)` +- **Profiles**: Link to `/profiles/firstname_lastname.html` +- **Working Groups**: Link to `/workinggroups/group-name.html` + +### Images + +```markdown +![Alt text for image](/images/filename.ext) + + +![Alt text](/images/image.png) +*Image caption* +``` + +**Best Practices:** +- Use descriptive alt text +- Keep file sizes reasonable +- Use appropriate formats (PNG for screenshots, JPG for photos) +- Store in `/images/` directory + +## Code of Conduct + +We follow the HumanAI Foundation code of conduct. When contributing: + +- Be respectful and inclusive +- Give credit to original authors +- Provide constructive feedback +- Respect other people's work +- Report concerns to the coordination team + +## Review Process + +1. **Automatic Checks** - GitHub Actions runs HTML/Jekyll validation +2. **Team Review** - Maintainers review content and structure +3. **Approval** - Changes are approved or comments requested +4. **Merge** - Approved PRs are merged to `master` +5. **Deployment** - Site rebuilds automatically on GitHub Pages + +### What We Look For + +✅ Clear, well-written content +✅ Proper file organization +✅ Working links and formatting +✅ Relevant to the community +✅ No copyright violations + +❌ Spam or promotional content +❌ Broken links or formatting +❌ Outdated information without updates +❌ Duplicate or conflicting content + +## Common Issues & Solutions + +### Build Fails Locally + +```bash +# Update gems +bundle update + +# Clean and rebuild +rm -rf _site .jekyll-metadata +bundle exec jekyll build +``` + +### Links Don't Work + +- Ensure relative paths use `/` not `\` +- Check file actually exists +- Verify `layout` name is correct +- Test locally before submitting + +### Images Don't Display + +- Verify image file exists in `/images/` +- Use correct path: `/images/filename.ext` +- Test locally first +- Check file format is supported + +### Content Not Showing + +- Verify YAML frontmatter is correct +- Check `layout` value matches actual layout file +- Ensure file is in correct directory +- Look for Jekyll build errors in terminal + +## Questions? + +- **Report Issues**: [GitHub Issues](https://github.com/humanai-foundation/humanai-foundation.github.io/issues) +- **Ask Questions**: [HSF Forum](https://groups.google.com/forum/#!forum/hsf-forum) +- **Contact Team**: hsf-coordination@googlegroups.com + +## Recognition + +Contributors will be recognized in: +- Pull request discussions +- Site commit history +- Community profiles (if created) + +Thank you for making this community better! 🎉 diff --git a/README.md b/README.md index 7c7f3145..9912e429 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,251 @@ -# ML4SCI.github.io -Machine Learning for Science github site +# HumanAI Foundation Website -* Live at https://ml4sci.org +![HumanAI](images/humanai.jpg) -## About ML4SCI -Machine Learning for Science (ML4Sci) is an open-source organization that brings together modern machine learning techniques and applies them to cutting edge problems in Science, Technology, Engineering, and Math (STEM). +A community-driven website built with Jekyll for the HumanAI Foundation, hosting resources for research, education, and community collaboration in AI and related fields. -## ML4SCI in GSoC 2022 -The ML4Sci open source organization is participating in the [2022 Google Summer of Code](https://summerofcode.withgoogle.com/). If you are a student interested in our [projects](https://ml4sci.org/activities/gsoc.html) please check our [ideas page](https://ml4sci.org/gsoc/2022/summary.html). ML4Sci is an umbrella organization that welcomes other projects and organizations related to machine-learning for science. Please contact the admins at [ml4-sci@cern.ch](ml4-sci@cern.ch) if you are interested in participating as a project. -![GSOC](https://ml4sci.org/images/GSoC/GSoC-icon-192.png) +**Live Website:** [humanai-foundation.github.io](https://humanai-foundation.github.io) -Please take a look at our [GSoC Page](https://ml4sci.org/activities/gsoc.html) for more details. +## About This Repository + +This is the source code for the HumanAI Foundation website. The site serves as a central hub for: + +- **Google Summer of Code (GSoC)** - Annual student coding projects and internships +- **Working Groups** - Technical collaboration areas (Data Analysis, Detector Simulation, Frameworks, Generators, PyHEP, Reconstruction & Triggering, Tools & Packaging, Training) +- **Activity Areas** - Community initiatives and interest groups +- **Training & Education** - Schools, courses, and educational resources +- **Community Profiles** - Member directory with professional backgrounds +- **Forums & Discussions** - Communication channels and knowledge sharing +- **Events** - Meetings, workshops, and community gatherings +- **Project Showcase** - Featured projects and initiatives +- **Newsletter & News** - Regular updates and announcements + +## Repository Structure + +### Core Content Directories + +``` +├── Root Pages # Main navigation pages (projects.md, forums.md, events.html, etc.) +├── _activities/ # Activity areas and initiatives +├── _workinggroups/ # Technical working groups +├── _training/ # Training programs and schools +├── _profiles/ # Community member profiles +├── announcements/ # News and blog posts +├── events/ # Event pages and schedules +├── newsletter/ # Newsletter archives +└── notes/ # Meeting notes and documentation +``` + +### GSoC Directories (Organized by Year: 2020-2026) + +``` +├── _gsocorgs/ # GSoC participating organizations +├── _gsocprojects/ # GSoC projects and ideas +└── _gsocproposals/ # GSoC student proposals +``` + +### Documentation & Data + +``` +├── _config.yml # Jekyll configuration file +├── _data/ # YAML data files (training-schools.yml) +├── _layouts/ # HTML templates (default, educator, event, gsoc_proposal, etc.) +├── _includes/ # Reusable HTML components (navbar, sidebars, lists, etc.) +├── css/ # Stylesheets (hsf.css) +├── assets/ # Static assets +├── images/ # Site images and icons +└── scripts/ # Utility scripts (profile maintenance, training events) +``` + +### Legacy & Archives + +``` +├── _gsdocs-*/ # Google Docs export system (2020, example, etc.) +├── _drafts/ # Draft content +├── archive/ # Archived pages +├── cwp/ # Community White Papers +└── inventory/ # Community project inventory +``` + +## Getting Started + +### Prerequisites + +- **Ruby** 2.7+ (for Jekyll) +- **Bundle** (Ruby gem manager) + +### Local Development Setup + +1. **Clone the repository** + ```bash + git clone https://github.com/humanai-foundation/humanai-foundation.github.io.git + cd humanai-foundation.github.io + ``` + +2. **Install dependencies** + ```bash + bundle install + ``` + +3. **Build and serve locally** + ```bash + bundle exec jekyll serve + ``` + The site will be available at `http://localhost:4000` + +4. **Watch for changes** + ```bash + bundle exec jekyll serve --watch + ``` + +### Using Docker (Optional) + +If you prefer Docker: + +```bash +docker run --rm -v $(pwd):/srv/jekyll -p 4000:4000 jekyll/jekyll:latest jekyll serve +``` + +## What's Inside + +### Key Pages + +- **[index.html](index.html)** - Homepage +- **[projects.md](projects.md)** - Featured projects +- **[forums.md](forums.md)** - Discussion forums +- **[get_involved.md](get_involved.md)** - How to contribute +- **[future-events.md](future-events.md)** - Upcoming meetings and events +- **[what_are_activities.md](what_are_activities.md)** - Activity areas overview +- **[what_are_WGs.md](what_are_WGs.md)** - Working groups overview + +### Collections + +The site uses Jekyll collections for structured content: + +| Collection | Output Path | Purpose | +|-----------|-------------|---------| +| `activities` | `/activities/:title.html` | Activity areas and initiatives | +| `workinggroups` | `/workinggroups/:title.html` | Technical working groups | +| `training` | `/training/:path.html` | Training programs and schools | +| `profiles` | `/profiles/:title.html` | Community member profiles | +| `gsocorgs` | `/gsoc/organizations/:path.html` | GSoC organizations | +| `gsocprojects` | `/gsoc/projects/:path.html` | GSoC project ideas | +| `gsocproposals` | `/gsoc/:path.html` | GSoC proposals | +| `gsdocs-orgs` (legacy) | `/gsdocs/organizations/:path.html` | Exported documentation | + +## Contributing + +### How to Contribute + +1. **Report Issues** - Use GitHub Issues for bugs or suggestions +2. **Edit Pages** - Click "Improve this page" link at the bottom of any page for quick edits +3. **Pull Requests** - Submit changes via pull requests on the `master` branch +4. **Add Content** - Follow the appropriate directory structure and frontmatter format + +### File Frontmatter Template + +Most markdown files should start with YAML frontmatter: + +```yaml +--- +title: "Page Title" +author: "Your Name" +layout: default +--- +``` + +### Content Guidelines + +- Use descriptive titles and clear descriptions +- Include proper author attribution where applicable +- Use consistent formatting and markdown style +- Keep files organized in appropriate directories +- For new profiles, use the template in [_profiles/000_template.md](_profiles/000_template.md) + +## Jekyll Configuration + +### Key Settings (_config.yml) + +- **Theme**: Custom with Bootstrap 3.3.5 (Flatly) +- **Markdown Engine**: Kramdown +- **Highlighter**: Rouge +- **Plugins**: jekyll-mentions, jekyll-sitemap, jekyll-redirect-from, jekyll-feed + +### Build Process + +The site is built automatically on push to GitHub Pages. To build locally: + +```bash +bundle exec jekyll build +``` + +Output is generated in the `_site/` directory. + +## Maintenance Scripts + +### Available Utilities + +- **[scripts/profile_maintenance_script.py](scripts/profile_maintenance_script.py)** - Manage community profiles +- **[scripts/add_training_event.py](scripts/add_training_event.py)** - Add training school events + +## Important Notes + +### Image Management + +- Favicon: `images/humanai.jpg` +- GSoC logo: `images/GSoC/GSoC-icon-192.png` +- Use relative paths: `/images/filename.ext` + +### External Links + +- **GitHub Docs**: https://github.com/HSF/documents/blob/master +- **Community White Papers**: https://github.com/HSF/documents/blob/master/CWP/papers/2017-11 +- **CERN Indico**: http://indico.cern.ch/category/5816/ +- **Project Organization**: https://groups.google.com/forum/#!forum/hsf-forum + +## Troubleshooting + +### Build Issues + +```bash +# Clean build cache +rm -rf _site/ .jekyll-metadata + +# Rebuild +bundle exec jekyll build +``` + +### Dependency Issues + +```bash +# Update gems +bundle update + +# Reinstall +rm Gemfile.lock +bundle install +``` + +## Community & Communication + +- **Main Forum**: [HSF Forum](https://groups.google.com/forum/#!forum/hsf-forum) +- **Coordination**: hsf-coordination@googlegroups.com +- **Issues**: [GitHub Issues](https://github.com/humanai-foundation/humanai-foundation.github.io/issues) + +## License & Attribution + +This website builds on the HEP Software Foundation infrastructure. Thanks to: + +- **[GitHub Pages](https://pages.github.com/)** - Hosting +- **[Jekyll](http://jekyllrb.com/)** - Static site generator +- **[Bootstrap](http://getbootstrap.com/)** - CSS framework + +## Site Organization & Authors + +- **Founder/Lead**: Benedikt Hegner +- **Contributions**: Graeme Stewart and community members +- **Last Updated**: March 2026 + +--- + +**Want to help?** See [How to Get Involved](get_involved.md) or submit a pull request! diff --git a/STRUCTURE.md b/STRUCTURE.md new file mode 100644 index 00000000..42c57679 --- /dev/null +++ b/STRUCTURE.md @@ -0,0 +1,213 @@ +# Repository Structure Guide + +This document provides a detailed overview of how the HumanAI Foundation website is organized. + +## Directory Tree Overview + +``` +humanai-foundation.github.io/ +├── Root Content Pages +│ ├── index.html # Homepage +│ ├── projects.md # Featured projects +│ ├── forums.md # Discussion forums +│ ├── get_involved.md # Contributing guide +│ ├── future-events.md # Upcoming events +│ ├── what_are_activities.md # Activity areas explained +│ ├── what_are_WGs.md # Working groups explained +│ ├── services.md # Services offered +│ ├── toolkit.md # Community toolkit +│ ├── newsletter.html # Newsletter page +│ └── [Other pages] +│ +├── Configuration +│ ├── _config.yml # Jekyll configuration +│ ├── Gemfile # Ruby dependencies +│ ├── CNAME # Domain configuration +│ └── .pre-commit-config.yaml # Git hooks +│ +├── Layout & Styling +│ ├── _layouts/ # HTML templates +│ │ ├── default.html # Main layout +│ │ ├── page.html # Centered page layout +│ │ ├── educator.html # Profile layout +│ │ ├── event.html # Event layout +│ │ ├── gsoc_proposal.html # GSoC proposal layout +│ │ └── [Other layouts] +│ │ +│ ├── _includes/ # Reusable components +│ │ ├── navbar.ext # Navigation bar +│ │ ├── sidebar.ext # Sidebar navigation +│ │ ├── profile_header.html # Profile header +│ │ ├── gsoc_project_list.ext # GSoC project list +│ │ ├── toc.html # Table of contents +│ │ └── [Other includes] +│ │ +│ └── css/ +│ └── hsf.css # Custom styles +│ +├── Content Collections (Jekyll) +│ ├── _activities/ # Activity areas +│ │ ├── gsoc2024.md # Google Summer of Code +│ │ ├── gsoc2025.md +│ │ ├── gsoc2026.md +│ │ └── studentblogs.md # Student blog posts +│ │ +│ ├── _workinggroups/ # Technical working groups +│ │ ├── dataanalysis.md +│ │ ├── detsim.md +│ │ ├── frameworks.md +│ │ ├── generators.md +│ │ ├── pyhep.md +│ │ ├── recotrigger.md +│ │ ├── toolsandpackaging.md +│ │ └── training.md +│ │ +│ ├── _training/ # Training programs +│ │ └── [Training school entries] +│ │ +│ ├── _profiles/ # Community member profiles +│ │ ├── 000_template.md # Template for new profiles +│ │ ├── firstname_lastname.md # Individual profiles +│ │ └── [100+ member profiles] +│ │ +│ ├── _data/ # YAML data files +│ │ └── training-schools.yml # Training school data +│ │ +│ └── [Other collections - see below] +│ +├── Google Summer of Code (GSoC) +│ │ +│ ├── _gsocorgs/ # GSoC Organizations +│ │ ├── 2020/ +│ │ ├── 2021/ +│ │ ├── 2022/ +│ │ ├── 2023/ +│ │ ├── 2024/ +│ │ ├── 2025/ +│ │ └── 2026/ # Current + future years +│ │ └── org-name.md # Organization submissions +│ │ +│ ├── _gsocprojects/ # GSoC Projects +│ │ ├── 2021/ +│ │ ├── 2022/ +│ │ ├── 2023/ +│ │ ├── 2024/ +│ │ ├── 2025/ +│ │ ├── 2026/ +│ │ └── archived/ +│ │ └── project-name.md # Project ideas/proposals +│ │ +│ ├── _gsocproposals/ # GSoC Student Proposals +│ │ ├── 2020/ +│ │ ├── 2021/ +│ │ ├── 2022/ +│ │ ├── 2023/ +│ │ ├── 2024/ +│ │ ├── 2025/ +│ │ ├── 2026/ +│ │ └── archived/ +│ │ └── student-proposal.md # Student submissions +│ │ +│ └── gsoc/ # Output pages +│ ├── 2023/summary.md # Year summary pages +│ ├── 2024/summary.md +│ ├── 2025/summary.md +│ └── 2026/summary.md +│ +├── Legacy Systems (Archived) +│ ├── _gsdocs-orgs/ # Google Docs export (legacy) +│ │ ├── 2020/ +│ │ └── example/ +│ │ +│ ├── _gsdocs-projects/ # Google Docs export (legacy) +│ │ └── 2020/ +│ │ +│ ├── _gsdocs-proposals/ # Google Docs export (legacy) +│ │ ├── 2020/ +│ │ └── example/ +│ │ +│ ├── _drafts/ # Unpublished drafts +│ │ └── nodate-*.md # Draft content +│ │ +│ ├── archive/ # Old pages +│ │ └── [Archived content] +│ │ +│ └── cwp/ # Community White Papers +│ └── papers/ +│ +├── Structured Content +│ ├── announcements/ +│ │ ├── _posts/ # News items +│ │ │ └── 2021-01-11-gsoc.md +│ │ └── [Announcement pages] +│ │ +│ ├── events/ # Event pages +│ │ └── event-*.md +│ │ +│ ├── newsletter/ # Newsletter archives +│ │ └── newsletter-*.md +│ │ +│ ├── notes/ # Meeting notes +│ │ └── *.md +│ │ +│ ├── organization/ # Organization pages +│ │ ├── team.html # Coordination team +│ │ └── [Org pages] +│ │ +│ └── gsdocs/ # Generated documentation +│ └── [Generated pages] +│ +├── Static Assets +│ ├── assets/ # Web assets +│ │ └── [CSS, JS, etc.] +│ │ +│ ├── images/ # Site images +│ │ ├── humanai.jpg # Favicon/logo +│ │ ├── GSoC/ # GSoC logos +│ │ └── [Other images] +│ │ +│ ├── css/ # Stylesheets +│ │ └── hsf.css # Main styles +│ │ +│ └── Schools/ # Training school info +│ └── [School pages] +│ +├── Utilities & Scripts +│ ├── scripts/ +│ │ ├── add_training_event.py # Add training events +│ │ └── profile_maintenance_script.py # Manage profiles +│ │ +│ ├── inventory/ # Project inventory +│ │ └── inventory.md # Community projects +│ │ +│ └── .github/ # GitHub specific +│ ├── workflows/ # CI/CD workflows +│ └── [GitHub config] +│ +└── Development Files + ├── README.md # This file (updated) + ├── CONTRIBUTING.md # Contribution guidelines + ├── STRUCTURE.md # This structure guide + ├── .gitignore # Git ignore rules + ├── Gemfile.lock # Locked dependencies + ├── feed.xml.inactive # RSS feed (inactive) + ├── .pre-commit-config.yaml # Pre-commit hooks + ├── .travis-scripts/ # CI/CD scripts + └── .jekyll-metadata # Jekyll cache (generated) +``` + +## Key Collections Explained + +### Jekyll Collections + +Jekyll uses "collections" for organized content. Each collection generates output pages: + +| Collection | Stores | Output Pattern | Purpose | +|-----------|--------|----------------|---------| +| `_activities` | Activity definitions | `/activities/:title.html` | Interest groups, GSoC activity | +| `_workinggroups` | WG descriptions | `/workinggroups/:title.html` | Technical working groups | +| `_training` | Training program data | `/training/:path.html` | Schools, courses | +| `_profiles` | Member profiles | `/profiles/:title.html` | Community member directory | +| `_gsocorgs` | Org submissions (by year) | `/gsoc/organizations/:path.html` | GSoC participants | +| `_gsocprojects` | Project proposals (by year) | `/gsoc/projects/:path.html` | GSoC project ideas | +| `_gsocproposals` | Student proposals (by year) | `/gsoc/:path.html` | GSoC applications | \ No newline at end of file