Skip to content

Commit fc58b13

Browse files
committed
feat: initial Hugo site for scikit-build.org
- PaperMod theme via Hugo modules - Home page with hero section and project cards grid - Projects: scikit-build-core, scikit-build, cmake/ninja-python-distributions, cython-cmake, f2py-cmake (from data/projects.yaml) - Custom CSS for cards and hero layout - GitHub Actions workflow for GitHub Pages deployment Assisted-by: Copilot:claude-sonnet-4.6 Signed-off-by: Henry Schreiner <henryfs@princeton.edu>
0 parents  commit fc58b13

10 files changed

Lines changed: 364 additions & 0 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
pages: write
11+
id-token: write
12+
13+
concurrency:
14+
group: pages
15+
cancel-in-progress: false
16+
17+
jobs:
18+
build:
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v4
22+
23+
- name: Setup Go
24+
uses: actions/setup-go@v5
25+
with:
26+
go-version: "stable"
27+
28+
- name: Setup Hugo
29+
uses: peaceiris/actions-hugo@v3
30+
with:
31+
hugo-version: "latest"
32+
extended: true
33+
34+
- name: Setup Pages
35+
id: pages
36+
uses: actions/configure-pages@v5
37+
38+
- name: Build
39+
run: hugo --minify --baseURL "${{ steps.pages.outputs.base_url }}/"
40+
41+
- name: Upload artifact
42+
uses: actions/upload-pages-artifact@v3
43+
with:
44+
path: ./public
45+
46+
deploy:
47+
environment:
48+
name: github-pages
49+
url: ${{ steps.deployment.outputs.page_url }}
50+
runs-on: ubuntu-latest
51+
needs: build
52+
steps:
53+
- name: Deploy to GitHub Pages
54+
id: deployment
55+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
public/
2+
resources/_gen/
3+
.hugo_build.lock
4+
_vendor/

archetypes/default.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
+++
2+
date = '{{ .Date }}'
3+
draft = true
4+
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
5+
+++

assets/css/extended/homepage.css

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
/* ── Hero section ────────────────────────────────────────────────────────── */
2+
.home-hero {
3+
text-align: center;
4+
padding: 3.5rem 1rem 3rem;
5+
border-bottom: 1px solid var(--border);
6+
margin-bottom: 3rem;
7+
}
8+
9+
.home-hero-title {
10+
font-size: 2.8rem;
11+
font-weight: 800;
12+
margin: 0 0 0.75rem;
13+
letter-spacing: -0.02em;
14+
}
15+
16+
.home-hero-subtitle {
17+
font-size: 1.15rem;
18+
color: var(--secondary);
19+
max-width: 560px;
20+
margin: 0 auto 2rem;
21+
line-height: 1.6;
22+
}
23+
24+
.home-hero-links {
25+
display: flex;
26+
gap: 0.75rem;
27+
justify-content: center;
28+
flex-wrap: wrap;
29+
}
30+
31+
.home-btn {
32+
display: inline-flex;
33+
align-items: center;
34+
gap: 0.4rem;
35+
padding: 0.55rem 1.25rem;
36+
border-radius: 6px;
37+
font-size: 0.95rem;
38+
font-weight: 600;
39+
text-decoration: none;
40+
transition: opacity 0.15s;
41+
}
42+
43+
.home-btn:hover {
44+
opacity: 0.85;
45+
}
46+
47+
.home-btn-primary {
48+
background: var(--theme);
49+
color: var(--primary);
50+
border: 2px solid var(--primary);
51+
}
52+
53+
.home-btn-secondary {
54+
background: transparent;
55+
color: var(--primary);
56+
border: 2px solid var(--border);
57+
}
58+
59+
/* ── Projects section ────────────────────────────────────────────────────── */
60+
.projects-section {
61+
margin-bottom: 4rem;
62+
}
63+
64+
.projects-section-title {
65+
font-size: 1.4rem;
66+
font-weight: 700;
67+
margin: 0 0 1.5rem;
68+
padding-bottom: 0.5rem;
69+
border-bottom: 2px solid var(--border);
70+
}
71+
72+
.projects-grid {
73+
display: grid;
74+
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
75+
gap: 1rem;
76+
}
77+
78+
/* ── Project card ────────────────────────────────────────────────────────── */
79+
.project-card {
80+
display: flex;
81+
flex-direction: column;
82+
padding: 1.25rem 1.4rem;
83+
border: 1px solid var(--border);
84+
border-radius: 8px;
85+
text-decoration: none;
86+
color: var(--primary);
87+
background: var(--entry);
88+
transition: border-color 0.15s, box-shadow 0.15s, transform 0.1s;
89+
}
90+
91+
.project-card:hover {
92+
border-color: var(--primary);
93+
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
94+
transform: translateY(-2px);
95+
}
96+
97+
.project-card-primary {
98+
border-color: var(--primary);
99+
border-width: 2px;
100+
}
101+
102+
.project-card-header {
103+
display: flex;
104+
align-items: center;
105+
gap: 0.6rem;
106+
margin-bottom: 0.6rem;
107+
}
108+
109+
.project-card-name {
110+
font-size: 1.05rem;
111+
font-weight: 700;
112+
margin: 0;
113+
line-height: 1.3;
114+
}
115+
116+
.project-card-badge {
117+
font-size: 0.65rem;
118+
font-weight: 700;
119+
text-transform: uppercase;
120+
letter-spacing: 0.05em;
121+
padding: 0.15rem 0.45rem;
122+
border-radius: 4px;
123+
background: var(--primary);
124+
color: var(--theme);
125+
white-space: nowrap;
126+
}
127+
128+
.project-card-description {
129+
font-size: 0.9rem;
130+
color: var(--secondary);
131+
line-height: 1.55;
132+
margin: 0 0 1rem;
133+
flex-grow: 1;
134+
}
135+
136+
.project-card-links {
137+
display: flex;
138+
gap: 0.75rem;
139+
flex-wrap: wrap;
140+
margin-top: auto;
141+
}
142+
143+
.project-card-link {
144+
display: inline-flex;
145+
align-items: center;
146+
gap: 0.3rem;
147+
font-size: 0.8rem;
148+
font-weight: 500;
149+
color: var(--secondary);
150+
}
151+
152+
/* Dark mode tweaks */
153+
.dark .project-card:hover {
154+
box-shadow: 0 2px 12px rgba(255, 255, 255, 0.05);
155+
}

