fronzbot / fronzbot.github.io

Web page for my site

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

Personal Website

Source code for my website https://kevinfronczak.com

License and Copyright

This repo is covered under the MIT license with the exception of the following directories:

_posts/*

images/*

assets/docs/*

Unauthorized reproduction or distribution of the any work in those directories without my (Kevin Fronczak's) prior written consent is considered copyright infringement and is forbidden.

Why Jekyll?

Before moving to Jekyll I had been using a Wordpress blog hosted on paid Namecheap servers. The thing is, my blog is pretty much entirely static so that set-up was mostly useless. Also, I routinely would get terrible scores on Google's Site Tester and their PageSpeed Insights despite my best efforts. After some research, I decided Jekyll with Github Pages made the most sense for what I needed so I decided to make the jump. Revision control with a remote Github repo was definitely a plus.

Development

In order to speed up development, I created a build script which allows me to cleanup the _site directory locally as well as create a dev version of my config to ensure linking works properly. My script is located in the root of my repository and called via ./build

#!/bin/bash
if [[ $* == *--clean* ]]; then
  rm -rf ./_site
fi

if [[ $* == *--lint* ]]; then
  ./script/cibuild --clean
else
  rm _config_dev.yml
  cp _config.yml _config_dev.yml
  sed -i -e 's/https\:\/\/kevinfronczak\.com//g' _config_dev.yml
  bundle exec jekyll build --config _config_dev.yml
  bundle exec jekyll serve --config _config_dev.yml
fi

The sed command is used to replace the url set within _config.yml with an empty string, which allows me to navigate to localhost:4000 to verify website changes locally.

Continuous Integration

I opted to use travis-ci for continuous integration, since I've used it before on other projects. Here, I run a few tests:

  • Check that the site can be built via cibuild
  • Check HTML to make sure no linking errors via htmlproofer call in cibuild
  • Verify frontmatter in posts have valid tags (for future tag linking) via check_frontmatter.py
  • Verify any posts that are set to be featured on the project page have the required feature_image key via check_frontmatter.py
  • Check that all posts are markdown only (no html) and both equations and images are properly centered on the page via post_linter.py

The first two tests (in cibuild) are what is recommended by Jekyll. All of the python tests are custom implementations that helped me quickly iterate through changes I needed to make while working on porting the Wordpress site over to Github Pages.

About

Web page for my site

License:MIT License


Languages

Language:CSS 30.3%Language:SCSS 17.5%Language:Python 17.5%Language:HTML 15.3%Language:C++ 11.0%Language:MATLAB 3.8%Language:C 3.7%Language:Shell 0.8%Language:Ruby 0.1%