GSoC documentation data files
The community/gsoc/ section uses a data-driven setup so year pages stay consistent.
How it works
- Data: Year-specific content lives in
community/gsoc/_data/gsoc-data.json(and mirrored YAML where present). - Generator: From the
documentation/directory, runpython3 scripts/generate-gsoc-pages.pyto refresh theYYYY.mdfiles. - Hub page:
community/gsoc/index.mdis the public landing page (do not add aREADME.mdin that folder — Zensical treatsREADME.mdas the section index and it will replaceindex.md).
Adding a new year
Current year (with project ideas)
- Edit
docs/<lang>/community/gsoc/_data/gsoc-data.jsonfor each locale you maintain. - Add a
years["YYYY"]object withtype,title,description,intro,project_ideas,application_process,communications,faq,related_docs, etc. - Set the previous year to
"type": "past"and use aprojectsarray instead ofproject_ideaswhere applicable. - Run
python3 scripts/generate-gsoc-pages.pyfromdocumentation/. - Run
python3 build_all.pyand commit the updated markdown.
Past year (completed projects)
Use "type": "past" and a projects array with name, description, and result per project, then regenerate as above.
File layout
documentation/docs/<lang>/community/gsoc/
├── _data/
│ └── gsoc-data.json
├── index.md # Public hub (cards + links)
├── 2023.md # Generated
├── 2024.md # Generated
└── ...
Notes
- The generator uses only the Python standard library.
- Commit generated
YYYY.mdfiles after changing the data file. - Never place a
README.mdnext toindex.mdincommunity/gsoc/— it becomes the URL/community/gsoc/and hides the real hub page.