Skip to content

merge priview into main#95

Merged
qtrinh2 merged 184 commits into
mainfrom
preview
May 12, 2026
Merged

merge priview into main#95
qtrinh2 merged 184 commits into
mainfrom
preview

Conversation

@qtrinh2
Copy link
Copy Markdown
Contributor

@qtrinh2 qtrinh2 commented May 12, 2026

No description provided.

lmullen and others added 30 commits February 9, 2026 19:23
Added McGee article
changes from V07 to v07
Updated author information and date format.
updated to today's date to fill in info
Updated the publication date and author's email.
pmagoto and others added 27 commits February 9, 2026 19:23
Updated affiliations for Zoe LeBlanc and Crystal Moten.
Complete migration of CRDH site from Jekyll to Hugo static site generator.

## Key Changes

### Build System
- Updated Dockerfile to use Alpine Linux with Hugo Extended v0.154.5
- Added Node.js/npm for Foundation SCSS compilation
- Configured multi-stage Docker build (Hugo build + nginx serve)
- Updated GitHub Actions workflow for Hugo deployment

### Hugo Configuration
- Created hugo.yaml with site settings, permalinks, and taxonomies
- Configured environment-specific configs (dev/production)
- Set up custom media types for Atom feed compatibility
- Preserved Jekyll URL structure (/blog/YYYY/slug/)

### Templates & Layouts
- Converted Liquid templates to Go templates
- Created layouts: baseof, list, single, index, essays/single
- Implemented figure shortcode with markdown rendering
- Added proper HTML escaping for titles with <em> tags
- Configured Google Scholar metadata for academic citations

### Content Migration
- Migrated 48 essays from _posts/ to content/essays/
- Updated front matter (volume-number → volume_number)
- Converted 240+ Jekyll {% figure %} tags to Hugo shortcodes
- Normalized multi-line captions to single-line format
- Preserved all DOI, ORCID, and metadata

### Assets & Styling
- Reorganized static files: moved font/img/js to assets/ subdirectory
- Fixed Foundation SCSS imports for Hugo's Dart Sass compiler
- Copied Foundation/Motion UI from node_modules to assets/vendor/
- Created /img → /assets/img symlink for backward compatibility
- Compiled SCSS with Hugo Pipes (minify + fingerprint)

### Features Preserved
- All 48 essays with proper URLs and metadata
- Google Scholar citation metadata
- ORCID author identification
- DOI links
- Volume-based organization (Volumes 1-8, 2018-2025)
- Atom feed at /articles.xml
- Foundation 6 responsive framework
- Custom fonts and styling

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Changed permalink pattern from /blog/:year/:slug/ to /essays/:filename/
to preserve original URLs like /essays/v08-07-louis-xiv-appartement/
instead of generating title-based slugs.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove all Jekyll source dirs: _layouts, _includes, _essays, _pages, _data
- Remove Jekyll config files: _config.yml and env variants
- Remove Jekyll build files: Gemfile, Gemfile.lock, Makefile, feed.xml, .htaccess
- Remove two placeholder essay files (v07-TK, v08-Republican-Partys)
- Remove articles-feed.md stub (RSS handled by Hugo outputFormats config)
- Fix remaining Liquid syntax in content: {{site.url}}, {{ site.language }}
- Remove deprecated Google Fix URL script from 404.md
- Remove Jekyll permalink/layout front matter from all content pages
- Fix <br> missing blank line causing Goldmark to suppress italic rendering
- Fix <<email>> double angle bracket syntax in submissions.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove Jekyll permalink/layout front matter from all content pages
- Fix <<email>> double angle bracket autolinks in submissions.md
- Fix {{site.url}} Liquid variable in about.md with relative path
- Remove deprecated Google Fix URL Liquid script from 404.md
- Add blank line after <br> tags to prevent Goldmark suppressing italic rendering

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Cherry-picked images from preview branch and migrated essay from
Jekyll to Hugo format: added front matter delimiters, converted
volume-number to volume_number, converted Jekyll figure tags to
Hugo shortcodes, and fixed image paths.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Set placeholder date (2026-04-30) and draft: true for v09 Connor
  essay pending final publication date
- Replace deprecated :filename permalink token with :contentbasename
  (deprecated since Hugo 0.144)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Images were in assets/img/ (Hugo Pipes dir) but need to be in
static/assets/img/ so they're served as static files. The nginx
symlink maps /img/ to /assets/img/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Landmark structure and navigation:
- Add skip navigation link hidden via clip-path, visible on keyboard
  focus (2.4.1 Bypass Blocks)
- Wrap nav menu in <nav aria-label="Main navigation"> (1.3.1)
- Add <main id="main-content"> to homepage, list, and single templates
- Add role="banner" to header, role="contentinfo" to footer

