diff --git a/docs-site/.vitepress/theme/index.ts b/docs-site/.vitepress/theme/index.ts index c6c5518..bfd6185 100644 --- a/docs-site/.vitepress/theme/index.ts +++ b/docs-site/.vitepress/theme/index.ts @@ -10,6 +10,7 @@ let mermaidLoader: Promise | null = null; let plausibleTrackerInitialized = false; const MERMAID_MODAL_ID = 'mermaid-diagram-modal'; const PLAUSIBLE_DOMAIN = 'subminer.moe'; +const PLAUSIBLE_ENABLED_HOSTNAMES = new Set(['docs.subminer.moe']); const PLAUSIBLE_ENDPOINT = 'https://worker.subminer.moe/api/capture'; async function initPlausibleTracker() { @@ -17,6 +18,10 @@ async function initPlausibleTracker() { return; } + if (!PLAUSIBLE_ENABLED_HOSTNAMES.has(window.location.hostname)) { + return; + } + const { init } = await import('@plausible-analytics/tracker'); init({ domain: PLAUSIBLE_DOMAIN, diff --git a/docs-site/plausible.test.ts b/docs-site/plausible.test.ts index 889b82e..59dba88 100644 --- a/docs-site/plausible.test.ts +++ b/docs-site/plausible.test.ts @@ -9,11 +9,14 @@ const docsThemeContents = readFileSync(docsThemePath, 'utf8'); test('docs site keeps docs hostname while sending plausible events to subminer.moe via worker.subminer.moe capture endpoint', () => { expect(docsConfigContents).toContain("hostname: 'https://docs.subminer.moe'"); expect(docsThemeContents).toContain("const PLAUSIBLE_DOMAIN = 'subminer.moe'"); + expect(docsThemeContents).toContain('const PLAUSIBLE_ENABLED_HOSTNAMES = new Set(['); + expect(docsThemeContents).toContain("'docs.subminer.moe'"); expect(docsThemeContents).toContain( "const PLAUSIBLE_ENDPOINT = 'https://worker.subminer.moe/api/capture'", ); expect(docsThemeContents).toContain('@plausible-analytics/tracker'); expect(docsThemeContents).toContain('const { init } = await import'); + expect(docsThemeContents).toContain('!PLAUSIBLE_ENABLED_HOSTNAMES.has(window.location.hostname)'); expect(docsThemeContents).toContain('domain: PLAUSIBLE_DOMAIN'); expect(docsThemeContents).toContain('endpoint: PLAUSIBLE_ENDPOINT'); expect(docsThemeContents).toContain('outboundLinks: true'); diff --git a/package.json b/package.json index 5b8a485..174b31b 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "test:immersion:sqlite:dist": "bun test dist/core/services/immersion-tracker-service.test.js dist/core/services/immersion-tracker/storage-session.test.js", "test:immersion:sqlite": "bun run tsc && bun run test:immersion:sqlite:dist", "test:src": "bun scripts/run-test-lane.mjs bun-src-full", - "test:coverage:src": "bun run scripts/run-coverage-lane.ts bun-src-full --coverage-dir coverage/test-src", + "test:coverage:src": "bun run build:yomitan && bun run scripts/run-coverage-lane.ts bun-src-full --coverage-dir coverage/test-src", "test:coverage:subtitle:src": "bun test --coverage --coverage-reporter=text --coverage-reporter=lcov --coverage-dir coverage/test-subtitle src/core/services/subsync.test.ts src/subsync/utils.test.ts", "test:launcher:unit:src": "bun scripts/run-test-lane.mjs bun-launcher-unit", "test:launcher:env:src": "bun run test:launcher:smoke:src && bun run test:plugin:src", diff --git a/src/ci-workflow.test.ts b/src/ci-workflow.test.ts index fbfd32c..fb43a24 100644 --- a/src/ci-workflow.test.ts +++ b/src/ci-workflow.test.ts @@ -26,7 +26,7 @@ test('ci workflow verifies generated config examples stay in sync', () => { test('package scripts expose a sharded maintained source coverage lane with lcov output', () => { assert.equal( packageJson.scripts['test:coverage:src'], - 'bun run scripts/run-coverage-lane.ts bun-src-full --coverage-dir coverage/test-src', + 'bun run build:yomitan && bun run scripts/run-coverage-lane.ts bun-src-full --coverage-dir coverage/test-src', ); });