Skip to content

Commit 3c175d0

Browse files
committed
[feat] Add Makefile, update Gemfile dependencies
1 parent e1c663c commit 3c175d0

File tree

5 files changed

+171
-24
lines changed

5 files changed

+171
-24
lines changed

.gitignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Jekyll cache and build files
2+
.jekyll-cache/
3+
_site/
4+
.sass-cache/
5+
6+
# Bundler
7+
.bundle/
8+
9+
# Jekyll metadata
10+
.jekyll-metadata
11+

CLAUDE.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Overview
6+
7+
This is a Jekyll-based personal portfolio website for Craig T. Russell, PhD - a Machine Learning Scientist. The site uses the Minima theme and is designed to be hosted on GitHub Pages. The repository contains a professional academic/industry portfolio with CV, publications, and project information.
8+
9+
## Architecture
10+
11+
### Site Structure
12+
- **Jekyll Configuration**: `_config.yml` defines site metadata, theme settings, and social links
13+
- **Main Content**: `index.md` contains the full portfolio content in Markdown with Jekyll front matter
14+
- **CV File**: `cv.txt` contains a plain text version of the CV
15+
- **Static Assets**: Located in `assets/` directory with CSS, JavaScript, fonts, and images
16+
- **Images**: Portfolio images in `images/` with both full-size (`fulls/`) and thumbnail (`thumbs/`) versions
17+
18+
### Theme and Styling
19+
- Uses Jekyll's Minima theme with auto dark/light mode switching
20+
- Custom CSS styling in `assets/css/main.css` and `assets/sass/main.scss`
21+
- Font Awesome icons for social links and UI elements
22+
- Responsive design with jQuery-based interactions
23+
24+
### Key Features
25+
- Professional biography and employment history
26+
- Academic publications with DOI links
27+
- Technical skills and open source project listings
28+
- Social media integration (GitHub, LinkedIn, Google Scholar)
29+
- Responsive image gallery for project showcases
30+
31+
## Development Commands
32+
33+
### Local Development
34+
```bash
35+
# Install Jekyll and dependencies (if not already installed)
36+
gem install jekyll bundler
37+
38+
# Serve the site locally with auto-regeneration
39+
jekyll serve --livereload
40+
41+
# Build the site for production
42+
jekyll build
43+
44+
# Serve with draft posts included
45+
jekyll serve --drafts
46+
```
47+
48+
### Content Management
49+
- Edit `index.md` for main portfolio content
50+
- Update `_config.yml` for site settings and social links
51+
- Modify `cv.txt` for plain text CV version
52+
- Add images to `images/fulls/` and corresponding thumbnails to `images/thumbs/`
53+
54+
## Content Guidelines
55+
56+
### Social Links Configuration
57+
Social links are configured in `_config.yml` under `minima.social_links` with Font Awesome icons. Current links include email, GitHub, LinkedIn, and Google Scholar.
58+
59+
### Publication Management
60+
Publications in `index.md` should include:
61+
- Full citation with journal/conference
62+
- DOI or arXiv links where available
63+
- Proper academic formatting
64+
65+
### Image Management
66+
- Full-size images go in `images/fulls/`
67+
- Corresponding thumbnails in `images/thumbs/`
68+
- Maintain consistent naming (01.jpg, 02.jpg, etc.)
69+
70+
## Deployment
71+
72+
This site is designed for GitHub Pages deployment. Changes pushed to the main branch will automatically deploy if GitHub Pages is configured for the repository.

Gemfile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ source "https://rubygems.org"
22

33
gem "jekyll", "~> 4.2.0"
44
gem "minima", "~> 2.5"
5+
gem "csv"
6+
gem "logger"
7+
gem "base64"
8+
gem "bigdecimal"
9+
gem "webrick"
510

611
group :jekyll_plugins do
712
gem "jekyll-feed", "~> 0.12"

Gemfile.lock

