/hugo-website

Minimalist Hugo template for academic websites

Primary LanguageHTMLMIT LicenseMIT

Minimalist Hugo Template for Academic Websites

This repository contains a Hugo template to create a personal academic website. The template uses the PaperMod theme but modifies it in various ways to be more minimalist and more adapted to academic websites. The website is hosted on GitHub Pages.

Documentation

The template is documented at https://pascalmichaillat.org/d5/.

Illustration

The website produced by the template can be viewed at https://pascalmichaillat.org/hugo-website/.

Installation

On your local machine

  • Clone the repository to your local machine
  • Install Hugo. On a Mac, this is easily done with Homebrew: simply run brew install hugo in the terminal.
  • Since the website is hosted on GitHub Pages, it is convenient to install GitHub Desktop. The website can conveniently be updated from your local machine via GitHub Desktop without going to GitHub.
  • Update the baseURL parameter in config.yml with the website URL that you plan to use. By default the ULR is https://username.github.io.

On your GitHub account

  • The first time that you push your repository to GitHub, you need to allow GitHub Actions and GitHub Pages so the website can be built and deployed to GitHub Pages.
  • The first step is to ask GitHub to publish the website with a GitHub Action. GitHub offers a ready-made action to publish a Hugo website, called Deploy Hugo site to Pages. This action must be enabled in the Pages Settings of your GitHub repository. You can view the workflow triggered by the action in the .github/workflows/hugo.yml file.
  • Once the GitHub Actions are enabled, GitHub will build and publish the website as soon as the repository is updated.
  • If you would like to update the deployment action (for instance because it became outdated and fails to deploy the site), you can find the most recent action on GitHub. You can place this file directly in the .github/workflows folder to replace the old hugo.yml file—but make sure to set push: branches to ["main"].

Usage

Development

Navigate to the website directory and run hugo server in the terminal. The command builds the website on your machine and makes it available at http://localhost:1313. You can modify the content of the repository and develop your website entirely on your local machine.

Compilation

Once your website is ready to be made public, run hugo in the terminal from the website directory. When you run the hugo command, Hugo processes your content, templates, and other project files and generates a static website. The resulting output is placed in the public folder.

Deployment

With GitHub Desktop, commit the changes and push them to the website repository on GitHub. Then, the GitHub Action builds the website and deploys it to GitHub Pages.

Performance

Despite the modifications to the PaperMod theme, the website continues to perform well on mobile and desktop devices. Here is an overview of the mobile performance from PageSpeed Insights:

mobile

And here is an overview of the desktop performance:

desktop

Software

The website was built with Hugo v0.128.2 on an Apple Silicon Mac running macOS Sonoma 14.5. The website was tested and validated on Safari 17.5 on a Mac and on Safari on an iPhone with iOS 17.5.1

While the template should also work on other operating systems and with other versions of Hugo, compatibility cannot be guaranteed. Users on Windows or Linux systems, or those using different Hugo versions, may need to make minor adjustments. Similarly, the website should work with other browsers, but minor adjustments might be necessary for perfect compatibility. Please report any compatibility issues or bugs you encounter to help improve cross-platform support.

License

The content of this repository is licensed under the terms of the MIT License.

Real-world implementations

Footnotes

  1. The updates to Hugo v0.120 and then to Hugo v0.123 introduced some issues with previous versions of the template. The issue caused by the update to Hugo v0.120 is #1325 in the PaperMod repo. The issue caused by the update to Hugo v0.123 is #1449 in the PaperMod repo. These issues are now resolved