Skip to content

docs: add ethlambda logo, banner and favicon - #616

Merged
pablodeymo merged 5 commits into
mainfrom
add-ethlambda-logo
Sep 17, 2026
Merged

pablodeymo merged 5 commits into
mainfrom
add-ethlambda-logo

Conversation

@MegaRedHand

Copy link
Copy Markdown
Collaborator

🗒️ Description / Motivation

  • Puts the ethlambda artwork in front of readers: a banner at the top of the README and of the docs introduction page, and a favicon for the mdBook site.
  • The repo carried no branding, and docs.ethlambda.xyz served mdBook's default page icon.

What Changed

  • assets/ — the source artwork. ethlambda_banner.png and ethlambda_logo.png are the originals, untouched. ethlambda_logo_transparent.png and ethlambda_logo_notext.png are derived: the black backdrop is removed by flood fill from the image border, and each one carries a 6 px opaque #000000 halo so the art brings its own backdrop onto a light page.
  • README.md — banner block at the top, 300 px wide.
  • docs/introduction.md — the same banner block. docs/assets/ethlambda_banner.png is a symlink to the repo asset rather than a copy: mdBook only copies files under src, but it does follow symlinks, so this avoids duplicating 680 KB.
  • theme/favicon.svg — the site icon: a 128 px render of the creature on a transparent background, wrapped in an SVG. It is the only icon mdBook links.
  • .github/workflows/pr-main_mdbook.ymltheme/** added to both path filters, so a favicon-only change still triggers a Pages deploy.

Correctness / Behavior Guarantees

  • No code changes; node behaviour is untouched.
  • Every crop of the source artwork is a lossless 1:1 pixel operation, asserted against the source slice. The favicon is the only resampled output, and it resamples from the full-resolution canvas rather than from a smaller intermediate.
  • Two things a symlink does that a copy does not: a Windows checkout without symlink support gets a text file holding the path, which would break the docs build there (CI runs ubuntu-latest), and GitHub's own markdown view of docs/introduction.md serves the symlink blob rather than the image, so the banner renders in the book but not in that preview.
  • Dropping theme/favicon.png means a browser without SVG icon support falls back to its generic page icon.

Tests Added / Run

  • make docs — clean, including mdbook-linkcheck2 under warning-policy = "error".
  • Verified from a clean book/ that the built site serves the banner byte-identical to assets/ethlambda_banner.png, and that introduction.html emits a single rel="icon" link resolving to the emitted favicon.

Related Issues / PRs

  • None.

✅ Verification Checklist

No Rust was touched by this PR, so the workspace checks below were not run; make docs was run instead.

  • Ran make fmt — clean
  • Ran make lint (clippy with -D warnings) — clean
  • Ran make test (cargo test --workspace --profile release-fast) — all passing

@github-actions

Copy link
Copy Markdown

🤖 Codex Code Review

  1. .github/workflows/pr-main_mdbook.yml:9-19 now triggers on docs/**, theme/**, and book.toml, but the new docs image is sourced from the repo-level assets/ tree via docs/introduction.md:1-3 and the docs/assets/ethlambda_banner.png symlink. A future change to assets/ethlambda_banner.png will not run the docs workflow, so GitHub Pages can silently serve stale content. Add assets/** to both path filters, or move the banner into docs/assets/ as a real file.

  2. docs/introduction.md:2 depends on a symlinked PNG under docs/assets/. That is fragile for contributor environments that do not preserve symlinks cleanly, especially Windows checkouts and archive-based source downloads, where it can degrade into a plain text file path instead of an image. If local docs builds are expected to be portable, prefer committing the image directly under docs/assets/.

No consensus, fork-choice, attestation, STF, signature, or SSZ logic is touched here, so I did not find protocol-level correctness or security issues beyond the docs/CI concerns above.

I could not run make docs locally because mdbook is not installed in this environment.


Automated review by OpenAI Codex · gpt-5.4 · custom prompt

@github-actions

Copy link
Copy Markdown

🤖 Kimi Code Review

I'll review this PR focusing on the areas you specified. Looking at the diff, this PR primarily contains branding/documentation changes (logos, banners, workflow updates) rather than consensus-layer code changes. Let me analyze what's present.

Files Changed Analysis

1. .github/workflows/pr-main_mdbook.yml (lines 11, 16)

+      - "theme/**"

Issue: The theme/** path trigger is added, but the workflow file doesn't actually use any theme directory in its build steps. The mdBook workflow likely needs to reference this theme directory explicitly, or this trigger will fire without the build process incorporating theme changes.

Suggestion: Verify the workflow's build step includes --theme theme/ or equivalent if custom theming is intended, or remove this trigger if unused.


2. README.md (lines 1-4) and docs/introduction.md (lines 1-4)

<p align="center">
  <img src="assets/ethlambda_banner.png" alt="ethlambda banner" width="300">
</p>

Issues:

  • Path inconsistency: README.md uses assets/ethlambda_banner.png (relative to repo root), while docs/introduction.md uses ./assets/ethlambda_banner.png. The docs path resolves to docs/assets/ which is a symlink.

  • Symlink fragility: docs/assets/ethlambda_banner.png is a symlink (120000 mode) pointing to ../../assets/ethlambda_banner.png. This breaks on Windows and some CI environments.

Suggestion: Use consistent absolute paths or verify symlink handling in your documentation build pipeline. Consider copying assets instead of symlinking for portability.


3. docs/assets/ethlambda_banner.png (symlink)

new file mode 120000
@@ -0,0 +1 @@
+../../assets/ethlambda_banner.png
\ No newline at end of file

Issue: Missing newline at end of symlink file. While symlinks don't strictly need this, it's inconsistent with POSIX conventions and may cause issues with some tools.


4. Binary assets (PNG files)

Issues:

  • No file size limits: Four PNG files added without size verification. Banner/logo files can bloat repository history permanently.

  • No optimization: Consider running oxipng or similar to reduce file sizes before commit.

  • Missing attribution/licensing: If these are commissioned designs, ensure IP rights are documented.


5. theme/favicon.svg (lines 1+)

Critical Issue - Embedded base64 PNG in SVG:

<svg ...><image width="128" height="128" image-rendering="pixelated" href="data:image/png;base64,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


---
*Automated review by Kimi (Moonshot AI) · kimi-k2.6 · custom prompt*

@github-actions

Copy link
Copy Markdown

🤖 Claude Code Review

Review: PR 616 — add ethlambda logo, banner and favicon

This is a docs/assets-only PR with no Rust code changes, so the consensus-layer review criteria (fork choice, attestations, STF, XMSS, SSZ) don't apply here. I verified the actual mechanics instead:

Verified correct:

  1. book.toml sets src = "docs", so docs/assets/ethlambda_banner.png (a symlink to ../../assets/ethlambda_banner.png) correctly resolves within mdBook's source tree, and docs/introduction.md references it via the matching relative path ./assets/ethlambda_banner.png.
  2. theme/favicon.svg sits at the repo root beside book.toml, which is mdBook's default theme directory — no explicit config wiring is needed for it to be picked up, consistent with the PR description.
  3. README.md's banner uses assets/ethlambda_banner.png directly (no symlink needed there, since GitHub renders it from the repo root).
  4. The .github/workflows/pr-main_mdbook.yml path-filter addition of theme/** is applied symmetrically to both the push and pull_request triggers, so a favicon-only change will correctly trigger the Pages deploy workflow on both events.
  5. All <img> tags include alt text.

Minor/non-blocking observations:

  • The symlink approach for docs/assets/ethlambda_banner.png is a reasonable tradeoff and is called out explicitly in the PR description (Windows checkout caveat, GitHub markdown preview caveat) — no action needed, just flagging that this is a deliberate, documented tradeoff rather than an oversight.
  • theme/favicon.svg embeds a 128×128 PNG as a base64 data URI inside an SVG wrapper (~46 KB file) rather than being a native vector SVG. This works fine for mdBook's favicon convention, but it means the "SVG" is really just a PNG container — worth being aware of if someone expects to edit it as vector art later. Not a defect.
  • No automated check ensures theme/favicon.svg and the assets/*.png files stay in sync if the logo is ever updated (they're derived by hand per the PR description). Low risk given this is branding, not functional code.

Nothing here affects node behavior, and the described verification steps (make docs, byte-identical banner check, single rel="icon" link) are appropriate for a docs-only change. No changes requested.


Automated review by Claude (Anthropic) · sonnet · custom prompt

@pablodeymo
pablodeymo added this pull request to the merge queue Sep 17, 2026
Merged via the queue into main with commit 313b22d Sep 17, 2026
11 checks passed
@pablodeymo
pablodeymo deleted the add-ethlambda-logo branch September 17, 2026 21:48
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.

2 participants