mirror of
https://github.com/labring/FastGPT.git
synced 2026-02-27 01:02:22 +08:00
feat(docs): add analytics tracking script support (#6473)
* feat(docs): add analytics tracking script support - Add tracking script injection in document layout - Support separate site IDs for CN and IO domains - Add build-time environment variables for tracking config - Requires GitHub secrets: DOC_TRACK_SRC, DOC_TRACK_CN, DOC_TRACK_IO * fix(docs): simplify tracking to single site ID per build --------- Co-authored-by: archer <archer@archerdeMac-mini.local>
This commit is contained in:
4
.github/workflows/docs-deploy.yml
vendored
4
.github/workflows/docs-deploy.yml
vendored
@@ -121,6 +121,8 @@ jobs:
|
||||
platforms: linux/amd64
|
||||
build-args: |
|
||||
FASTGPT_HOME_DOMAIN=${{ matrix.domain_config.domain }}
|
||||
DOC_TRACK_SRC=${{ secrets.DOC_TRACK_SRC }}
|
||||
DOC_TRACK_SITE_ID=${{ secrets.DOC_TRACK_CN }}
|
||||
|
||||
- name: Build and push Docker images (IO)
|
||||
if: matrix.domain_config.suffix == 'io'
|
||||
@@ -134,6 +136,8 @@ jobs:
|
||||
platforms: linux/amd64
|
||||
build-args: |
|
||||
FASTGPT_HOME_DOMAIN=${{ matrix.domain_config.domain }}
|
||||
DOC_TRACK_SRC=${{ secrets.DOC_TRACK_SRC }}
|
||||
DOC_TRACK_SITE_ID=${{ secrets.DOC_TRACK_IO }}
|
||||
|
||||
update-images:
|
||||
needs: [generate-timestamp, build-images]
|
||||
|
||||
@@ -20,8 +20,12 @@ RUN apk add --no-cache \
|
||||
WORKDIR /app
|
||||
|
||||
ARG FASTGPT_HOME_DOMAIN
|
||||
ARG DOC_TRACK_SRC
|
||||
ARG DOC_TRACK_SITE_ID
|
||||
|
||||
ENV FASTGPT_HOME_DOMAIN=$FASTGPT_HOME_DOMAIN
|
||||
ENV NEXT_PUBLIC_DOC_TRACK_SRC=$DOC_TRACK_SRC
|
||||
ENV NEXT_PUBLIC_DOC_TRACK_SITE_ID=$DOC_TRACK_SITE_ID
|
||||
|
||||
COPY . .
|
||||
RUN npm install
|
||||
|
||||
@@ -4,6 +4,7 @@ import { Inter } from 'next/font/google';
|
||||
import type { ReactNode } from 'react';
|
||||
import type { Translations } from 'fumadocs-ui/i18n';
|
||||
import CustomSearchDialog from '@/components/CustomSearchDialog';
|
||||
import Script from 'next/script';
|
||||
|
||||
const inter = Inter({
|
||||
subsets: ['latin']
|
||||
@@ -41,9 +42,21 @@ export default async function Layout({
|
||||
}) {
|
||||
const { lang } = await params;
|
||||
|
||||
// Get tracking config from env (site ID is injected per-build by CI)
|
||||
const trackSrc = process.env.NEXT_PUBLIC_DOC_TRACK_SRC;
|
||||
const siteId = process.env.NEXT_PUBLIC_DOC_TRACK_SITE_ID;
|
||||
|
||||
return (
|
||||
<html lang={lang} className={inter.className} suppressHydrationWarning>
|
||||
<body className="flex flex-col min-h-screen">
|
||||
{trackSrc && siteId && (
|
||||
<Script
|
||||
src={trackSrc}
|
||||
data-site-id={siteId}
|
||||
defer
|
||||
strategy="afterInteractive"
|
||||
/>
|
||||
)}
|
||||
<RootProvider
|
||||
i18n={{
|
||||
locale: lang,
|
||||
|
||||
Reference in New Issue
Block a user