content/_index.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
title: "scikit-build"
3+
description: "Build tools for Python extensions using CMake"
4+
---

data/projects.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
- name: scikit-build-core
2+
description: >-
3+
The next-generation Python CMake adaptor. Provides a PEP 517 build backend
4+
and a rich plugin API for building Python packages backed by CMake.
5+
github: https://github.com/scikit-build/scikit-build-core
6+
docs: https://scikit-build-core.readthedocs.io/
7+
pypi: https://pypi.org/project/scikit-build-core/
8+
primary: true
9+
10+
- name: scikit-build
11+
description: >-
12+
The original improved build system generator for CPython C, C++, Cython,
13+
and Fortran extensions. A bridge between setuptools and CMake.
14+
github: https://github.com/scikit-build/scikit-build
15+
docs: https://scikit-build.readthedocs.io/
16+
pypi: https://pypi.org/project/scikit-build/
17+
18+
- name: cmake-python-distributions
19+
description: >-
20+
Provides infrastructure to build and distribute CMake as a Python wheel,
21+
making CMake easily installable via pip on all major platforms.
22+
github: https://github.com/scikit-build/cmake-python-distributions
23+
pypi: https://pypi.org/project/cmake/
24+
25+
- name: ninja-python-distributions
26+
description: >-
27+
Provides infrastructure to build and distribute Ninja as a Python wheel,
28+
making the Ninja build system easily installable via pip.
29+
github: https://github.com/scikit-build/ninja-python-distributions
30+
pypi: https://pypi.org/project/ninja/
31+
32+
- name: cython-cmake
33+
description: >-
34+
CMake helpers for building Cython extension modules, making it easier to
35+
integrate Cython into CMake-based build systems.
36+
github: https://github.com/scikit-build/cython-cmake
37+
pypi: https://pypi.org/project/cython-cmake/
38+
39+
- name: f2py-cmake
40+
description: >-
41+
CMake helpers for building Fortran extension modules via F2Py, enabling
42+
Fortran code to be easily wrapped and called from Python.
43+
github: https://github.com/scikit-build/f2py-cmake
44+
pypi: https://pypi.org/project/f2py-cmake/

