Skip to content

Pelican migration - #6

Merged
devinsilvia merged 28 commits into
mainfrom
pelican-migration
May 7, 2026
Merged

Pelican migration#6
devinsilvia merged 28 commits into
mainfrom
pelican-migration

Conversation

@devinsilvia

Copy link
Copy Markdown
Contributor

Summary

This PR completes the migration of the CERL website from Jekyll to Pelican, a Python-based static site generator. Here's what's included:

  • Pelican migration — replaces the Jekyll build with a Pelican + uv workflow; all content pages converted to Pelican-compatible Markdown with plain key-value
    metadata headers
  • Custom theme — new themes/ directory with Jinja2 templates, a layout/typography stylesheet, and two color schemes (cerl, msu) driven entirely by CSS
    custom properties
  • Dark mode — automatic OS-preference dark mode via @media (prefers-color-scheme: dark); includes a separate squirrel logo with white text for dark backgrounds
  • News & Perspectives — new blog-style section at /news/ backed by content/posts/; posts are listed in reverse chronological order with summaries and "Read
    the full post" links
  • Publications workflow — pure-Python bin/create_pubs.py replaces the old shell/gawk script; uses pypandoc with a vendored APA CSL file (no network or system
    pandoc required at build time)
  • GitHub Actions CI/CD — deploy workflow builds on all branches (build-only) and deploys to GitHub Pages only on main; updated to opt into Node.js 24
  • Updated homepage copy — rewrote the lab description to more fully communicate CERL's research focus, methods, and interdisciplinary scope
  • DocumentationREADME.md updated to reflect the new workflow, content structure, and common editing tasks and CLAUDE.md added for future development with Claude Code assistance.

Test plan

  • GitHub Actions build job passes on this branch
  • Local production build (uv run pelican content -s publishconf.py) completes without errors
  • All nav links resolve correctly, with active state highlighting on each page
  • News index at /news/ lists posts with summaries; individual post pages render correctly
  • Dark mode activates correctly when OS preference is set to dark
  • Publications page renders with correct APA citations grouped by year
  • Site deploys cleanly to msucerl.org after merge

This migration was developed with assistance by Claude Code

devinsilvia added 19 commits May 5, 2026 11:23
  Replaces the Jekyll/Ruby build with a Pelican-based workflow managed
  entirely within the Python ecosystem using uv.

  - Add pyproject.toml and uv.lock (Pelican, pelican-sitemap, typogrify)
  - Add pelicanconf.py and publishconf.py replacing _config.yml
  - Migrate all content pages to content/pages/ with Pelican metadata
  - Move assets/ into content/assets/ to match Pelican's content layout
  - Add custom theme (themes/) with Jinja2 templates and CSS
  - Implement dual color scheme (MSU brand / CERL) via separate theme
    CSS files, selectable at build time via COLOR_SCHEME in pelicanconf.py
  - Convert Jekyll Liquid figure shortcodes to inline HTML img tags
  - Update bin/create_pubs.sh to output Pelican metadata format and
    write to content/pages/pubs.md
  - Update templates/pubs-template.md bibliography path for new layout
  - Update CLAUDE.md with revised build and publishing workflow

  The original Jekyll files (_config.yml, Gemfile, root .md pages) are
  retained on the main branch and are not part of this migration.
  Add bin/create_pubs.py using pypandoc (bundled binary) to generate
  content/pages/pubs.md from the BibTeX file, eliminating the system
  dependencies on pandoc and gawk required by bin/create_pubs.sh.
  The old shell script is kept as a reference.
…version of the apa.csl file rather than requiring internet access.
  - base.html: homepage canonical now resolves to / instead of /home/
  - pelicanconf.py: narrow STATIC_PATHS to assets/img so the .bib file
    is not copied into the site output
  - publishconf.py: anchor sys.path to the file's own directory instead
    of the process working directory; update SITEURL to msucerl.org
  - deploy.yml: enable uv dependency caching in CI
  - create_pubs.py: add trailing newline and explicit UTF-8 encoding to write_text
  - pelicanconf.py: remove dead FEATURE_IMAGE key (feature hero is disabled in template)
  - CLAUDE.md: correct theme path (themes/ not themes/cerl/), update hosted URL
    to msucerl.org, remove stale feature hero and FEATURE_IMAGE references
  - about.md: add Status: hidden so the stub isn't published or sitemapped
  - pelicanconf.py: strip dead articles/indexes keys from SITEMAP config
  - style.css: remove unused .feature-hero/.feature-overlay rules and --font-serif variable
  - CLAUDE.md: fix index.html template description and color theme mechanism description
  Both theme-cerl.css and theme-msu.css now include a dark variant that
  activates automatically based on the user's OS preference. Header and
  nav are unchanged (already dark); the overrides cover body background,
  text, headings, accents, borders, aside, and footer. Accent colors are
  lightened relative to their light-mode values to maintain contrast on
  dark backgrounds.
  Uses the native <picture> element to serve the white-text variant
  (CERL_squirrel_nobackground_whitetext_v2.png) in dark mode and the
  existing black-text logo in light mode. No JS or CSS changes needed.
  Enables Pelican's article system to power a lab news and blog feed:

  - content/posts/ — new directory for post files; includes a welcome post
  - news.html / article.html — templates for the index and individual posts
  - pelicanconf.py — enable ARTICLE_PATHS, add URL/save-as config for
    news/{year}/{slug}/, add DIRECT_TEMPLATES/NEWS_SAVE_AS for the index,
    suppress individual category/tag/author pages, restore sitemap config
    for articles and indexes, add "News & Perspectives" as second nav item
  - base.html — active nav state now handles article pages and news index
  - style.css — news list and article meta/back-link styles
  Documents the post metadata format and workflow for creating new entries
  in content/posts/, covering Title, Date, Author, Slug, and Summary fields.
  Rewrites the homepage blurb to more fully describe CERL's research focus,
  methods, and interdisciplinary scope across three colleges. Moves Publications
  to the end of the nav bar, fixes section header float-clearing on the People
  page so "External Collaborators" is properly separated from the bio above it,
  and adds News & Perspectives post documentation to README and CLAUDE.md.
  Fixes a CLAUDE.md inaccuracy (COLOR_SCHEME only needs to be set in
  pelicanconf.py; publishconf.py inherits it), removes the unused
  yaml-metadata.template left over from the old pandoc workflow, and
  expands the commented-out feature hero block in index.html with
  re-enablement instructions in case it's wanted again.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Completes the CERL website migration from Jekyll to Pelican by introducing a custom Pelican theme (templates + CSS), converting site content to Pelican’s metadata/header format, and updating CI/CD to build/deploy via uv + GitHub Actions (including a Python publications generator).

Changes:

  • Added a Pelican theme (themes/) with page/article/news templates and CSS variable–driven color schemes (plus dark mode tokens).
  • Replaced the old publications build script with bin/create_pubs.py and added a vendored APA CSL file + BibTeX source.
  • Replaced Jekyll tooling/config with Pelican configs (pelicanconf.py, publishconf.py), a pyproject.toml, and a new Actions deploy workflow.

Reviewed changes

Copilot reviewed 32 out of 80 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
themes/templates/page.html New Pelican page template.
themes/templates/news.html New /news/ index template.
themes/templates/index.html New homepage template with aside + logo handling.
themes/templates/base.html New base layout with header/nav/footer + canonical link logic.
themes/templates/article.html New article (news post) template.
themes/static/css/theme-msu.css MSU color tokens (light/dark).
themes/static/css/theme-cerl.css CERL color tokens (light/dark).
themes/static/css/style.css New global layout/typography + news/article styles.
templates/yaml-metadata.template Removed legacy pandoc template (Jekyll-era).
templates/pubs-template.md Updated pandoc input template for pubs generation.
templates/apa.csl Vendored APA CSL style for offline citeproc.
README.md Updated local dev + editing workflow docs for Pelican/uv.
pyproject.toml Added Python project deps (Pelican, plugins, pypandoc binary).
publishconf.py Added Pelican production config (SITEURL, output deletion).
pelicanconf.py Added Pelican site config (paths, URLs, theme, menu, sitemap).
index.md Removed old Jekyll homepage content file.
Gemfile.lock Removed Ruby/Jekyll dependency lockfile.
Gemfile Removed Ruby/Jekyll dependency manifest.
content/posts/welcome.md Added initial News & Perspectives post.
content/pages/pubs.md Converted pubs page to Pelican metadata format + updated content.
content/pages/projects.md Converted projects page and replaced Jekyll include with <img>.
content/pages/people.md Converted people page and replaced Jekyll includes with <img>.
content/pages/outreach.md Converted outreach page to Pelican metadata format.
content/pages/home.md Added Pelican homepage content + template/save_as metadata.
content/pages/curriculumdev.md Converted curriculum dev page to Pelican metadata format.
content/pages/about.md Added placeholder About page (hidden).
content/assets/styles.scss Added SCSS file (appears Jekyll/Alembic-era).
content/assets/bib/group_publications.bib Added bibliography source for pubs generation.
CLAUDE.md Added repo workflow/architecture guidance for Claude Code.
bin/create_pubs.sh Updated legacy shell script paths/front matter (still present).
bin/create_pubs.py Added Python pubs generation script using pypandoc + CSL.
about.md Removed old Jekyll about page.
404.md Removed old Jekyll 404 page.
.gitignore Updated ignores for Python/Pelican artifacts.
.github/workflows/deploy.yml New Actions workflow: build all branches; deploy main only.
_includes/site-aside.html Removed Jekyll include file.
_includes/figure.html Removed Jekyll include file.
_config.yml Removed Jekyll site configuration.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread themes/static/css/style.css
Comment thread themes/static/css/style.css
Comment thread README.md
@devinsilvia

