README
br3ndonland.github.io
:computer: :house: Responsive, mobile-first GitHub portfolio site
Brendon Smith
![license](https://img.shields.io/badge/license-CC--BY--4.0%20-blue.svg?longCache=true&style=for-the-badge)
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.