🕸️ My personal website repo afinamore.io
It is powered by Hugo and Github pages, and its structure is a work in progress.
Specifically, I took the resume theme, which I extended/altered as it follows:
- The navigation bar is completely re-designed from scratch, taking inspiration from Nina Zakharenko website which uses Beautiful Hugo
- Added a new section to display my academic publications with (i) expand/collapse elements and (ii) some parameters in
config.toml
- Add light/dark theme switch
- Complete integration of blog posts
- Related to the previous, extend the research section with detail on research areas of interest (adding some blog posts about it might also be beneficial)
- Extend support of navbar to dropdown menus
- Better integration of academic publications from a raw bibtex file
The key layout files are:
layout/_default/baseof.html
: the raw skeleton of each pagelayout/index.html
: master hugo template of the home page (sections are shown/hidden based onconfig.toml
setup)layout/partials/nav.html
: the navbar templatelayout/partials/portfolio/academic_publications.html
: the research papers templatelayouts/single_page/academic_publications.html
: separate page for details on research (only full research paper list) The other files are eitherlayout/partials
orlayout/partials/portfolio
The key files for content are:
content/_index.md
: the personal info for the "home" section in the home pagecontent/research/_index.md
: research separate pagedata/experience.json
: personal detail about work experiencedata/academic_publications.json
: raw details on research papers
CSS and Javascripts:
assets/sass/main.scss
: all styling rules (coloring variables at the top)static/js/navbar.js
: controls navbar item style wrt scrollingstatic/js/pubs.js
: expand/collapse control for research paper details
- To spawn a local server, run
bash ./run.sh
which is simply triggeringhugo server -D --disableFastRender
- To compile locally, run
hugo
which generate the content under/docs
as from these instructions Note: Still unclear to me why locally the SCSS gets a hash as URL, and this breaks the layout - To deploy, create a script with the following
#!/bin/sh
# If a command fails then the deploy stops
set -e
printf "\033[0;32mDeploying updates to GitHub...\033[0m\n"
# Build the project.
hugo # if using a theme, replace with `hugo -t <YOURTHEME>`
# Go To Public folder
cd docs
# Add changes to git.
git add .
# Commit changes.
msg="rebuilding site $(date)"
if [ -n "$*" ]; then
msg="$*"
fi
git commit -m "$msg"
# Push source and build repos.
git push # origin main
Hugo:
Styling:
- Color selector https://coolors.co
- Navbar shrink link
- Navbar scroll link
- Javascript intersection APIs link
- Navbar collapse link
- Navbar bootstrap link
Deployment: