Personal academic website for Stefano Pio Zingaro.
This is the repository for my academic website built with Eleventy - a simpler static site generator powered by Node.js (replacing Jekyll).
The website includes:
- Research projects and publications
- Teaching materials and courses
- Talks and presentations
- Contact information
- Node.js 18+
- npm 9+
# Clone the repository
git clone https://github.com/lozingaro/academic-website.git
cd academic-website
# Install dependencies
npm install
# Start development server
npm startThe site will be available at http://localhost:8080/
# Build for production
npm run build:prod
# Output will be in _site/academic-website/
├── .eleventy.js # Eleventy configuration
├── package.json # Node.js dependencies
├── _layouts/ # HTML templates (Nunjucks)
│ ├── default.njk
│ └── page.njk
├── _includes/ # Template includes
├── assets/ # CSS, images, PDFs
│ ├── main.scss # Main stylesheet
│ ├── css/
│ ├── img/
│ └── pdf/
├── *.markdown # Content pages (root)
├── research/ # Research section
├── teaching/ # Teaching section
└── _site/ # Build output (generated)
- Static Generator: Eleventy
- Templating: Nunjucks
- Styling: SCSS
- Build: Node.js with npm
- CI/CD: GitHub Actions
- Hosting: GitHub Pages
- Markdown files (
.markdown) in the root and subdirectories - Each page has front matter with layout and metadata
- All content is processed to HTML and served as a static site
The website is automatically deployed via GitHub Actions when you push to main:
- Trigger: Push to
mainbranch - Build: GitHub Actions runs
npm run build:prod - Test: Linting validation with Eleventy
- Deploy: Static files in
_site/are deployed to GitHub Pages - Live: Site is live at:
https://cs.unibo.it/~zingaro/
- Ensure GitHub Pages is enabled in repository settings
- Set build source to: GitHub Actions
- Custom domain:
cs.unibo.it(optional)
If you prefer to deploy manually:
# Build the site
npm run build:prod
# Deploy with rsync (example)
rsync -azPv _site/ user@host:/path/to/public_html/.github/workflows/eleventy-build-deploy.yml- Main CI/CD pipeline.github/workflows/lint-eleventy.yml- Build validation
- Create a
.markdownfile with front matter:
---
layout: page
title: My Page
permalink: /my-page/
---
Your content here...- The file will be automatically processed and accessible at the permalink
- Edit
assets/main.scss - SCSS is automatically compiled to CSS
- Changes are live-reloaded in development mode
Edit the navigation in _layouts/default.njk:
<a class="page-link" href="/new-page/">New Page</a>This site was migrated from Jekyll to Eleventy in December 2025:
- ✅ All markdown content preserved
- ✅ Modern Node.js tooling
- ✅ Faster build times
- ✅ Simplified dependency management
See ELEVENTY-MIGRATION.md and CLEANUP-SUMMARY.md for details.
This website is licensed under CC BY 4.0
Last Updated: December 10, 2025