Static GitHub Pages catalog for PDF-first technical learning materials.
Live site:
https://inajaf.github.io/learning-materials/
index.html- single-page catalog UIstyles.css- responsive layout and visual designapp.js- search, category filtering, language-aware material views, PDF previewmaterials.json- source of truth for categories and materialsmaterials/README.md- quick upload guide for material foldersmaterials/kubernetes/- Kubernetes PDFs and optional PPTX sourcesmaterials/postgresql/- PostgreSQL PDFs and optional PPTX sources
Use PDF as the primary published format. It opens reliably in the browser, preserves slide layout, and works well on GitHub Pages.
Keep PPTX only when learners or collaborators may need the editable source file.
- Put the PDF or PPTX file in the matching category folder, for example
materials/postgresql/. - Add an entry to
materials.json. - Set
languagetoruoren. - Add localized
titleanddescriptionvalues for bothruandenwhen possible. - Use
formats.pdffor the primary PDF andformats.pptxonly when a PPTX source exists.
Example:
{
"id": "postgresql-indexes-basics",
"category": "postgresql",
"topic": "indexes",
"topicName": {
"en": "Indexes",
"ru": "Индексы"
},
"title": {
"en": "PostgreSQL Index Basics",
"ru": "Основы индексов PostgreSQL"
},
"description": {
"en": "Introductory material about PostgreSQL index types and when to use them.",
"ru": "Вводный материал о типах индексов PostgreSQL и сценариях их применения."
},
"language": "ru",
"pages": 12,
"formats": {
"pdf": "materials/postgresql/PostgreSQL_Index_Basics.pdf",
"pptx": "materials/postgresql/PostgreSQL_Index_Basics.pptx"
},
"tags": ["postgresql", "indexes", "performance"],
"featured": false
}Run:
python3 -m http.server 8000Open:
http://localhost:8000
The site uses fetch() to load materials.json, so opening index.html directly from the filesystem may not work in every browser.
- Create a GitHub repository.
- Push this folder to the repository.
- In GitHub, open
Settings -> Pages. - Select
Deploy from a branch. - Choose the
mainbranch and/root. - Save and wait for the Pages URL.
Keep individual files below GitHub's normal file size limits. If materials become very large, store only PDFs in the repository and put editable PPTX source files in release assets or external storage.