Skip to content

Commit 1c8013b

Browse files
authored
Initial commit
0 parents  commit 1c8013b

202 files changed

Lines changed: 10163 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/hugo.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Sample workflow for building and deploying a Hugo site to GitHub Pages
2+
name: Deploy Hugo site to Pages
3+
4+
on:
5+
# Runs on pushes targeting the default branch
6+
push:
7+
branches: ["main"]
8+
9+
# Allows you to run this workflow manually from the Actions tab
10+
workflow_dispatch:
11+
12+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20+
concurrency:
21+
group: "pages"
22+
cancel-in-progress: false
23+
24+
# Default to bash
25+
defaults:
26+
run:
27+
shell: bash
28+
29+
jobs:
30+
# Build job
31+
build:
32+
runs-on: ubuntu-latest
33+
env:
34+
HUGO_VERSION: 0.147.2
35+
steps:
36+
- name: Install Hugo CLI
37+
run: |
38+
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
39+
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
40+
- name: Install Dart Sass
41+
run: sudo snap install dart-sass
42+
- name: Checkout
43+
uses: actions/checkout@v4
44+
with:
45+
submodules: recursive
46+
- name: Setup Pages
47+
id: pages
48+
uses: actions/configure-pages@v5
49+
- name: Install Node.js dependencies
50+
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
51+
- name: Build with Hugo
52+
env:
53+
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache
54+
HUGO_ENVIRONMENT: production
55+
run: |
56+
hugo \
57+
--minify \
58+
--baseURL "${{ steps.pages.outputs.base_url }}/"
59+
- name: Upload artifact
60+
uses: actions/upload-pages-artifact@v3
61+
with:
62+
path: ./public
63+
64+
# Deployment job
65+
deploy:
66+
environment:
67+
name: github-pages
68+
url: ${{ steps.deployment.outputs.page_url }}
69+
runs-on: ubuntu-latest
70+
needs: build
71+
steps:
72+
- name: Deploy to GitHub Pages
73+
id: deployment
74+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Hugo build artifacts
2+
public/
3+
resources/
4+
.hugo_build.lock

