From 530ac161f617d1e7db964514791113ac96bff43e Mon Sep 17 00:00:00 2001 From: Jon Anderson Date: Sat, 24 Jan 2026 13:41:16 -0800 Subject: [PATCH 1/4] 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/4] 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/4] 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/4] 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