Heading hierarchy (1.3.1 Info and Relationships):
- Render site title as <p class="site-title"> on non-home pages so each
  page has a single <h1>
- Essay pages: title promoted from <h2> to <h1>, section headings
  (Abstract, Appendix, Author) from <h3> to <h2>

Color contrast (1.4.3 Contrast Minimum):
- Change Foundation primary color from #ff0000 to #c50000 to meet 4.5:1
  contrast ratio against white. This intentionally darkens all link
  colors compared to the live site, where #ff0000 fails AA (~4:1).
- Set a:visited to #c50000 to match unvisited link color

Focus visibility (2.4.7 Focus Visible):
- Add 3px blue outline focus indicators on all interactive elements
- Use :focus-visible to suppress outlines on mouse clicks

ARIA and interactive elements (4.1.2 Name, Role, Value):
- Add aria-expanded, aria-controls to abstract toggle buttons
- Add role="region", aria-label to abstract content divs
- Add JS to sync aria-expanded/aria-hidden on toggle
- Add aria-label to ORCID profile links with author names

Image accessibility (1.1.1 Non-text Content):
- Footer logos: use full organization names as alt text
- ORCID icons: set alt="" (decorative) with aria-label on parent link
- Standardize ORCID icons to use shared .orcid-logo class

Other fixes:
- Fix custom.css href to relative path (was unloadable outside Docker
  due to baseURL resolving to localhost)
- Fix unclosed <p> tag in footer
- Change ORCID links from http to https
- Add .sr-only utility class for screen-reader-only content

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Essay content references images at /img/ paths (e.g. /img/v09/connor/)
but files live under /static/assets/img/. The Dockerfile had an nginx
symlink for this, but CI builds Hugo directly without nginx, causing
404s on dev.crdh.rrchnm.org. This symlink in static/ lets Hugo copy
the correct paths into the build output.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Header and navigation:
- Stack site title and nav full-width on small screens (small-12),
  side-by-side on medium+ (medium-auto / medium-4)
- Nav menu uses Foundation's vertical/medium-horizontal responsive
  classes to stack links vertically on mobile
- Remove menu item right borders on mobile (only show on medium+)

Responsive typography:
- Site title: 24px/28px on mobile, 40px/40px on medium+
- .site-title (non-home pages): same responsive scaling
- Essay header title: 2em mobile → 3em medium → 4em large
  (was fixed 4em/72px which overflowed on small screens)

Images and spacing:
- Thumbnail images: max-width 100% on mobile, 350px on medium+
  (prevents horizontal overflow on narrow viewports)
- Body margin: 0.75rem on screens under 640px (was 5px, too tight)

Bug fix:
- Google Fonts import: http:// → https:// (blocked on HTTPS sites)

All breakpoints use Foundation's defaults: 640px (medium), 1024px
(large). No custom breakpoints introduced.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Mirrors rrchnm.org: stagex/pallet-nodejs + stagex/user-hugo-extended
for the build stage, and stagex/user-caddy for serving. The /img
backward-compat path moves from an nginx-side symlink to a Caddy
rewrite rule.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
edits mad after author feedback
Rename content/essays/v07-republican-partys-other-right.md to
v08-01-republican-partys-other-right.md, update volume_number 7→8 and
image paths (/img/v07/buck → /img/v08/buck), and correct the DOI
resource URL in doi/doi_crdh_vol8_01.xml to match the live slug.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replace .Pages.Reverse with `sort .Pages "File.LogicalName" "desc"` in
layouts/index.html and layouts/_default/list.html so every volume lists
essays in reverse-numerical order, matching the Jekyll production site
at crdh.rrchnm.org. Update v08-02..v08-07 dates to 2025-10-30 to mirror
the Jekyll source frontmatter (Buck/v08-01 stays at 2025-09-04, also
matching prod).

Enable --buildDrafts --buildFuture by default in the Dockerfile so
docker deployments include in-flight essays (e.g. v09 Connor draft).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Configure a Hugo taxonomy so each volume (year) has its own page at
/volume/2018/, /volume/2025/, etc. Add a term.html template that lists
the volume's essays with an "All Volumes" sidebar.

Each essay now has both year: "YYYY" (existing grouping templates) and
volume: "YYYY" (taxonomy). Year values are quoted strings — Hugo's
taxonomy system silently ignores bare integer frontmatter values.

Also fix a latent bug in list.html where .Scratch.Get was called with
no arguments; switch to range $index, $essay form like index.html.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@qtrinh2 qtrinh2 self-assigned this May 12, 2026
@qtrinh2 qtrinh2 marked this pull request as ready for review May 12, 2026 16:30
@qtrinh2 qtrinh2 merged commit 06c245e into main May 12, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants