Hammad Afzali bio photo

Hammad Afzali

Security Researcher

LinkedIn Github e-Mail

How did I build this personal website? I found a blog post (My experience in building a personal academic website) written by Jordi Pont-Tuset, forked Jordi’s GitHub repository and made mine. That is it:)


Basically, the website is built by Jekyll, a static site generator, using the Minimal Mistakes theme. In the following, I will briefly go through the steps (on my RPM-based OS) to build a GitHub page. You may read the Jordi’s blog post for more details.

1. Run the website locally

# Clone the repository
git clone https://github.com/jponttuset/jponttuset.github.io homepage && cd homepage

# Install Jekll
gem install jekyll

# Run the website
bundle install
bundle exec jekyll serve

Now you should see the website at localhost:4000. Chances are you encounter some issues. Two basic ones will be fixed using the following commands and the rest with the help of StackOverflow:)

# Fix the dependency error
bundle install --path vendor/bundle

# Kill jekyll process
ps aux |grep jekyll |awk '{print $2}' | xargs kill -9

2. Customize your website

There is a ton of different things you can do to customize your website. It is a good idea to first get familiar with the structure of the Minimal Mistakes theme in which _layouts, _includes, and _config.yml are the most important folders/files. In addition, you can look into the GitHub toturial on building a personal website. Finally, you can check out this pull request for my initial updates on top of the sample website.

3. Run the GitHub page

Once you are happy with your customized website, create a GitHub repository named username.github.io (where username is your actual GitHub username), and push the local website to this repository. In just a few seconds, your website is up and running at username.github.io. You can learn more about GitHub pages here.

Easy-to-mantain publications page

Per Jordi’s suggestion, you can easily collect and organize your publications using a free cross-platform tool called JabRef. That helps you to directly export publications from JabRef to your webpage using PubListX. A quick setup is as follows:

Step1: Install JabRef
$ dnf install jabref

Step2: Download and extract PubListX
$ wget https://github.com/fitheart/PubListX/archive/master.zip && unzip master.zip

Step3: Add PublistX to JabRef
- Open JabRef and select menu Options | Manage custom exports.
- Click Add to create a new export.
- Enter PubListX as the 'Export format name' and .html as the 'File extension'.
- Click Browse and select file publistx.layout in the PubListX directory as the main layout file.
- Click 'Save exporter' then OK. Now if you select menu File | Export, PubListX should be available in the export list.