spike: Zola-based website replacing Hakyll#724
Draft
agentydragon wants to merge 9 commits intodevelfrom
Draft
Conversation
| <link rel="alternate" type="application/rss+xml" title="RSS feed for agentydragon.com" href="/rss.xml" /> | ||
| <link rel="alternate" type="application/atom+xml" title="Atom feed for agentydragon.com" href="/atom.xml" /> | ||
| <link rel="me" href="https://mastodon.social/@agentydragon" /> | ||
| <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> |
Check failure
Code scanning / CodeQL
Untrusted domain used in script or other content High
Hakyll (rules_haskell + GHC bindist) can't build on NixOS and RBE doesn't help since repo rules run locally. Zola is a single static Rust binary that works everywhere. This spike ports the website layout/style and 3 most recent posts to validate the approach. Includes Bazel genrule (http_archive for Zola binary, tar output), MIGRATION.md documenting URL compatibility strategy (nginx rewrites) and markup faithfulness analysis.
Compares built Hakyll output against Zola output, accounting for URL structure differences (flat .html vs directory/index.html). Reports identical, different, and missing files with inline diffs for text.
e938a35 to
4f26943
Compare
Replace bash diff_sites.sh with Python diff_sites.py using html5lib for DOM-aware HTML normalization. Eliminates noise from entity encoding, self-closing tags, attribute order, doctype case, and indentation — diffs now show only real content differences (URL changes, removed comments, template structure).
Rewrite report generation to use Jinja2 instead of string concatenation. Report includes: summary stats, color-coded TOC, side-by-side diff tables with character-level inline highlighting (green/red spans), collapsible sections per file, sticky table headers.
Remove all HTML comment nodes from the parsed DOM before serialization. Eliminates noise from Hakyll-specific comments (old MathJax config, template notes) that are intentionally absent in the Zola output.
Skip llm-instruct/ and llm/ directories from Hakyll side (not part of Zola migration). Fix diff table line number columns rendering too wide by removing table-layout:fixed and constraining ln cells to 2em.
Hugo (uglyURLs), Cobalt (permalink templates), Pelican, 11ty evaluated. Hugo is the recommended alternative if flat .html URLs are a hard requirement — single Go binary, same Bazel genrule pattern as Zola.
Hugo spike alongside Zola spike. Uses original Hakyll content with minimal front matter additions (date, slug). Hugo's uglyURLs produces identical URL structure to Hakyll (/posts/slug.html), eliminating the need for nginx redirects. Same 3-post scope as Zola spike. SASS compiled via Hugo Pipes. Diff tool updated with --mode=hugo for identity path mapping.
| <link rel="alternate" type="application/rss+xml" title="RSS feed for agentydragon.com" href="/rss.xml" /> | ||
| <link rel="alternate" type="application/atom+xml" title="Atom feed for agentydragon.com" href="/atom.xml" /> | ||
| <link rel="me" href="https://mastodon.social/@agentydragon" /> | ||
| <script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script> |
Check failure
Code scanning / CodeQL
Untrusted domain used in script or other content High
Replace raw mode strings with Mode StrEnum and FileStatus StrEnum. Report title, headers, and stat labels now reflect the actual mode (e.g., "Hakyll vs Hugo", "Hugo-only") instead of hardcoded "Zola".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Hakyll (rules_haskell + GHC bindist) can't build on NixOS and RBE doesn't help since repo rules run locally. Zola is a single static Rust binary that works everywhere.
This spike ports the website layout/style and 3 most recent posts to validate the approach. Includes Bazel genrule (http_archive for Zola binary, tar output), MIGRATION.md documenting URL compatibility strategy (nginx rewrites) and markup faithfulness analysis.