Skip to content

Convert site to use Roq instead of Jekyll - #2683

Open
holly-cummins wants to merge 1 commit into
quarkusio:mainfrom
holly-cummins:roq-conversion
Open

Convert site to use Roq instead of Jekyll#2683
holly-cummins wants to merge 1 commit into
quarkusio:mainfrom
holly-cummins:roq-conversion

Conversation

@holly-cummins

@holly-cummins holly-cummins commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

NOTE: This PR should be regenerated from source, using the haq-it procedure described below, just before merging. Nothing should be merged between when the regeneration starts and when this goes in.

What this PR does

This PR converts the Quarkus website (quarkusio.github.io) from Jekyll to Roq. It swaps the Ruby and Jekyll toolchain for a Roq project built on Quarkus. To my knowledge the only content change is that css and javascript are now bundled, giving a modest performance benefit on clients.

How it was generated

The conversion is produced by scripted converters I am building in the quarkus-roq repo (the migration/roq-it-jekyll script), plus an un-merged quarkusio-specific layer on top (haq-it). It is reproducible from a clean checkout at any time:

./migration/haq-it /path/to/quarkusio.github.io

(See below for a more detailed walk-through of running the scripts.)

How to review it

The diff is far too large to read line by line. Review effort is better spent on:

  • the conversion scripts in quarkus-roq,
  • the automated tests (more coverage is on the way),
  • and, optionally, an AI-assisted review of the generated output, but even that is so large LLMs may struggle to be thorough

What changes, by audience

  • For developers: the build system moves from Jekyll and Ruby to Roq, Quarkus, and Java. You build and serve the site with Maven and Quarkus dev mode (mvn quarkus:dev) instead of jekyll serve, so the local prerequisites and commands change.
  • For authors: your content stays in the same authoring formats (AsciiDoc and Markdown). Files move into Roq's layout (for example, _posts/ becomes content/posts/), but the way you write a post is otherwise unchanged. The one exception is Liquid: any {{ ... }} or {% ... %} tags embedded in content must be rewritten for Roq's Qute templating, because the conversion does not translate them. Open PRs that were written against the old Jekyll layout can be carried over with the conversion script, so in-progress work is not lost. Guides content in the quarkus repo does not change.

After this merges,

How to Run the Jekyll → Roq Migration (that is, how to rescue an orphaned PR)

Prerequisites

  • Git, Java 21+, Maven 3.9+
  • Roq CLI: jbang app install roq@quarkusio (optional)

Start in your current quarkusio project. The instructions assume you have a remote called upstream for upstream. You might wish to make a backup of the current branch. :)

(

  #0. Rebase to pick up the latest upstream changes
  git stash 
  git fetch upstream main && git rebase upstream/main
  git stash pop 

  # 1. Clone Holly's fork and checkout migration branch
  git clone https://github.com/holly-cummins/quarkus-roq.git
  cd quarkus-roq
  git checkout wip/full-migration
  
  # 2. Build migration tools
  cd migration
  mvn clean install -DskipTests
)

# 3. Run migration
./quarkus-roq/migration/haq-it .

# 4. Start dev server
# Or if roq is available roq start
# Or just run ./serve.sh as usual
./mvnw quarkus:dev

# 5. Test in browser
# Open http://localhost:8080 and verify pages load correctly

Important Notes

Git Safety:

  • Migration script modifies files in place
  • Beware --reset! This throws away all your work! I use --reset flag to start fresh from upstream when I am round-tripping: ./haq-it --reset <path>. Once you've done migration, you'll need to --reset to do another, but that would lose your changes. Remember the backup? :) After the main repo migrates, this option will change and it will no longer reset to a Jekyll version, of course.

Troubleshooting:

  • Build fails: Check mvn -version and java -version (need Maven 3.9+, Java 2
    1+)
  • Script not found: chmod +x ~/quarkus-roq/migration/haq-it
  • Wrong branch: Verify git branch --show-current shows wip/full-migration
  • Empty URLs: Rebuild migration tools (Step 2) then re-run migration (Step 4)
  • Missing Java 21:

What the Script Does

  1. Converts Jekyll layouts → Roq templates (Liquid → Qute syntax)
  2. Moves content to Roq structure (_posts/content/posts/)
  3. Applies SEO fixes (.append() and .prepend() methods)
  4. Sets up Roq project files (pom.xml, config)
  5. Takes ~5 minutes for quarkusio.github.io

Expected Results

  • Removed: _layouts/, _includes/, _posts/, _site/
  • Created: templates/, content/, web/, public/

@github-actions

github-actions Bot commented Jun 15, 2026

Copy link
Copy Markdown

🎊 PR Preview afc2340 has been successfully built and deployed to https://quarkus-website-pr-2683-preview.surge.sh

  • Images of blog posts older than 3 months are not available.
  • Newsletters older than 3 months are not available.

@holly-cummins
holly-cummins force-pushed the roq-conversion branch 20 times, most recently from ed27fae to a8c5bb2 Compare June 18, 2026 19:29
@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

@quarkus-bot

This comment has been minimized.

Automated migration using roq-it-jekyll and haq-it scripts:
- Converted Liquid templates to Qute
- Converted Jekyll config to Roq
- Converted frontmatter (permalinks → aliases, pagination → paginate)
- Converted AsciiDoc link: to xref: for cross-references
- Moved directories (_guides → content/guides, etc.)
- Updated asset paths and static file handling
@quarkus-bot

quarkus-bot Bot commented Aug 20, 2026

Copy link
Copy Markdown

Status for workflow Build

This is the status report for running Build on commit 41ef4e9.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

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

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant