Skip to content

Projects Collection Not Published #26

@kallal79

Description

@kallal79

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.


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions