Personal website for Gamal Adel - PhD Candidate in Complex Networks
This Jekyll site uses a custom Golden Ratio Layout as the default for all pages. The layout features a mathematically-proportioned design with multiple customizable regions.
The golden layout (_layouts/golden.html) is automatically applied to all pages. Each page can customize different regions through front matter or include files.
See LAYOUT-GUIDE.md for details on customizing the layout for different pages.
The site includes an automated generative art gallery system using Jekyll collections.
_generative/
├── ProjectName/
│ ├── index.md # Project description
│ ├── ProjectName_1.png # Media files
│ ├── ProjectName_2.mp4
│ └── ...
├── AnotherProject/
│ ├── index.md
│ └── AnotherProject_1.png
└── ...
-
Create a folder in
_generative/with your project name (e.g.,_generative/Spirals/) -
Add an index.md file with project metadata:
--- title: Spirals description: Brief one-line description --- Detailed project description and explanation here.
-
Add media files following the naming convention
ProjectName_#.ext:Spirals_1.pngSpirals_2.mp4Spirals_3.gif- etc.
-
That's it! Jekyll will automatically:
- Create a page at
/generative/spirals/ - Add it to the gallery at
/generative/ - Include it in the sidebar navigation on other project pages
- Display all files in numerical order
- Create a page at
- Images:
.png,.jpg,.jpeg,.gif - Videos:
.mp4,.webm
The system uses:
- Jekyll Collections to manage projects
site.static_filesto auto-discover media files in each project folder- Liquid templates to dynamically generate galleries and navigation
No manual configuration or data files needed - just add folders and files!
bundle exec jekyll serveNote: If you modify _config.yml, you must restart the Jekyll server for changes to take effect.
bundle exec jekyll buildThe site will be generated in the _site/ directory.
If migrating from the old generative art structure, run:
.\move-generative-files.ps1Then delete the old files and folders as indicated by the script.
GoatCounter dashboard records pageviews for the homepage, content pages, posts, art galleries, and the 404 page. Use the dashboard's date range to view a month and its path filter to inspect a particular page.
The public collection endpoint is set in _config.yml as goatcounter_endpoint. The shared _includes/goatcounter.html is included once by the Golden layout (also inherited by generative projects), and explicitly by the theme-based 404 page. Leave the endpoint empty to disable tracking here.
Tracking is enabled only when JEKYLL_ENV=production, which the GitHub Pages publishing workflow already sets. Normal local previews do not load it. The external Scholar redirect pages are not tracked. Ad blockers may prevent pageviews from being counted.
The separately published g-adel/Kufi repository uses the same GoatCounter endpoint in its index.html, so visits to /Kufi/ appear in the same dashboard. Changing or disabling the endpoint there requires updating that repository too. Future standalone project sites need the snippet in their own HTML.
Statistics start when tracking is deployed; past visits cannot be reconstructed from GitHub Pages.