Copy link
Copy Markdown
Contributor Author

@copilot apply changes based on the comments in this thread

Copilot AI commented May 7, 2026

Copy link
Copy Markdown
Contributor

@copilot apply changes based on the comments in this thread

Implemented the requested review-thread updates in commit a6a69ce:

  • Added reduced-motion handling for smooth scrolling.
  • Added visible keyboard focus styles for nav links and interactive elements.
  • Updated README to prefer official/package-manager uv install methods and a safer reviewed-script flow.

Screenshot of updated UI: /tmp/cerl-ui.png

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • accounts.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4273 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.lwMday --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,16385055030083090699,8031281677746318291,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9737525075149146299,6141934834131558977,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/index.html (dns block)
  • clients2.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4273 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.lwMday --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,16385055030083090699,8031281677746318291,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9737525075149146299,6141934834131558977,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/index.html (dns block)
  • msucerl.org
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4273 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.lwMday --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,16385055030083090699,8031281677746318291,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9737525075149146299,6141934834131558977,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/index.html (dns block)
  • redirector.gvt1.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4273 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.lwMday --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,16385055030083090699,8031281677746318291,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9737525075149146299,6141934834131558977,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/index.html (dns block)
  • www.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4273 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.lwMday --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,16385055030083090699,8031281677746318291,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,9737525075149146299,6141934834131558977,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/index.html (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 32 out of 80 changed files in this pull request and generated 4 comments.

Comment thread themes/static/css/style.css Outdated
Comment thread themes/templates/base.html Outdated
Comment thread README.md
Comment thread CLAUDE.md Outdated
@devinsilvia

Copy link
Copy Markdown
Contributor Author

@copilot apply changes based on the comments in this thread

Copilot AI commented May 7, 2026

Copy link
Copy Markdown
Contributor

@copilot apply changes based on the comments in this thread

Applied the requested thread updates in commit 04a1267:

  • Fixed .page-title cascade/specificity conflict so page titles keep intended styling.
  • Expanded canonical link handling in base.html for pages, articles, and direct-template outputs (including /news/).
  • Updated README and CLAUDE local dev command to uv run pelican --listen --autoreload.

Screenshot: /tmp/cerl-ui-review2.png

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • accounts.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4083 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.9W22hJ --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,17246884846029338348,4958132930423049172,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,3848169749667219263,10498767017228063456,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review2.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)
  • clients2.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4083 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.9W22hJ --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,17246884846029338348,4958132930423049172,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,3848169749667219263,10498767017228063456,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review2.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)
  • msucerl.org
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4083 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.9W22hJ --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,17246884846029338348,4958132930423049172,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,3848169749667219263,10498767017228063456,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review2.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)
  • redirector.gvt1.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4083 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.9W22hJ --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,17246884846029338348,4958132930423049172,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,3848169749667219263,10498767017228063456,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review2.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)
  • www.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=4083 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.9W22hJ --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,17246884846029338348,4958132930423049172,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,3848169749667219263,10498767017228063456,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review2.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

  Adds a skip-to-main-content link for keyboard users, marks the active
  nav item with aria-current="page", and corrects the heading hierarchy
  across all content pages and templates — page titles are now h1,
  section headers h2, entries h3, and sub-headings h4. Also updates the
  README uv install instructions and float-clearing CSS to cover h2.
  Adds aria-label="Main" to the nav, aria-label="About CERL" to the
  homepage aside, and wraps individual post content in <article>. Hides
  the redundant "Read the full post" link from assistive technology via
  aria-hidden/tabindex (the title link is already descriptive). Extends
  the prefers-reduced-motion block to disable CSS transitions.
  Adds a --color-nav-active token to each theme with a darkened version
  of the accent color, giving ~5.7:1 contrast against the header text —
  above the 4.5:1 AA threshold. Uses the new token for the active nav
  background in place of --color-accent.
  Adds underlines to body links so color is not the sole indicator,
  resolving the WCAG color-only link requirement. Adds --color-aside-link
  tokens to both themes with darkened colors that pass 4.5:1 contrast
  on the aside background in light mode, and overrides them in the dark
  mode blocks to use the bright accent colors appropriate for dark
  backgrounds.
  Adds --frozen to uv sync in CI for reproducible builds. Expands
  STATIC_PATHS from "assets/img" to "assets" so any file placed under
  content/assets/ is served without further config changes. Deletes the
  stale about.md placeholder. Adds underlines to news item title links
  for consistency with body link treatment. Documents STATIC_PATHS
  behavior and the Typogrify HTML attribute gotcha in CLAUDE.md.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 31 out of 79 changed files in this pull request and generated 1 comment.

