diff --git a/.github/workflows/hugo.yml b/.github/workflows/hugo.yml index 1f2eb6e..1ef91f2 100644 --- a/.github/workflows/hugo.yml +++ b/.github/workflows/hugo.yml @@ -49,6 +49,12 @@ jobs: with: submodules: recursive + # Hugo resolves the landingkit module (hugo.toml [module]) with the go + # command, at the version go.mod pins. + - uses: actions/setup-go@v7 + with: + go-version-file: go.mod + cache: false - name: Setup Pages id: pages uses: actions/configure-pages@v6 diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..e9049c7 --- /dev/null +++ b/go.mod @@ -0,0 +1,5 @@ +module github.com/go-webengine/go-webengine.github.io + +go 1.27.3 + +require github.com/go-fleettools/landingkit v0.6.0 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..44b5185 --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/go-fleettools/landingkit v0.6.0 h1:lIlazNZ3xTWDSti/16Uo+aSUOFPhVniQaEnILbQmJuE= +github.com/go-fleettools/landingkit v0.6.0/go.mod h1:gBpbziqFcmcjtNknPjy5+AAzGZ5L+pPr9mIJZHpDlZc= diff --git a/hugo.toml b/hugo.toml index a01bf8b..94b3498 100644 --- a/hugo.toml +++ b/hugo.toml @@ -2,6 +2,11 @@ baseURL = "https://go-webengine.github.io/" title = "go-webengine" disableKinds = ["taxonomy", "term", "RSS", "sitemap", "404"] +# The design comes from the landing kit, a Hugo module pinned in go.mod. +[module] + [[module.imports]] + path = "github.com/go-fleettools/landingkit" + [markup.goldmark.renderer] unsafe = true @@ -50,3 +55,24 @@ disableKinds = ["taxonomy", "term", "RSS", "sitemap", "404"] title = "Remaining levers" state = "planned" text = "Closing fidelity residuals (list markers, icon fonts, conic-gradient/filter/mask, SVG filters) and the perf gap on large computed pages. Diminishing returns — mean SSIM ≈ 0.69, example.com at 0.954." + +[params.brand] +# Generated by go-fleettools/landingkit from static/img/logo.svg: the colours are +# READ from the logo's gradient, never chosen. Do not add other keys: +# neutrals (backgrounds, surfaces, greys) belong to the shared sheet. +# Contrast: base on white 4.88:1, bright on the dark background 9.94:1. + base = "#0079a8" + deep = "#004a66" + bright = "#22cce2" + shadow = "rgba(0,121,168,.7)" + glow = "rgba(0,121,168,.6)" + wash = "rgba(0,121,168,.10)" + washDeep = "rgba(0,74,102,.06)" + chipBg = "#e4f9fc" + chipBorder = "#bdf0f6" + chipFg = "#004a66" + chipBgDark = "rgba(34,204,226,.14)" + chipBorderDark = "rgba(34,204,226,.32)" + chipFgDark = "#85e3ef" + statsEnd = "#caf3f8" + bandText = "#dcf7fa" diff --git a/kit.go b/kit.go new file mode 100644 index 0000000..72ac4fb --- /dev/null +++ b/kit.go @@ -0,0 +1,9 @@ +//go:build tools + +// This file never builds. A Hugo site has no Go code, so `go mod tidy` -- +// which Renovate runs after every bump -- would find nothing that uses +// github.com/go-fleettools/landingkit and delete its requirement from go.mod. +// Importing it here keeps it. See the landingkit README. +package site + +import _ "github.com/go-fleettools/landingkit" diff --git a/layouts/index.html b/layouts/index.html index 55df9d6..0045e68 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -3,119 +3,68 @@ -{{/* Dark Reader repaints pages that already draw their own dark theme, as this one does: ask it to stand aside. */}} - {{ .Site.Title }} — pure-Go headless web engine + +{{ partial "styles.html" . }} +{{/* The template's own rules for what
holds, kept for it alone (class legacy), + its colours read from the kit's tokens. Written by landingmigrate. */}} - - - - -
- -

go-webengine

-

A pure-Go, headless web engine — give it a URL, + +

+ {{ partial "fork-ribbon.html" "https://github.com/go-webengine" }} + +
+
+

go-webengine

+

A pure-Go, headless web engine — give it a URL, get back an image of the page. HTML/CSS layout and paint with no Chromium and no cgo.

-
- CGO_ENABLED=0 - no Chromium · no host web view - JavaScript (goja) + real DOM - flex · grid · tables · position - gradients · box-shadow · SVG - amd64 · arm64 · riscv64 · loong64 · ppc64le · s390x - ratchet coverage gate - measured vs headless Chrome -
-
- {{ partial "icons/book.html" . }}Documentation - {{ partial "icons/mark-github.html" . }}GitHub + +
{{ if not (partial "mantra-on.html" $) }}CGO_ENABLED=0{{ end }}no Chromium · no host web viewJavaScript (goja) + real DOMflex · grid · tables · positiongradients · box-shadow · SVGamd64 · arm64 · riscv64 · loong64 · ppc64le · s390xratchet coverage gatemeasured vs headless Chrome
-
+ {{ partial "hero-carousel.html" . }} + + + {{ with .Site.Params.repos }}
+ One organisation, {{ len . }} repositories +
{{ range . }}{{ .name }}{{ end }}
+
{{ end }} -
+

Modern "render a web page" tooling almost always means shipping a whole browser — Chromium via CDP, a WebView, cgo bindings. go-webengine renders in pure Go. It fetches the page, builds an owned DOM over @@ -159,7 +108,7 @@

CI coverage gate - BSD-3-Clause + {{ if not (partial "mantra-on.html" $) }}BSD-3-Clause{{ end }}
{{ end }} @@ -180,22 +129,10 @@

Phase {{ .n }} · {{ .title }}{{ .sta 64-bit targets. The pure-logic packages (cascade, line-breaker, box metrics, DOM) are asserted at exact geometry behind a ratchet coverage gate; a committed golden PNG covers the offline paint path. Prior pure-Go browser work (opossum / mycel) was studied but not built - on — its layout core is stub-quality; see the survey. BSD-3-Clause throughout.

-

+ on — its layout core is stub-quality; see the survey. {{ if not (partial "mantra-on.html" $) }}BSD-3-Clause throughout.{{ end }}

+
- - + diff --git a/layouts/partials/hero-terminal.html b/layouts/partials/hero-terminal.html new file mode 100644 index 0000000..6e5331e --- /dev/null +++ b/layouts/partials/hero-terminal.html @@ -0,0 +1,7 @@ +
+
zsh
+
{{ with .Site.Params.repos }}{{ range first 6 . }}{{ with or .pkg (strings.TrimPrefix "https://" (.url | default "")) (printf "github.com/go-webengine/%s" .name) }}$ go get {{ . }}@latest
+{{ end }}{{ end }}{{ else }}$ go get github.com/go-webengine/engine@latest
+$ go get github.com/go-webengine/browserproxy@latest
+{{ end }}
+
\ No newline at end of file diff --git a/layouts/partials/icons/OCTICONS-LICENSE b/layouts/partials/icons/OCTICONS-LICENSE deleted file mode 100644 index aa1fa80..0000000 --- a/layouts/partials/icons/OCTICONS-LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2026 GitHub Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/layouts/partials/icons/book.html b/layouts/partials/icons/book.html deleted file mode 100644 index cf1e882..0000000 --- a/layouts/partials/icons/book.html +++ /dev/null @@ -1,5 +0,0 @@ -{{- /* Octicons "book" (16 px), primer/octicons @primer/octicons-react@19.40.0, copied verbatim, MIT, - (c) GitHub Inc.: the licence is OCTICONS-LICENSE beside this file. - currentColor follows the button in light and dark; aria-hidden, since - the button's text already says where it leads. */ -}} - \ No newline at end of file diff --git a/layouts/partials/icons/mark-github.html b/layouts/partials/icons/mark-github.html deleted file mode 100644 index 17fc355..0000000 --- a/layouts/partials/icons/mark-github.html +++ /dev/null @@ -1,5 +0,0 @@ -{{- /* Octicons "mark-github" (16 px), primer/octicons @primer/octicons-react@19.40.0, copied verbatim, MIT, - (c) GitHub Inc.: the licence is OCTICONS-LICENSE beside this file. - currentColor follows the button in light and dark; aria-hidden, since - the button's text already says where it leads. */ -}} - \ No newline at end of file