This repository contains the source code for my professional website at madbomber.github.io.
.
├── config/ # Configuration files
│ └── initializers.rb # Site settings (URL, timezone, etc.)
├── frontend/ # Frontend assets
│ ├── javascript/ # JS entry points
│ └── styles/ # CSS files
├── plugins/ # Custom Ruby plugins
├── scripts/ # Utility scripts
│ └── find_mkdocs_repos.rb # Sync projects from GitHub
├── src/ # Source content
│ ├── _components/ # Reusable ERB components
│ │ └── shared/ # Shared components (navbar, etc.)
│ ├── _data/ # Data files (YAML)
│ │ ├── site_metadata.yml
│ │ └── projects.yml # Auto-generated project data
│ ├── _layouts/ # Page layouts
│ ├── _partials/ # Partial templates
│ ├── _posts/ # Blog posts
│ └── images/ # Static images
├── output/ # Built site (gitignored)
├── Gemfile # Ruby dependencies
└── package.json # Node dependencies
# Install Ruby dependencies
bundle install
# Install Node dependencies
npm install
bin/bridgetown start
The site will be available at http://localhost:4000 with live reload enabled.
bin/bridgetown build
Output is written to the output/ directory.
# Run tests
bundle exec rake
# Build frontend assets only
bin/bridgetown frontend:build
# Clean build artifacts
bin/bridgetown clean
Edit src/_data/site_metadata.yml to update:
Edit config/initializers.rb to configure:
Create .md or .erb files in src/:
---
layout: page
title: My Page
---
Page content here...
Create files in src/_posts/ with the naming convention:
YYYY-MM-DD-title-slug.md
Create reusable components in src/_components/:
src/_components/shared/my_component.rbsrc/_components/shared/my_component.erbThe Projects page is dynamically generated from data synced from GitHub repositories. The script scans all non-forked MadBomber repos that contain a mkdocs.yml file (indicating documented projects).
ruby scripts/find_mkdocs_repos.rb
This script:
mkdocs.ymlsrc/_data/projects.ymlThe Projects page (src/projects.erb) automatically renders cards for all projects in this data file, sorted by star count.
gh) must be installed and authenticatedThe site automatically deploys to GitHub Pages when changes are pushed to main via GitHub Actions (.github/workflows/bridgetown.yml).
Content is copyright Dewayne VanHoozer. Site code is MIT licensed.