A minimalist academic personal website built with Astro, ready for deployment to GitHub Pages.
- Node.js 18+
- npm
npm install
npm run devOpen http://localhost:4321 in your browser.
npm run buildThe static output is generated in dist/.
npm run preview-
Configure
astro.config.mjs- replaceusernamewith your GitHub username and, if your repository is not named<username>.github.io, setbaseto your repo name:export default defineConfig({ site: 'https://your-username.github.io', base: '/', // or '/your-repo-name' if needed });
-
Push to GitHub - the included GitHub Actions workflow (
.github/workflows/deploy.yml) will automatically build and deploy on every push tomain. -
Enable GitHub Pages in your repository settings:
- Go to Settings > Pages
- Source: GitHub Actions
/
|-- public/
| |-- favicon.png
| |-- avatar-placeholder.svg
| |-- website_lgabriel.jpg
| `-- website_lgabriel_nav.webp
|-- src/
| |-- components/
| | |-- Header.astro # Sticky top navigation bar
| | `-- Footer.astro # Site footer with social links
| |-- layouts/
| | |-- BaseLayout.astro # Root HTML shell (head, body, header, footer)
| | |-- MarkdownLayout.astro
| | `-- PageLayout.astro # Content page wrapper with optional heading
| |-- pages/
| | |-- index.astro # Homepage
| | |-- bio.astro # Bio
| | |-- publications.astro # Publication list
| | `-- contact.astro # Contact information
| `-- styles/
| `-- global.css # Design tokens, reset, utility classes
|-- astro.config.mjs
|-- package.json
`-- tsconfig.json
- Personal info: Update name, position, and content in each page under
src/pages/. - Navigation links: Edit the
navLinksarray insrc/components/Header.astro. - Colors & typography: Adjust CSS custom properties at the top of
src/styles/global.css. - New pages: Create a new
.astrofile insrc/pages/and add a link inHeader.astro.