go.mod

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module github.com/scikit-build/scikit-build.github.io
2+
3+
go 1.26.2
4+
5+
require github.com/adityatelange/hugo-PaperMod v0.0.0-20260411190257-f207ce6d5889 // indirect

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
github.com/adityatelange/hugo-PaperMod v0.0.0-20260411190257-f207ce6d5889 h1:61NKqdIVVkhAjh2jJtW02bWw24L9YYNbvYGBZCM1egA=
2+
github.com/adityatelange/hugo-PaperMod v0.0.0-20260411190257-f207ce6d5889/go.mod h1:sp5WH671pzcVNpWKveBQKlBfu6T9uvcBI/4B3BSojKw=

hugo.toml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
baseURL = 'https://scikit-build.org/'
2+
languageCode = 'en-us'
3+
title = 'scikit-build'
4+
theme = 'github.com/adityatelange/hugo-PaperMod'
5+
6+
[params]
7+
description = "Build tools for Python extensions using CMake"
8+
author = "scikit-build"
9+
ShowReadingTime = false
10+
ShowShareButtons = false
11+
ShowPostNavLinks = false
12+
hideMeta = true
13+
14+
[params.homeInfoParams]
15+
Title = "scikit-build"
16+
Content = """
17+
scikit-build is an ecosystem of tools for building Python packages that use compiled extensions — especially those built with CMake.
18+
Whether you need the next-generation CMake adaptor, pre-built CMake/Ninja wheels, or helpers for Cython and Fortran, you'll find it here.
19+
"""
20+
21+
[menu]
22+
[[menu.main]]
23+
identifier = "projects"
24+
name = "Projects"
25+
url = "/#projects"
26+
weight = 10
27+
[[menu.main]]
28+
identifier = "github"
29+
name = "GitHub"
30+
url = "https://github.com/scikit-build"
31+
weight = 20
32+
33+
[module]
34+
[[module.imports]]
35+
path = 'github.com/adityatelange/hugo-PaperMod'

layouts/index.html

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
{{- define "main" }}
2+
<div class="home-hero">
3+
<h1 class="home-hero-title">scikit-build</h1>
4+
<p class="home-hero-subtitle">
5+
An ecosystem of tools for building Python packages with compiled extensions —
6+
especially those powered by <a href="https://cmake.org/">CMake</a>.
7+
</p>
8+
<div class="home-hero-links">
9+
<a class="home-btn home-btn-primary" href="https://github.com/scikit-build">
10+
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
11+
<path d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61-.546-1.385-1.335-1.755-1.335-1.755-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 21.795 24 17.295 24 12c0-6.63-5.37-12-12-12z"/>
12+
</svg>
13+
GitHub
14+
</a>
15+
<a class="home-btn home-btn-secondary" href="https://scikit-build-core.readthedocs.io/">
16+
Documentation
17+
</a>
18+
</div>
19+
</div>
20+
21+
<section class="projects-section" id="projects">
22+
<h2 class="projects-section-title">Projects</h2>
23+
<div class="projects-grid">
24+
{{- range hugo.Data.projects }}
25+
<a class="project-card{{ if .primary }} project-card-primary{{ end }}" href="{{ .github }}" target="_blank" rel="noopener noreferrer">
26+
<div class="project-card-header">
27+
<h3 class="project-card-name">{{ .name }}</h3>
28+
{{- if .primary }}
29+
<span class="project-card-badge">Core</span>
30+
{{- end }}
31+
</div>
32+
<p class="project-card-description">{{ .description }}</p>
33+
<div class="project-card-links">
34+
{{- if .docs }}
35+
<span class="project-card-link">
36+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>
37+
Docs
38+
</span>
39+
{{- end }}
40+
{{- if .pypi }}
41+
<span class="project-card-link">
42+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="10"/><path d="M12 8v4l3 3"/></svg>
43+
PyPI
44+
</span>
45+
{{- end }}
46+
<span class="project-card-link project-card-link-github">
47+
<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.3 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61-.546-1.385-1.335-1.755-1.335-1.755-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 21.795 24 17.295 24 12c0-6.63-5.37-12-12-12z"/></svg>
48+
GitHub
49+
</span>
50+
</div>
51+
</a>
52+
{{- end }}
53+
</div>
54+
</section>
55+
{{- end }}

0 commit comments

Comments
 (0)