⚠️ IMPORTANT NOTE: This file is linked to
claude.mdvia a symbolic link. Always edit this file (agents.md) and never editclaude.mddirectly. The symbolic link ensures compatibility across different development environments and AI tools.
This is a single-page personal website for Ricardo A S Frantz, a computational scientist, researcher, and engineer.
This website MUST remain a single-page site with NO additional pages or routes.
https://ricardofrantz.github.io (root domain only)https://ricardofrantz.github.io/anything/ (NO sub-pages)https://ricardofrantz.github.io/about (NO separate pages)https://ricardofrantz.github.io/blog (NO blog sections)https://ricardofrantz.github.io/contact (NO additional routes)index.mdhttps://ricardofrantz.github.io/sacred_timeline/ is a separate repo, not a sub-page)#section) for navigation within the single pageThis serves as a personal professional portfolio - a comprehensive single-page showcase of Ricardo’s work, publications, projects, and contact information.
index.md file with no additional page generationbundle exec jekyll serve
This starts the local development server at http://localhost:4000 with live reload enabled.
bundle exec jekyll build
Generates static files in the _site directory for deployment.
bundle install
Installs Ruby gems specified in Gemfile.
bundle update
Updates all gems to their latest compatible versions.
├── _config.yml # Jekyll configuration (optimized for single-page)
├── _assets/ # CSS, JS, images, fonts
├── _layouts/ # Page templates (minimal set)
├── _publications/ # Academic papers data (not rendered as pages)
├── _site/ # Generated static files (gitignored)
├── index.md # Main page content (ONLY content file)
├── agents.md # AI agent instructions (linked to claude.md)
├── claude.md # Symbolic link to agents.md
└── Gemfile # Ruby dependencies
index.md: No separate page filesindex.md: Main page content (only content file)_publications/: Data files for reference (not rendered as separate pages)_assets/: CSS, JavaScript, images, fonts_layouts/: Page templates (minimal set for single page)_config.yml: Jekyll configuration (optimized for single-page output)_assets/css/main.scss_assets/css/components/This site uses the latest GitHub Pages deployment standards with GitHub Actions. The deployment workflow is located in .github/workflows/pages.yml and uses the modern GitHub Actions deployment method.
main branchgithub-pages environment with deployment URL trackingcancel-in-progress: truepages: write, id-token: write)actions/configure-pages@v5, actions/upload-pages-artifact@v4, and actions/deploy-pages@v4name: Deploy GitHub Pages
on:
push:
branches: [ main ] # or master if using legacy branch
pull_request:
branches: [ main ] # For CI validation
workflow_dispatch: # Allow manual triggers
# Prevent concurrent deployments
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
# Build job (runs on push and PR)
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v5 # Latest version
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
# Optional: include future posts for testing
# future: true
- name: Upload artifact
uses: actions/upload-pages-artifact@v4 # Latest version
# Deploy job (only runs on push to main branch)
deploy:
if: github.ref == 'refs/heads/main' # Only deploy from main branch
environment:
name: github-pages
url: $
runs-on: ubuntu-latest
needs: build
permissions:
contents: read
pages: write
id-token: write
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4 # Latest version
github-pages gem (currently ~228)Gemfile and Gemfile.lockbundle update github-pagesgithub-pages environment for deployment tracking and URL outputcancel-in-progress: trueactions/configure-pages@v5actions/upload-pages-artifact@v4actions/deploy-pages@v4contents: read, pages: write, id-token: write) and OIDC token authenticationworkflow_dispatch trigger for manual deployment capability# Install dependencies
bundle install
# Start local server
bundle exec jekyll serve
# Update GitHub Pages gem to match production
bundle update github-pages
_site/ directory directly - it’s auto-generatedindex.md (only content file)index.mdindex.md_assets/css/_layouts/_config.yml carefully (maintain single-page settings)⚠️ IMPORTANT: When using custom CSS utility classes (like spacing, margins, padding), ensure they are properly defined in _sass/_utilities.scss before using them in HTML.
Common Issue: If you use utility classes in HTML (like mt-8, mb-8, etc.) but they don’t exist in the CSS utilities file, browsers will silently ignore them with no errors, resulting in unexpected styling behavior.
Example: The mt-8 and mb-8 classes were missing from the utilities file, causing spacing issues. They were added with:
.mt-6 { margin-top: $spacing-2xl; }
.mt-7 { margin-top: 2.5rem; }
.mt-8 { margin-top: 2rem; }
.mb-6 { margin-bottom: $spacing-2xl; }
.mb-7 { margin-bottom: 2.5rem; }
.mb-8 { margin-bottom: 2rem; }
Rule: Always check _sass/_utilities.scss to verify a utility class exists before using it in HTML markup. Remember to check class definitions when working with CSS utilities.