Skip to content

About

Minimalist Jekyll site for blog, projects, and research series.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

huntercolson.dev

This repository contains the source for huntercolson.dev, Hunter Colson's personal website.

The site is a static Jekyll project. There is no application backend or database; Jekyll turns the Markdown, layouts, data files, CSS, JavaScript, and assets in this repository into the public site.

What Is Here

  • Essays, posts, and tutorials written in Markdown.
  • Jekyll layouts and includes that define the site structure.
  • Small browser scripts for navigation, tag filtering, table-of-contents behavior, and homepage interactions.
  • Site styles, fonts, icons, and downloads.
  • Lightweight validation scripts for checking posts and front-end code.

Repository Map

_config.yml        Jekyll configuration, collections, and build excludes
_data/             Site navigation and structured page data
_includes/         Shared Jekyll partials
_layouts/          Page and post layouts
_posts/            Published blog posts
_tutorials/        Published tutorials
assets/            Site fonts, downloads, and icons
css/               Site stylesheets
js/                Browser modules for navigation, filtering, TOC, and homepage effects
pages/             Top-level listing pages
tests/             JavaScript unit checks
tools/             Validation helpers

Local Inspection

To run the site locally:

npm install
bundle config set --local path vendor/bundle
bundle install
bundle exec jekyll serve --host 127.0.0.1 --port 4000

Then open http://127.0.0.1:4000.

Local dependency folders such as vendor/bundle, .bundle, and generated build output are ignored by git.

Checks

Useful checks for the source:

npm run prepublish:posts
npm test
bundle exec jekyll build

Front-end responsibilities

  • js/main.js starts the page and handles external links.
  • js/ui.js owns navigation, the scrolling header, anchors, and theme controls.
  • js/post.js owns the article contents drawer and current-section tracking.
  • js/blog-tags.js filters the existing listing markup; there is no duplicate JSON feed.
  • js/utils.js contains shared focus and scroll helpers.
  • js/hero-scramble.js and js/home-lab.js preserve the homepage effects.

The stylesheets are plain CSS; no CSS compiler is needed. Theme selection runs in _includes/head.html before first paint. Core controls initialize without waiting for fonts. Keep the version strings on module imports aligned when releasing a script change, so browsers receive the updated dependency graph.

Run the complete validation before publishing:

sh tools/validate.sh

This runs lint and regression tests, builds Jekyll, validates the generated HTML, and checks local links, fragment targets, fonts, and module imports. It requires Node, the Ruby dependencies above, and Python 3. npm run lint:html and npm run check:site require a fresh build. npm run build only builds locally; it does not publish. GitHub Pages publishes the root of main.

For UI changes, also check both themes at phone and desktop widths, scrolling after clicking the theme button, keyboard focus, Escape/overlay drawer dismissal, contents jumps, tag filters with Back/Forward, and reduced-motion rendering.

About

Minimalist Jekyll site for blog, projects, and research series.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages