Skip to content

Jekyll to Hugo migration - #979

Open
MuhammadAashirAslam wants to merge 29 commits into
masterfrom
hugo
Open

Jekyll to Hugo migration#979
MuhammadAashirAslam wants to merge 29 commits into
masterfrom
hugo

Conversation

@MuhammadAashirAslam

@MuhammadAashirAslam MuhammadAashirAslam commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

This PR completes the migration of the preCICE website from Jekyll to Hugo.

Summary of Changes

1. Directory Structure & Asset Migration

  • Static Assets Relocation: Moved public static assets from legacy root folders (images/, css/, js/) into Hugo's standard static/ directory (static/images/, static/css/, static/js/, static/assets/data/).
  • Content Hierarchy: Reorganized Markdown files from into Hugo's section-aware content/ tree (content/docs/, content/community/, content/tutorials/, content/about.md).

2. Architecture & Dependency Management

  • Hugo Modules: Replaced Git submodules and custom Ruby import scripts with native Hugo Modules (config/_default/module.toml, go.mod, go.sum). Imported adapter and tutorial repositories are now fetched and pinned as Hugo modules.
  • Configuration: Structured site settings into modular TOML files (config/_default/hugo.toml, module.toml, params.toml).

3. Layouts, Partials & Shortcodes

  • Reimplemented all Jekyll Liquid templates and includes in Go HTML templates (layouts/ and layouts/partials/).
  • Ported custom Jekyll tags to native Hugo shortcodes ({{< warning >}}, {{< note >}}, {{< tip >}}, {{< pagebreak >}}, etc.).
  • Preserved all existing permalinks and historical URLs using Hugo aliases to ensure zero broken bookmarks or external links.

4. Search Integration (Algolia)

  • Migrated the search pipeline to a dedicated Node.js indexing tool (tools/algolia-index.mjs).
  • Hugo generates public/algolia.json during the production build, which the CLI validates (schema check, record size limits) and uploads using atomic index replacement.

5. Offline PDF Generation

  • Ported the Prince XML documentation build to Hugo (tools/pdf-docs.sh).
  • Configured dedicated PDF layout templates (config/pdf/, layouts/partials/pdf/) to build the consolidated offline PDF directly from the Hugo content tree.

6. GitHub Actions & Automation Workflows

  • build.yml: Streamlined CI to test both standard website generation and Algolia dry-run indexing.
  • update-submodules.yml: Modernized to update Hugo module revisions (tools/sync_hugo_modules.py), supporting both daily schedules and repository_dispatch triggers from external repositories.
  • update-discourse-data.yml: Scheduled sync for Discourse forum topics, announcements, and FAQs.
  • update-algolia.yml: Automated search index publishing on releases/pushes.

7. Documentation & Contributor Setup

  • Updated README.md with streamlined local development instructions (hugo server) and contributing checks (pre-commit).
  • Updated developer documentation (content/docs/docs-meta/) covering site architecture, adding imported repositories, search indexing, and PDF generation.

Testing & Verification

  • Local development server runs cleanly (hugo server).
  • Production build passes without errors or warnings (hugo --gc --minify --cleanDestinationDir --environment production).
  • Algolia search index dry-run validation passes (npm --prefix tools run algolia:index -- --dry-run).
  • PDF generation produces clean output (./tools/pdf-docs.sh).
  • Static assets, images, and fonts resolve correctly across all pages.
  • URL aliases, navigation sidebars, and internal links verified.

MuhammadAashirAslam and others added 24 commits August 9, 2026 18:37
Co-authored-by: Gerasimos Chourdakis <gerasimos.chourdakis@ipvs.uni-stuttgart.de>
…#973)

Co-authored-by: Gerasimos Chourdakis <gerasimos.chourdakis@ipvs.uni-stuttgart.de>
@MakisH
MakisH self-requested a review August 29, 2026 09:51
@MakisH MakisH self-assigned this Aug 29, 2026
@MakisH MakisH added the technical Technical issues on the website label Aug 29, 2026
@MakisH

MakisH commented Aug 29, 2026

Copy link
Copy Markdown
Member

Thank you for the PR and again for all the work in the previous PRs! Building everything together already looks very complete and almost indistinguishable from the previous state.

Some issues on the current state:

  1. In some pages (section overviews of imported modules with multiple pages), links to the rest of the sections appear at the bottom of the overview (section) page. Any idea why? We should remove these. Appears in (links to localhost):
  2. The system tests page needs to be updated to point to tutorials/tests/README.md (previously tutorials/tools/tests/README.md).
  3. In the About page, there is a statement about the development of the website. I can add more details there to keep the whole history in context. I would link to your GSoC report. Is that ok? I will do that after your changes.
  4. In the search, publications still show up as individual pages (example). Could we add some text around it explaining that this is a publication entry and point to the literature guide for more?
    1. In the linked example, the rendering of the card shows some entries outside the card frame.

Could you please also resolve the merge conflicts? They should mostly be trivial.

@MakisH

MakisH commented Aug 29, 2026

Copy link
Copy Markdown
Member

Also closes #342, #471, #538, #539, #590, #932.

Related to #411, #472.

It also addresses many of the points discussed in #897 (still with Prince).

# Conflicts:
#	_config.yml
#	_includes/news_banner.html
#	imported/fenicsx-adapter
#	imported/micro-manager
#	imported/openfoam-adapter
#	imported/preeco-orga
#	imported/tutorials
#	static/assets/data/news.json
@MuhammadAashirAslam

Copy link
Copy Markdown
Collaborator Author
  1. Done (9d35e46)
  2. Done (fa1bcb1)
  3. Yeah sure 😊
  4. Done (ccbdd50), added some information and link to the literature guide

Also solved the merge conflicts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

technical Technical issues on the website

Projects

Development

Successfully merging this pull request may close these issues.

3 participants