Hey it’s me, Alex. Welcome to my website! I created this website mostly to showcase my PhD and what I am currently working on.

To start off, I thought it makes sense to document how I set up this site. In general, it is pretty convenient nowadays to use github-pages. I followed this tutorial to create the site. I needed to apply this fix when using jekyll serve to test the site locally. Also, I learned that github-pages themes are not up-to-date. Therefore, I used the jekyll-remote-theme plugin.

Installation

Prelim: On newer Ubuntu versions (>20.04), you first need to install additional dependencies:

sudo apt install build-essential libxml2 libssl-dev libffi-dev libffi8 libyaml-dev libreadline-dev

I used asdf to install ruby

export _ASDFVERSION=v0.14.1
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch $_ASDFVERSION
echo '. "$HOME/.asdf/asdf.sh"' >> ~/.bashrc
echo '. "$HOME/.asdf/completions/asdf.bash"' >> ~/.bashrc
# restart terminal
asdf plugin add ruby
asdf plugin add nodejs
export _RUBYVERSION=3.3.6
asdf install ruby $_RUBYVERSION # this can take some time
asdf global ruby $_RUBYVERSION
gem update --system
gem install bundler jekyll

Test with the following commands (each should return a version)

ruby -v
gem -v
gcc -v
g++ -v
make -v

Update

rm -rf ~/.asdf
# (manually) update the github-pages version in the Gemfile
export _ASDFVERSION=v0.14.1
git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch $_ASDFVERSION
asdf plugin add ruby
asdf plugin add nodejs
export _RUBYVERSION=3.3.6
asdf install ruby $_RUBYVERSION # this can take some time
asdf global ruby $_RUBYVERSION
gem update --system
gem install bundler jekyll

Testing locally

Change to the docs folder: cd docs.

First time: bundle install.

If testing locally, don’t forget to regularly update github-pages: bundle update github-pages.

To run a local server, execute bundle exec jekyll serve.

Modifications to the layout

I use the minimal layout (remote_theme: jekyll/minima in _config.yml), and changed the layout of index.markdown to page. The blog is an additional blog.markdown with layout home.