diff --git a/.github/workflows/docker-build-push.yaml b/.github/workflows/docker-build-push.yaml index ee7efa7c1..b48381a6f 100644 --- a/.github/workflows/docker-build-push.yaml +++ b/.github/workflows/docker-build-push.yaml @@ -37,7 +37,7 @@ jobs: network=host - name: Install cosign if: github.event_name != 'pull_request' - uses: sigstore/cosign-installer@v3.8.2 + uses: sigstore/cosign-installer@v3.9.1 - name: Login to GitHub Container Registry uses: docker/login-action@v3 if: github.event_name != 'pull_request' diff --git a/docs/advanced/creating components.md b/docs/advanced/creating components.md index 369405b07..84e038012 100644 --- a/docs/advanced/creating components.md +++ b/docs/advanced/creating components.md @@ -226,9 +226,11 @@ Then, you can use it like any other component in `quartz.layout.ts` via `Compone As Quartz components are just functions that return React components, you can compositionally use them in other Quartz components. ```tsx title="quartz/components/AnotherComponent.tsx" -import YourComponent from "./YourComponent" +import YourComponentConstructor from "./YourComponent" export default (() => { + const YourComponent = YourComponentConstructor() + function AnotherComponent(props: QuartzComponentProps) { return (
diff --git a/quartz/plugins/emitters/componentResources.ts b/quartz/plugins/emitters/componentResources.ts index 5fdc5c27b..61e2ba858 100644 --- a/quartz/plugins/emitters/componentResources.ts +++ b/quartz/plugins/emitters/componentResources.ts @@ -135,15 +135,19 @@ function addGlobalPageResources(ctx: BuildCtx, componentResources: ComponentReso `) } else if (cfg.analytics?.provider === "goatcounter") { componentResources.afterDOMLoaded.push(` + const goatcounterScriptPre = document.createElement('script'); + goatcounterScriptPre.textContent = \` + window.goatcounter = { no_onload: true }; + \`; + document.head.appendChild(goatcounterScriptPre); + + const endpoint = "https://${cfg.analytics.websiteId}.${cfg.analytics.host ?? "goatcounter.com"}/count"; const goatcounterScript = document.createElement('script'); goatcounterScript.src = "${cfg.analytics.scriptSrc ?? "https://gc.zgo.at/count.js"}"; goatcounterScript.defer = true; - goatcounterScript.setAttribute( - 'data-goatcounter', - "https://${cfg.analytics.websiteId}.${cfg.analytics.host ?? "goatcounter.com"}/count" - ); + goatcounterScript.setAttribute('data-goatcounter', endpoint); goatcounterScript.onload = () => { - window.goatcounter = { no_onload: true }; + window.goatcounter.endpoint = endpoint; goatcounter.count({ path: location.pathname }); document.addEventListener('nav', () => { goatcounter.count({ path: location.pathname });