Summary
A configuration typo in _config.yml prevents the projects collection from
being generated during site builds. As a result, the live website shows an
empty "Projects Supported by GC.OS" section despite the repository containing
multiple project entries. This silent failure undermines the site's core
functionality and poses security and operational risks. The issue is
reproducible, easily fixable, and should be considered the highest priority
remediation task for the repository.
Detailed Description
The GitHub Pages website is built using Jekyll. The _config.yml file defines
collections that Jekyll should process. One of these collections is
projects, containing markdown files under _projects directory representing
open-source projects supported by GC.OS.
The configuration originally contained a typo:
collections:
involvement_opportunities:
permalink: /:url
projects:
ouput: true # <-- incorrect key
Jekyll ignores unrecognized configuration keys, so the misspelled ouput
entry is treated as an unknown option. Consequently, the projects
collection is not output into the generated _site directory. Templates
in index.html and open-source-ai.html iterate over site.projects, which
is therefore empty. The homepage and project listing pages render no project
cards, degrading the public site and confusing contributors.
Affected Code Snippets
_config.yml: misconfigured collection
index.html and open-source-ai.html loops that rely on site.projects
<!-- index.html -->
<h2 class="text-4xl font-bold">Projects Supported by GC.OS</h2>
<div class="container mx-auto py-12">
<div class="flex flex-wrap mb-8">
{% for project in site.projects %}
<div class="border border-gcos-green hover:bg-gcos-green p-2 rounded-md group transition-colors duration-300 mr-2">
<a href="/open-source-ai">
<img
src="{{ project.image }}"
alt="{{ project.title }}"
class="w-40 h-40 object-cover"
/>
</a>
</div>
{% endfor %}
</div>
</div>
# _config.yml excerpt
collections:
involvement_opportunities:
permalink: /:url
projects:
ouput: true # typo here
Recommendations
-
CI Regression: Add a simple check after the site build that verifies the
presence of _site/projects or that site.projects is non-empty. Example
script:
if [ ! -d "_site/projects" ]; then
echo "ERROR: projects collection not generated" >&2
exit 1
fi
-
Configuration Audit: Review _config.yml for other potential typos or
missing keys, especially in collections used by templates.
-
Documentation: Keep this consolidated issue file in the repo for future
reference and training of maintainers.
-
Security Review: Consider locking down repository write access or adding
automated content scanning to _projects to detect potential abuses.
Summary
A configuration typo in
_config.ymlprevents theprojectscollection frombeing generated during site builds. As a result, the live website shows an
empty "Projects Supported by GC.OS" section despite the repository containing
multiple project entries. This silent failure undermines the site's core
functionality and poses security and operational risks. The issue is
reproducible, easily fixable, and should be considered the highest priority
remediation task for the repository.
Detailed Description
The GitHub Pages website is built using Jekyll. The
_config.ymlfile definescollections that Jekyll should process. One of these collections is
projects, containing markdown files under_projectsdirectory representingopen-source projects supported by GC.OS.
The configuration originally contained a typo:
Jekyll ignores unrecognized configuration keys, so the misspelled
ouputentry is treated as an unknown option. Consequently, the
projectscollection is not output into the generated
_sitedirectory. Templatesin
index.htmlandopen-source-ai.htmliterate oversite.projects, whichis therefore empty. The homepage and project listing pages render no project
cards, degrading the public site and confusing contributors.
Affected Code Snippets
_config.yml: misconfigured collectionindex.htmlandopen-source-ai.htmlloops that rely onsite.projectsRecommendations
CI Regression: Add a simple check after the site build that verifies the
presence of
_site/projectsor thatsite.projectsis non-empty. Examplescript:
Configuration Audit: Review
_config.ymlfor other potential typos ormissing keys, especially in collections used by templates.
Documentation: Keep this consolidated issue file in the repo for future
reference and training of maintainers.
Security Review: Consider locking down repository write access or adding
automated content scanning to
_projectsto detect potential abuses.