From 530ac161f617d1e7db964514791113ac96bff43e Mon Sep 17 00:00:00 2001 From: Jon Anderson Date: Sat, 24 Jan 2026 13:41:16 -0800 Subject: [PATCH 1/5] Added link icons to the top right. --- docs/css/style.css | 39 ++++++++++++++++++++++++++++ docs/img/fdb.png | Bin 0 -> 25443 bytes docs/img/jander.svg | 60 ++++++++++++++++++++++++++++++++++++++++++++ docs/index.tmpl | 17 ++++++++++++- 4 files changed, 115 insertions(+), 1 deletion(-) create mode 100644 docs/img/fdb.png create mode 100644 docs/img/jander.svg diff --git a/docs/css/style.css b/docs/css/style.css index ebe5e935..0297fd73 100644 --- a/docs/css/style.css +++ b/docs/css/style.css @@ -51,9 +51,48 @@ p { /* Headers */ +.header-container { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; +} + +.header-icons { + display: flex; + gap: 1rem; + align-items: center; +} + +.header-icons a { + display: flex; + align-items: center; + transition: opacity 0.2s; +} + +.header-icons a:hover { + opacity: 0.7; +} + +.icon { + width: 1.5rem; + height: 1.5rem; + fill: var(--color5); +} + +.icon.fdb { + fill: none; + width: auto; +} + +.icon.janderland { + fill: none; +} + h1 { font-size: 2.5rem; line-height: 1.25; + margin: 0; } h2 { diff --git a/docs/img/fdb.png b/docs/img/fdb.png new file mode 100644 index 0000000000000000000000000000000000000000..fd8550b081dd6824608be796de421dcc883c6db4 GIT binary patch literal 25443 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 IM6N<$g7KC?jsO4v literal 0 HcmV?d00001 diff --git a/docs/img/jander.svg b/docs/img/jander.svg new file mode 100644 index 00000000..0d13c5d7 --- /dev/null +++ b/docs/img/jander.svg @@ -0,0 +1,60 @@ + + + + + + j + ? + diff --git a/docs/index.tmpl b/docs/index.tmpl index f7d3ad9e..db19dc6d 100644 --- a/docs/index.tmpl +++ b/docs/index.tmpl @@ -16,7 +16,22 @@ -

$title$

+
+

$title$

+ +
$for(include-before)$ $include-before$ $endfor$ From 5327db3f5f986c1c09f7d1d232c553a78de610fa Mon Sep 17 00:00:00 2001 From: Jon Anderson Date: Sat, 24 Jan 2026 14:06:45 -0800 Subject: [PATCH 2/5] FDB icon svg. GH icon file. --- docs/img/fdb.svg | 127 ++++++++++++++++++++++++++++++++++++++++++++ docs/img/github.svg | 3 ++ docs/index.tmpl | 6 +-- 3 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 docs/img/fdb.svg create mode 100644 docs/img/github.svg diff --git a/docs/img/fdb.svg b/docs/img/fdb.svg new file mode 100644 index 00000000..32ab9b8c --- /dev/null +++ b/docs/img/fdb.svg @@ -0,0 +1,127 @@ + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/img/github.svg b/docs/img/github.svg new file mode 100644 index 00000000..164af48f --- /dev/null +++ b/docs/img/github.svg @@ -0,0 +1,3 @@ + + + diff --git a/docs/index.tmpl b/docs/index.tmpl index db19dc6d..88651e2c 100644 --- a/docs/index.tmpl +++ b/docs/index.tmpl @@ -20,12 +20,10 @@

$title$

- - - + GitHub - FoundationDB + FoundationDB jander.land From b7f4dfd87223c39e10d4aad1c8a9ba36afa8114a Mon Sep 17 00:00:00 2001 From: Jon Anderson Date: Sat, 24 Jan 2026 14:07:10 -0800 Subject: [PATCH 3/5] Removed FDB PNG. --- docs/img/fdb.png | Bin 25443 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/img/fdb.png diff --git a/docs/img/fdb.png b/docs/img/fdb.png deleted file mode 100644 index fd8550b081dd6824608be796de421dcc883c6db4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25443 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 IM6N<$g7KC?jsO4v From 49f02362062152b8a47db5c8f55879d86ace0b52 Mon Sep 17 00:00:00 2001 From: Jon Anderson Date: Sat, 24 Jan 2026 14:14:15 -0800 Subject: [PATCH 4/5] Split docs generation from deployment in GitHub Pages workflow. The build job now runs on all branches to verify docs generation, while the deploy job only runs on main to avoid environment protection errors on feature branches. Co-Authored-By: Claude Sonnet 4.5 --- .github/workflows/pages.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index db15d14d..3e08085d 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -14,11 +14,43 @@ concurrency: cancel-in-progress: false jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Compute Docker tag + id: docker + run: echo "tag=$(./scripts/docker_tag.sh)" >> $GITHUB_OUTPUT + + - name: Build image (from cache) + uses: docker/bake-action@v5 + env: + DOCKER_TAG: ${{ steps.docker.outputs.tag }} + with: + files: bake.hcl + targets: build + load: true + set: | + *.cache-from=type=gha,scope=build-6.2.30 + *.cache-from=type=gha,scope=build-7.1.61 + + - name: Generate docs + run: ./build.sh --docs + env: + DOCKER_TAG: ${{ steps.docker.outputs.tag }} + deploy: runs-on: ubuntu-latest + needs: build environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} + if: github.ref == 'refs/heads/main' steps: - name: Checkout uses: actions/checkout@v4 From 7ad77a5f1e732c5c49b3909c18d9d32a2bdb9d98 Mon Sep 17 00:00:00 2001 From: Jon Anderson Date: Sat, 24 Jan 2026 14:25:35 -0800 Subject: [PATCH 5/5] Fix GitHub icon color in external SVG file. Added explicit fill color to the SVG since external files loaded via tags cannot be styled by CSS. This restores the light beige color (rgb(211, 208, 200)) that was present when the icon was inline. Co-Authored-By: Claude Sonnet 4.5 --- docs/img/github.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/img/github.svg b/docs/img/github.svg index 164af48f..cf19f4bf 100644 --- a/docs/img/github.svg +++ b/docs/img/github.svg @@ -1,3 +1,3 @@ - +