br3ndonland.github.io

br3ndonland.github.io

💻 🏠 Responsive, mobile-first GitHub portfolio site

README

br3ndonland.github.io

:computer: :house: Responsive, mobile-first GitHub portfolio site

Brendon Smith

This repository is provided under the terms of the CC-BY-4.0 license. If you adapt these materials, please attribute me and explain what you changed.

Table of Contents

Stack

  • The homepage is HTML.
  • Other pages are Markdown.
  • Bootstrap 4 provides styling and responsive design.
  • AnchorJS generates header anchors for deep linking.
  • Prism syntax highlighting is included for display of code blocks.
  • The light/dark theme toggle uses JavaScript to store the theme's CSS classes in Local Storage.
  • Jekyll is a static site generator that builds the site.
  • GitHub Pages hosts the site.
  • The Keybase proof helps verify my online identity. I had to use a workaround to set it up:
    • I don't have access to DNS records on GitHub Pages, so I have to use HTTPS.
    • Keybase requires the page to be at /keybase.txt, and the contents of the file can't be altered.
    • Jekyll requires pages to be Markdown files, but layouts to be HTML files.
    • The solution was to save keybase.md with only the YAML front matter, then change the keybase.txt file extension to keybase.html and save in _layouts.

Building the site locally

  • Clone the repo.
  • Install Ruby as explained in the Jekyll docs for your operating system. If a specific Ruby version is pinned in the Gemfile, install that version and add it to the $PATH (via Homebrew or rbenv, for example). Bundler will be installed along with Ruby.
  • Install the site and generate Gemfile.lock: bundle.
  • Build the site: bundle exec jekyll build
  • Serve the site: bundle exec jekyll serve (also builds the site)
  • View the site in a browser at localhost:4000.

Code style

  • HTML, CSS, JavaScript, and YAML are formatted with Prettier, using --semi=false.
  • Python code blocks are formatted with Black.