Comment thread themes/templates/news.html Outdated
Comment on lines +17 to +18
{% if article.summary %}<p class="news-item-summary">{{ article.summary }}</p>{% endif %}
<a class="news-item-more" href="{{ SITEURL }}/{{ article.url }}" aria-hidden="true" tabindex="-1">Read the full post →</a>
@devinsilvia

Copy link
Copy Markdown
Contributor Author

@copilot apply changes based on the comments in this thread

Copilot AI commented May 7, 2026

Copy link
Copy Markdown
Contributor

@copilot apply changes based on the comments in this thread

Applied in commit 9e34a71: updated themes/templates/news.html so article summaries render in a <div class="news-item-summary"> instead of an extra <p>, preventing nested paragraph markup when Pelican summary content is already HTML.

Screenshot: /tmp/cerl-ui-review3.png

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • accounts.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=5238 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.rqBRZL --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,1425022306338304521,8584886111755396689,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10209432955330659747,11325632056097727010,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review3.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)
  • clients2.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=5238 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.rqBRZL --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,1425022306338304521,8584886111755396689,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10209432955330659747,11325632056097727010,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review3.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)
  • msucerl.org
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=5238 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.rqBRZL --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,1425022306338304521,8584886111755396689,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10209432955330659747,11325632056097727010,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review3.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)
  • redirector.gvt1.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=5238 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.rqBRZL --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,1425022306338304521,8584886111755396689,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10209432955330659747,11325632056097727010,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review3.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)
  • www.google.com
    • Triggering command: /proc/self/exe /proc/self/exe --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US --service-sandbox-type=network --no-sandbox --use-angle=swiftshader-webgl --crashpad-handler-pid=5238 --enable-crash-reporter=, --noerrdialogs --user-data-dir=/tmp/org.chromium.Chromium.scoped_dir.rqBRZL --change-stack-guard-on-fork=enable --shared-files=network_parent_dirs_pipe:100,v8_context_snapshot_data:101 --field-trial-handle=3,i,1425022306338304521,8584886111755396689,262144 --disable-features=PaintHolding --variations-seed-version --pseudonymization-salt-handle=7,i,10209432955330659747,11325632056097727010,4 --trace-process-track-uuid=3190708989122997041 (dns block)
    • Triggering command: /usr/bin/chromium chromium --headless --no-sandbox --disable-gpu --screenshot=/tmp/cerl-ui-review3.png --window-size=1366,900 file:///home/REDACTED/work/msu-cerl.github.io/msu-cerl.github.io/output/news/index.html (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

  index.html was the only template without a page title heading, leaving
  the homepage as the only page on the site without an h1.
@devinsilvia

Copy link
Copy Markdown
Contributor Author

OK, this probably isn't perfect, but best I can tell, this migration to Pelican is sufficiently complete to warrant making the switch. I'm going to go ahead and merge this in!

@devinsilvia
devinsilvia merged commit 0678d1f into main May 7, 2026
2 checks passed
@devinsilvia
devinsilvia deleted the pelican-migration branch May 7, 2026 19:22
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.

3 participants