LICENSE.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2023–present Pascal Michaillat
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
# Minimalist Hugo Template for Academic Websites
2+
3+
This repository contains a [Hugo](https://github.com/gohugoio/hugo) template to create a personal academic website. The template uses the [PaperMod theme](https://github.com/adityatelange/hugo-PaperMod) but modifies it in various ways to be more minimalist and better suited for academic websites. The website is hosted on [GitHub Pages](https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages).
4+
5+
## Documentation
6+
7+
The template is documented at https://pascalmichaillat.org/b/.
8+
9+
## Illustration
10+
11+
The website produced by the template can be viewed at https://pascalmichaillat.org/hugo-website/.
12+
13+
## Installation
14+
15+
### On your local machine
16+
17+
+ Install [Hugo](https://gohugo.io/installation/). On a Mac, this can be done with [Homebrew](https://brew.sh): run `brew install hugo` in the terminal. If you already have Hugo but it is outdated, run `brew upgrade hugo`.
18+
+ Since the website is hosted on GitHub Pages, it is convenient to install [GitHub Desktop](https://desktop.github.com). The website can be updated from your local machine via GitHub Desktop without going to GitHub.
19+
+ Clone the template repository to your local machine. This can be done in two steps:
20+
1. Click "Use this template" and then "Create a new repository" at the top of the repository.
21+
2. Once the new repository is created on your GitHub account, open GitHub Desktop and click "File" and then "Clone repository". Find the newly created repository under the "GitHub.com" tab and clone it.
22+
+ Update the `baseURL` parameter in `config.yml` with the website URL that you plan to use. By default the URL is `https://username.github.io`.
23+
24+
### On your GitHub account
25+
26+
+ 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.
27+
+ The first step is to [ask GitHub to publish the website with a GitHub Action](https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site#publishing-with-a-custom-github-actions-workflow). 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](https://github.com/pmichaillat/hugo-website/settings/pages) of your GitHub repository. You can view the workflow triggered by the action in the `.github/workflows/hugo.yml` file.
28+
+ Once the GitHub Actions are enabled, GitHub will build and publish the website as soon as the repository is updated.
29+
+ 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]( https://github.com/actions/starter-workflows/blob/main/pages/hugo.yml). 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"]`.
30+
31+
## Usage
32+
33+
### Local development
34+
35+
Navigate to the website directory (`cd`) and run in the terminal:
36+
37+
```bash
38+
hugo server
39+
```
40+
41+
The command builds the website on your machine and makes it available at http://localhost:1313, rebuilding automatically as you edit. You can modify the content of the repository and develop your website entirely on your machine.
42+
43+
### Online deployment
44+
45+
Once your website is ready to be made public, commit your content and template changes and push them to the website repository on GitHub. It is convenient to use GitHub Desktop for this Git operation.
46+
47+
On each push, the [GitHub Actions workflow](https://github.com/pmichaillat/hugo-website/actions/workflows/hugo.yml) invokes Hugo to generate the website and deploys the output to [GitHub Pages](https://github.com/pmichaillat/hugo-website/deployments/github-pages). During the workflow, Hugo processes your content, templates, and other project files and generates a static website.
48+
49+
## Performance
50+
51+
The website performs well on mobile and desktop devices. Here is an overview of the mobile performance from [PageSpeed Insights](https://pagespeed.web.dev/):
52+
53+
<img width="470" alt="mobile" src="https://github.com/pmichaillat/hugo-website/assets/85443660/1488df3e-19bb-4f9f-8a86-11f361414d92">
54+
55+
And here is an overview of the desktop performance:
56+
57+
<img width="453" alt="desktop" src="https://github.com/pmichaillat/pmichaillat.github.io/assets/85443660/eff134d2-6097-4bc2-bfd7-4f5c18571789">
58+
59+
## Software
60+
61+
+ The website is built with Hugo v0.147.2 via GitHub Actions.
62+
+ The website was developed locally with Hugo v0.147.2 on macOS Sequoia.
63+
+ The website was tested on the following browsers:
64+
+ Safari 18.4 on macOS Sequoia
65+
+ Mobile Safari on iOS 18
66+
+ Other Hugo versions, operating systems, and web browsers may require minor adjustments. Please [report any issues](https://github.com/pmichaillat/hugo-website/issues) to help improve compatibility.
67+
68+
## License
69+
70+
This repository is licensed under the [MIT License](LICENSE.md).
71+
72+
73+
## Real-world implementations
74+
75+
+ [Pascal Michaillat's website](https://pascalmichaillat.org/) ([source code](https://github.com/pmichaillat/pmichaillat.github.io))
76+
+ [Rosa van den Ende's website](https://rosavandenende.github.io) ([source code](https://github.com/rosavandenende/rosavandenende.github.io))
77+
+ [Samia Kabir's website](https://samiakabir.com) ([source code](https://github.com/SamiaKabir/samiakabir.github.io))
78+
+ [Dylan Laplace Mermoud's website](https://dylanlaplacemermoud.github.io) ([source code](https://github.com/DylanLaplaceMermoud/dylanlaplacemermoud.github.io))
79+
+ [Maarten Goos's website](https://maartengoos.com) ([source code](https://github.com/MaartenGoos/website))
80+
+ [Jun Wong's website](https://junwong.org) ([source code](https://github.com/junwong97/junwong97.github.io))
81+
+ [Erling Rennemo Jellum's website](https://erlingrj.github.io) ([source code](https://github.com/erlingrj/erlingrj.github.io))
82+
+ [Yangkeun Yun's website](https://yangkeunyun.github.io) ([source code](https://github.com/yangkeunyun/yangkeunyun.github.io))
83+
+ [Lucas Warwar's website](https://lucaswarwar.github.io) ([source code](https://github.com/lucaswarwar/lucaswarwar.github.io))
84+
+ [Franz Louis Cesista's website](https://leloykun.github.io) ([source code](https://github.com/leloykun/leloykun.github.io))
85+
+ [Gabe Sekeres's website](https://gabesekeres.com) ([source code](https://github.com/gsekeres/hugo_site))
86+
+ [Kevin Roice's website](https://kevroi.github.io) ([source code](https://github.com/kevroi/kevroi.github.io))
87+
+ [Daniel Barbosa's website](https://dacbarbosa.github.io) ([source code](https://github.com/dacbarbosa/dacbarbosa.github.io))
88+
+ [Wei Zhang's website](https://weizhang-econ.github.io) ([source code](https://github.com/weizhang-econ/weizhang-econ.github.io))
89+
+ [Ben Hermann's website](http://benhermann.eu) ([source code](https://github.com/bhermann/bhermann.github.io))
90+
+ [Franco Corona's website](http://fcorona.me) ([source code](https://github.com/exibios/exibios.github.io))
91+
+ [Tom George's website](https://tomge.org) ([source code](https://github.com/TomGeorge1234/TomGeorge1234.github.io))
92+
+ [Yucheng Zhou's website](https://yuchengzhou.com) ([source code](https://github.com/YuchengZ-Fin/YuchengZ-Fin.github.io))
93+
+ [Rui Sousa's website](https://ruiagmsousa.github.io) ([source code](https://github.com/ruiagmsousa/ruiagmsousa.github.io))
94+
+ [Stefano Sangiovanni's website](https://ste-sangiovanni.github.io) ([source code](https://github.com/ste-sangiovanni/ste-sangiovanni.github.io))
95+
+ [Seth Watts's website](https://www.sethbwatts.com) ([source code](https://github.com/sBwatts/hugo-website))
96+
+ [Louise Demoor's website](https://louisedemoor.github.io/website/) ([source code](https://github.com/louisedemoor/website))
97+
+ [Giwon Bahg's website](https://giwonbahg.github.io) ([source code](https://github.com/giwonbahg/giwonbahg.github.io))
98+
+ [Arthur Douillard's website](https://arthurdouillard.com)
99+
+ [Benjamin Hattemer's website](https://benjaminhattemer.com)
100+
+ [Kostas Bimpikis's website](https://stanford.edu/~kostasb/)
101+
+ [Qiwei He's website](https://www.qiwei-he.com)
102+
+ [Pierre Bardier's website](https://pierrebard.github.io/pierre-bardier/)
103+
+ [Marek Wiewiórka's website](https://marekwiewiorka.org)
104+
+ [Eran Shmuëli's website](https://eranshmueli.com)
105+
+ [Bo Wang's website](https://bowang.finance)
106+
107+
## Related resources
108+
109+
+ [latex-cv](https://github.com/pmichaillat/latex-cv) - This LaTeX template produces a minimalist academic CV, which you can post on your website. The CV should be named `cv.pdf` and placed in the `static` folder. It will be accessible from the homepage via a social icon.
110+
+ [latex-paper](https://github.com/pmichaillat/latex-paper) - This LaTeX template produces a minimalist research paper, which you can post on your website. This is the template used to produce the mock papers on the illustrative website: [here](https://pascalmichaillat.org/hugo-website/papers/paper3/paper3.pdf), [here](https://pascalmichaillat.org/hugo-website/papers/paper1/paper1.pdf), and [here](https://pascalmichaillat.org/hugo-website/papers/paper2/paper2.pdf).

archetypes/course.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: "Course Title (less than 70 characters)"
3+
date: 2006-03-15
4+
url: /course/
5+
aliases:
6+
- /old_url.html
7+
tags: ["keyword 1","keyword 2","keyword 3","keyword 4","keyword 5","keyword 6","keyword 7","keyword 8"]
8+
author: ["Course Author 1", "Course Author 2"]
9+
description: "Course description for search engines (less than 155 characters)"
10+
summary: "Course summary for list page (less than 265 characters)
11+
cover:
12+
image: "course_figure.png"
13+
alt: "Figure title (preferably 1280x720 pixels)"
14+
relative: true
15+
editPost:
16+
URL: "https://youtube.com/course_playlist"
17+
Text: "YouTube playlist"
18+
disableAnchoredHeadings: false
19+
showToc: true
20+
21+
---
22+
23+
## Introduction
24+
25+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
26+
27+
---
28+
29+
## Part 1
30+
31+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
32+
33+
##### Lecture videos
34+
35+
1. [Lecture 1](https://youtu.be/lecture_1)
36+
2. [Lecture 2](https://youtu.be/lecture_2)
37+
3. [Lecture 3](https://youtu.be/lecture_3)
38+
39+
##### Lecture notes
40+
41+
1. [Lecture 1](lecture_1.pdf)
42+
2. [Lecture 2](lecture_2.pdf)
43+
3. [Lecture 3](lecture_3.pdf)
44+
45+
##### Readings
46+
47+
- [Paper 1](https://doi.org/paper_1) – Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
48+
- [Paper 2](https://doi.org/paper_2) – Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
49+
50+
##### Homework
51+
52+
- [Quiz 1](quiz_1.pdf)
53+
- [Quiz 2](quiz_2.pdf)
54+
- [Problem set 1](ps_1.pdf)
55+
56+
---
57+
58+
## Part 2
59+
60+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
61+
62+
##### Lecture videos
63+
64+
1. [Lecture 4](https://youtu.be/lecture_4)
65+
2. [Lecture 5](https://youtu.be/lecture_5)
66+
3. [Lecture 6](https://youtu.be/lecture_6)
67+
68+
##### Lecture notes
69+
70+
1. [Lecture 4](lecture_4.pdf)
71+
2. [Lecture 5](lecture_5.pdf)
72+
3. [Lecture 6](lecture_6.pdf)
73+
74+
##### Readings
75+
76+
- [Paper 3](https://doi.org/paper_3) – Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
77+
- [Paper 4](https://doi.org/paper_4) – Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
78+
79+
##### Homework
80+
81+
- [Quiz 3](quiz_3.pdf)
82+
- [Quiz 4](quiz_4.pdf)
83+
- [Problem set 2](ps_2.pdf)

archetypes/paper.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
title: "Paper Title (less than 70 characters)"
3+
date: 2012-06-01
4+
url: /paper/
5+
aliases:
6+
- /old_url.html
7+
tags: ["keyword 1","keyword 2","keyword 3","keyword 4","keyword 5","keyword 6","keyword 7","keyword 8"]
8+
author: ["Paper Author 1", "Paper Author 2"]
9+
description: "Paper description for search engines (less than 155 characters)"
10+
summary: "Paper summary for list page (less than 265 characters)"
11+
cover:
12+
image: "paper_figure.png"
13+
alt: "Figure title (preferably 1280x720 pixels)"
14+
relative: true
15+
editPost:
16+
URL: "https://doi.org/paper_doi"
17+
Text: "Journal/Repository Name"
18+
19+
---
20+
21+
---
22+
23+
##### Download:
24+
25+
- [Paper](paper.pdf)
26+
- [Online appendix](appendix.pdf)
27+
- [Code and data](https://github.com/paper_repo)
28+
29+
---
30+
31+
##### Abstract:
32+
33+
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
34+
35+
---
36+
37+
##### Figure X: Figure title
38+
39+
![](figurex.png)
40+
41+
---
42+
43+
##### Citation
44+
45+
Author 1, Author 2. Year. "Title." *Journal* Volume (Issue): First page–Last page. https://doi.org/paper_doi.
46+
47+
```BibTeX
48+
@article{AAYY,
49+
author = {Author 1 and Author 2},
50+
doi = {paper_doi},
51+
journal = {Journal},
52+
number = {Issue},
53+
pages = {XXX--YYY},
54+
title = {Title},
55+
volume = {Volume},
56+
year = {Year}}
57+
```
58+
59+
---
60+
61+
##### Related material
62+
63+
+ [Presentation slides](presentation.pdf)

archetypes/search.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "Search"
3+
layout: "search"
4+
placeholder: "Search website"
5+
---

assets/css/common/404.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.not-found {
2+
position: absolute;
3+
top: 0; left: 0; right: 0; bottom: 0;
4+
display: flex;
5+
flex-direction: column;
6+
align-items: center;
7+
justify-content: center;
8+
font-size: 1.3rem;
9+
font-weight: 500;
10+
text-align: center;
11+
color: var(--secondary);
12+
gap: 2.5rem;
13+
}

0 commit comments

Comments
 (0)