Skip to content

Commit f36ea4a

Browse files
DavidLiedleclaude
andcommitted
Add GitHub Pages configuration for online book
Complete GitHub Pages setup with Jekyll to serve the book as a beautiful, navigable website. New files: - _config.yml: Jekyll configuration with Cayman theme - index.html: Beautiful landing page with book overview - assets/css/style.scss: Custom styling for better readability - .github/workflows/pages.yml: Automated deployment workflow - Gemfile: Ruby dependencies for Jekyll - GITHUB_PAGES_SETUP.md: Complete setup and maintenance guide Features: - Responsive design (mobile-friendly) - Syntax highlighting for Smalltalk code - Chapter navigation throughout - SEO optimization - Automatic deployment on push - Print-friendly styles - Custom typography for readability The book will be available at: https://cloudstreet-dev.github.io/Learn-Programming-with-Smalltalk/ Next step: Enable GitHub Pages in repository settings. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent be89082 commit f36ea4a

File tree

7 files changed

+1012
-0
lines changed

7 files changed

+1012
-0
lines changed

.github/workflows/pages.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# GitHub Pages deployment workflow
2+
name: Deploy Jekyll site to Pages
3+
4+
on:
5+
# Runs on pushes targeting the default branch
6+
push:
7+
branches: ["main"]
8+
9+
# Allows you to run this workflow manually from the Actions tab
10+
workflow_dispatch:
11+
12+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13+
permissions:
14+
contents: read
15+
pages: write
16+
id-token: write
17+
18+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20+
concurrency:
21+
group: "pages"
22+
cancel-in-progress: false
23+
24+
jobs:
25+
# Build job
26+
build:
27+
runs-on: ubuntu-latest
28+
steps:
29+
- name: Checkout
30+
uses: actions/checkout@v4
31+
32+
- name: Setup Ruby
33+
uses: ruby/setup-ruby@v1
34+
with:
35+
ruby-version: '3.1'
36+
bundler-cache: true
37+
cache-version: 0
38+
39+
- name: Setup Pages
40+
id: pages
41+
uses: actions/configure-pages@v4
42+
43+
- name: Build with Jekyll
44+
run: bundle exec jekyll build --baseurl "${{ steps.pages.outputs.base_path }}"
45+
env:
46+
JEKYLL_ENV: production
47+
48+
- name: Upload artifact
49+
uses: actions/upload-pages-artifact@v3
50+
51+
# Deployment job
52+
deploy:
53+
environment:
54+
name: github-pages
55+
url: ${{ steps.deployment.outputs.page_url }}
56+
runs-on: ubuntu-latest
57+
needs: build
58+
steps:
59+
- name: Deploy to GitHub Pages
60+
id: deployment
61+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,13 @@
11
link_check_report.md
2+
3+
# Jekyll
4+
_site/
5+
.sass-cache/
6+
.jekyll-cache/
7+
.jekyll-metadata
8+
vendor/
9+
10+
# Ruby
11+
Gemfile.lock
12+
*.gem
13+
.bundle/

0 commit comments

Comments
 (0)