Lines changed: 54 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,33 @@
11
GEM
22
remote: https://rubygems.org/
33
specs:
4-
addressable (2.8.0)
5-
public_suffix (>= 2.0.2, < 5.0)
4+
addressable (2.8.7)
5+
public_suffix (>= 2.0.2, < 7.0)
6+
base64 (0.3.0)
7+
bigdecimal (3.3.1)
68
colorator (1.1.0)
7-
concurrent-ruby (1.1.9)
8-
em-websocket (0.5.2)
9+
concurrent-ruby (1.3.5)
10+
csv (3.3.5)
11+
em-websocket (0.5.3)
912
eventmachine (>= 0.12.9)
10-
http_parser.rb (~> 0.6.0)
13+
http_parser.rb (~> 0)
1114
eventmachine (1.2.7)
12-
ffi (1.15.3)
15+
ffi (1.17.2)
16+
ffi (1.17.2-aarch64-linux-gnu)
17+
ffi (1.17.2-aarch64-linux-musl)
18+
ffi (1.17.2-arm-linux-gnu)
19+
ffi (1.17.2-arm-linux-musl)
20+
ffi (1.17.2-arm64-darwin)
21+
ffi (1.17.2-x86-linux-gnu)
22+
ffi (1.17.2-x86-linux-musl)
23+
ffi (1.17.2-x86_64-darwin)
24+
ffi (1.17.2-x86_64-linux-gnu)
25+
ffi (1.17.2-x86_64-linux-musl)
1326
forwardable-extended (2.6.0)
14-
http_parser.rb (0.6.0)
15-
i18n (1.8.10)
27+
http_parser.rb (0.8.0)
28+
i18n (1.14.7)
1629
concurrent-ruby (~> 1.0)
17-
jekyll (4.2.0)
30+
jekyll (4.2.2)
1831
addressable (~> 2.4)
1932
colorator (~> 1.0)
2033
em-websocket (~> 0.5)
@@ -29,53 +42,70 @@ GEM
2942
rouge (~> 3.0)
3043
safe_yaml (~> 1.0)
3144
terminal-table (~> 2.0)
32-
jekyll-feed (0.15.1)
45+
jekyll-feed (0.17.0)
3346
jekyll (>= 3.7, < 5.0)
34-
jekyll-sass-converter (2.1.0)
47+
jekyll-sass-converter (2.2.0)
3548
sassc (> 2.0.1, < 3.0)
36-
jekyll-seo-tag (2.7.1)
49+
jekyll-seo-tag (2.8.0)
3750
jekyll (>= 3.8, < 5.0)
3851
jekyll-watch (2.2.1)
3952
listen (~> 3.0)
40-
kramdown (2.3.1)
41-
rexml
53+
kramdown (2.5.1)
54+
rexml (>= 3.3.9)
4255
kramdown-parser-gfm (1.1.0)
4356
kramdown (~> 2.0)
44-
liquid (4.0.3)
45-
listen (3.5.1)
57+
liquid (4.0.4)
58+
listen (3.9.0)
4659
rb-fsevent (~> 0.10, >= 0.10.3)
4760
rb-inotify (~> 0.9, >= 0.9.10)
61+
logger (1.7.0)
4862
mercenary (0.4.0)
49-
minima (2.5.1)
63+
minima (2.5.2)
5064
jekyll (>= 3.5, < 5.0)
5165
jekyll-feed (~> 0.9)
5266
jekyll-seo-tag (~> 2.1)
5367
pathutil (0.16.2)
5468
forwardable-extended (~> 2.6)
55-
public_suffix (4.0.6)
56-
rb-fsevent (0.11.0)
57-
rb-inotify (0.10.1)
69+
public_suffix (6.0.2)
70+
rb-fsevent (0.11.2)
71+
rb-inotify (0.11.1)
5872
ffi (~> 1.0)
59-
rexml (3.2.3)
60-
rouge (3.26.0)
73+
rexml (3.4.4)
74+
rouge (3.30.0)
6175
safe_yaml (1.0.5)
6276
sassc (2.4.0)
6377
ffi (~> 1.9)
6478
terminal-table (2.0.0)
6579
unicode-display_width (~> 1.1, >= 1.1.1)
66-
unicode-display_width (1.7.0)
80+
unicode-display_width (1.8.0)
81+
webrick (1.9.1)
6782

6883
PLATFORMS
84+
aarch64-linux-gnu
85+
aarch64-linux-musl
86+
arm-linux-gnu
87+
arm-linux-musl
88+
arm64-darwin
89+
ruby
90+
x86-linux-gnu
91+
x86-linux-musl
92+
x86_64-darwin
93+
x86_64-linux-gnu
6994
x86_64-linux-musl
7095

7196
DEPENDENCIES
97+
base64
98+
bigdecimal
99+
csv
72100
jekyll (~> 4.2.0)
73101
jekyll-feed (~> 0.12)
74102
jekyll-seo-tag
103+
logger
75104
minima (~> 2.5)
76105
tzinfo (~> 1.2)
77106
tzinfo-data
78107
wdm (~> 0.1.1)
108+
webrick
79109

80110
BUNDLED WITH
81-
2.2.24
111+
2.7.1

Makefile

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
.PHONY: help serve server build clean install test
2+
3+
BUNDLE := /opt/homebrew/opt/ruby/bin/bundle
4+
5+
help:
6+
@echo "Available commands:"
7+
@echo " make serve - Serve the site locally with live reload"
8+
@echo " make server - Serve the site locally (alias for serve)"
9+
@echo " make build - Build the site for production"
10+
@echo " make clean - Clean build artifacts"
11+
@echo " make install - Install Jekyll dependencies"
12+
@echo " make test - Serve site locally (alias for serve)"
13+
14+
serve:
15+
$(BUNDLE) exec jekyll serve --livereload
16+
17+
server: serve
18+
19+
build:
20+
$(BUNDLE) exec jekyll build
21+
22+
clean:
23+
rm -rf _site .jekyll-cache .jekyll-metadata
24+
25+
install:
26+
gem install jekyll bundler
27+
bundle install
28+
29+
test: serve

0 commit comments

Comments
 (0)