Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
22 changes: 0 additions & 22 deletions .devcontainer/devcontainer.json

This file was deleted.

21 changes: 3 additions & 18 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,19 +1,4 @@
# CODEOWNERS file sets rules for who should be notified when a pull request
# modifies code in a specific path.
# See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners for more information.
# CODEOWNERS — who gets requested for review on pull requests.
# See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

# Configuration parameters for site
_config.yml @lwasser @kierisi
CNAME @lwasser @kierisi

# Workflow files for GitHub Actions
.github/** @lwasser @willingc

# Site pages
_site/* @lwasser @kierisi

# Blog posts
_posts/* @lwasser @kierisi

# Scripts
scripts/* @lwasser @willingc
* @lwasser @willingc
2 changes: 1 addition & 1 deletion .github/workflows/build-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: "20"
node-version: "24"
cache: npm

- name: Install npm dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/deploy-gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: "20"
node-version: "24"
cache: npm

- name: Install npm dependencies
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linkcheck.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: "20"
node-version: "24"
cache: npm

- name: Install npm dependencies
Expand Down
9 changes: 1 addition & 8 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,3 @@
_site/
.sass-cache/
.jekyll-metadata
_config-dev.yml
_config.yml
Gemfile.lock
.DS_Store
images/full-images/
all_contribs.pickle
Expand All @@ -18,7 +12,6 @@ public/
resources/
.lycheecache

# site redesign
# local agent / test work (never commit)
.cursor/*
_law_tests/*
jekyll/*
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24
1 change: 0 additions & 1 deletion .ruby-version

This file was deleted.

16 changes: 0 additions & 16 deletions 404.md

This file was deleted.

1 change: 0 additions & 1 deletion CNAME

This file was deleted.

9 changes: 3 additions & 6 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@ We have a bash script, `scripts/date-updated.sh`, that walks blog posts and sets
the `last_modified:` date in front matter from your local git history. It only
updates posts that already include a `last_modified:` key.

Hugo blog posts live in `content/blog/`. The script still scans `_posts/`
(Jekyll layout) — update the script path after cutover, or edit front matter
manually until then.
Hugo blog posts live in `content/blog/`.

From the repository root:

Expand All @@ -35,9 +33,8 @@ questions, please open an issue in the repository or contact us via Slack.
This repository, [`pyOpenSci/pyopensci.github.io`](https://github.com/pyOpenSci/pyopensci.github.io),
contains the source code for the [pyOpenSci.org](https://www.pyopensci.org) website.

The site is migrating from Jekyll to **[Hugo](https://gohugo.io)**. Hugo source
lives at the repo root (`content/`, `data/`, `themes/clean-hugo/`). The legacy
Jekyll site remains in `jekyll/` until production cutover.
The site is built with **[Hugo](https://gohugo.io)**. Source lives at the repo
root (`content/`, `data/`, `themes/clean-hugo/`).

If you want to contribute pages, blog posts, theme layouts, SCSS, or shortcodes,
start here:
Expand Down
41 changes: 5 additions & 36 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,7 @@ There is no `static/scss/` folder. All authored styles live under

### `assets/css/` — main styling (SCSS)

* Entry file: `themes/clean-hugo/assets/css/site.scss` (see **Jekyll coexistence**
below — normally this would be `main.scss`)
* Entry file: `themes/clean-hugo/assets/css/main.scss`
* Partials: `_footer.scss`, `_blog.scss`, `_events.scss`, etc.
* Hugo compiles this at **build time** (local `hugo server` or Netlify).
* Output goes to `public/css/site.min.<hash>.css` — never commit that file.
Expand All @@ -55,19 +54,18 @@ Defined in `themes/clean-hugo/layouts/_default/baseof.html`:
2. **Main stylesheet** — Hugo Pipes pipeline:

```go
{{ $styles := resources.Get "css/site.scss" | toCSS | postCSS | minify | fingerprint }}
{{ $styles := resources.Get "css/main.scss" | toCSS | postCSS | minify | fingerprint }}
```

Steps: SCSS → CSS → PostCSS (autoprefixer) → minify → fingerprinted URL.

3. **Syntax CSS** — plain link to `/css/syntax.css` from theme `static/`.

Root `package.json` and `postcss.config.js` exist **for step 2 only**. They are
not used by Jekyll.
Root `package.json` and `postcss.config.js` exist for the Hugo asset pipeline.

## SCSS file map

`site.scss` imports partials in this order (simplified):
`main.scss` imports partials in this order (simplified):

| Partial | Purpose |
|---------|---------|
Expand Down Expand Up @@ -102,7 +100,7 @@ colors there for site-wide brand updates.
**SCSS variables** — in `_variables.scss` (`$spacing-md`, `$breakpoint-lg`,
etc.). Use for layout, spacing, and component structure inside the theme.

**Fonts** — loaded via `@font-face` in `site.scss` from
**Fonts** — loaded via `@font-face` in `main.scss` from
`themes/clean-hugo/static/fonts/`. Font family names are configured in
`hugo.toml` `[params.theme.fonts]`.

Expand Down Expand Up @@ -133,28 +131,6 @@ hugo gen chromastyles --style=monokai > themes/clean-hugo/static/css/syntax.css

Then commit the updated `syntax.css`.

## Jekyll coexistence (temporary — revert at cutover)

While Jekyll and Hugo share this repo, **root** `assets/css/main.scss` remains
on `main`. That file is Jekyll’s Minimal Mistakes entry point and starts with
YAML front matter (`---`), which Hugo’s SCSS compiler cannot parse.

Hugo’s `resources.Get "css/main.scss"` resolves **site `assets/` before theme
`assets/`**, so the Jekyll file shadows the theme stylesheet and Netlify builds
fail.

**Workaround (current):**

* Theme entry SCSS is named `site.scss` (not `main.scss`).
* Layouts load `resources.Get "css/site.scss"` in `baseof.html` and `404.html`.

**Revert when Jekyll is retired** (after root Jekyll assets are removed or
moved under `jekyll/`):

1. Rename `themes/clean-hugo/assets/css/site.scss` → `main.scss`.
2. Update `baseof.html` and `404.html` to `resources.Get "css/main.scss"`.
3. Remove this section from `DEVELOPMENT.md`.

## Netlify

`netlify.toml` runs `npm ci && hugo --gc --minify`. CSS is built on Netlify the
Expand All @@ -177,10 +153,3 @@ the same Hugo build as Netlify, then validates the output:

CircleCI and the CircleCI artifact redirector were removed during the Hugo
migration.

**Still on Jekyll (migrate later):**

| Workflow | Purpose |
|----------|---------|
| `.github/workflows/linkcheck.yml` | Weekly scheduled link check |
| `.github/workflows/deploy-gh-pages.yml` | GitHub Pages deploy badge in README |
17 changes: 0 additions & 17 deletions Gemfile

This file was deleted.

160 changes: 160 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
GEM
remote: https://rubygems.org/
specs:
activesupport (7.2.2.1)
base64
benchmark (>= 0.3)
bigdecimal
concurrent-ruby (~> 1.0, >= 1.3.1)
connection_pool (>= 2.2.5)
drb
i18n (>= 1.6, < 2)
logger (>= 1.4.2)
minitest (>= 5.1)
securerandom (>= 0.3)
tzinfo (~> 2.0, >= 2.0.5)
addressable (2.8.7)
public_suffix (>= 2.0.2, < 7.0)
base64 (0.2.0)
benchmark (0.4.1)
bigdecimal (3.2.2)
colorator (1.1.0)
concurrent-ruby (1.3.5)
connection_pool (2.5.3)
drb (2.2.3)
em-websocket (0.5.3)
eventmachine (>= 0.12.9)
http_parser.rb (~> 0)
ethon (0.16.0)
ffi (>= 1.15.0)
eventmachine (1.2.7)
faraday (2.13.1)
faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-net_http (3.4.1)
net-http (>= 0.5.0)
ffi (1.16.3)
forwardable-extended (2.6.0)
gemoji (4.1.0)
google-protobuf (4.27.2-arm64-darwin)
bigdecimal
rake (>= 13)
html-pipeline (2.14.3)
activesupport (>= 2)
nokogiri (>= 1.4)
html-proofer (3.19.4)
addressable (~> 2.3)
mercenary (~> 0.3)
nokogiri (~> 1.13)
parallel (~> 1.10)
rainbow (~> 3.0)
typhoeus (~> 1.3)
yell (~> 2.0)
http_parser.rb (0.8.0)
i18n (1.14.7)
concurrent-ruby (~> 1.0)
jekyll (4.3.3)
addressable (~> 2.4)
colorator (~> 1.0)
em-websocket (~> 0.5)
i18n (~> 1.0)
jekyll-sass-converter (>= 2.0, < 4.0)
jekyll-watch (~> 2.0)
kramdown (~> 2.3, >= 2.3.1)
kramdown-parser-gfm (~> 1.0)
liquid (~> 4.0)
mercenary (>= 0.3.6, < 0.5)
pathutil (~> 0.9)
rouge (>= 3.0, < 5.0)
safe_yaml (~> 1.0)
terminal-table (>= 1.8, < 4.0)
webrick (~> 1.7)
jekyll-feed (0.17.0)
jekyll (>= 3.7, < 5.0)
jekyll-gist (1.5.0)
octokit (~> 4.2)
jekyll-include-cache (0.2.1)
jekyll (>= 3.7, < 5.0)
jekyll-paginate (1.1.0)
jekyll-redirect-from (0.16.0)
jekyll (>= 3.3, < 5.0)
jekyll-sass-converter (3.0.0)
sass-embedded (~> 1.54)
jekyll-sitemap (1.4.0)
jekyll (>= 3.7, < 5.0)
jekyll-watch (2.2.1)
listen (~> 3.0)
jekyll-webp (1.0.0)
jemoji (0.13.0)
gemoji (>= 3, < 5)
html-pipeline (~> 2.2)
jekyll (>= 3.0, < 5.0)
json (2.15.0)
kramdown (2.4.0)
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
liquid (4.0.4)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
logger (1.6.6)
mercenary (0.3.6)
minitest (5.25.5)
net-http (0.6.0)
uri
nokogiri (1.18.8-arm64-darwin)
racc (~> 1.4)
octokit (4.25.1)
faraday (>= 1, < 3)
sawyer (~> 0.9)
parallel (1.24.0)
pathutil (0.16.2)
forwardable-extended (~> 2.6)
public_suffix (5.1.1)
racc (1.8.1)
rainbow (3.1.1)
rake (13.2.1)
rb-fsevent (0.11.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rexml (3.4.1)
rouge (4.3.0)
safe_yaml (1.0.5)
sass-embedded (1.77.8-arm64-darwin)
google-protobuf (~> 4.26)
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
securerandom (0.4.1)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
typhoeus (1.4.1)
ethon (>= 0.9.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
unicode-display_width (2.5.0)
uri (1.0.3)
webrick (1.9.1)
yell (2.2.2)

PLATFORMS
arm64-darwin

DEPENDENCIES
ffi (= 1.16.3)
html-proofer
jekyll (~> 4.3.3)
jekyll-feed (~> 0.17.0)
jekyll-gist (~> 1.5)
jekyll-include-cache
jekyll-paginate (~> 1.1)
jekyll-redirect-from (~> 0.16.0)
jekyll-sitemap (~> 1.4)
jekyll-webp
jemoji (~> 0.13.0)
webrick

BUNDLED WITH
2.5.18
Loading
Loading