feat: legal-page links to kurrentschrift.ink & cite-citadel - #9616
Merged
Conversation
New 'other projects' block below the disclaimer in the legal-notice section, cross-linking the maintainer's other projects. Tracked as external_link with destinations kurrentschrift / cite_citadel; deliberately without noreferrer so the target sites' analytics can attribute the traffic. Also refreshes the stale footer/legal destination lists in docs/reference/plausible.md and bumps the legal page's 'last updated' stamp. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PALETTE, Swatch, Lang and snippet() move from PalettePage.tsx to a new
PalettePage.helpers.ts (same pattern as MapPage.helpers.ts), so the
page module only exports the component and Fast Refresh works cleanly.
The react-refresh/only-export-components rule is scoped off for test
modules (*.test.{ts,tsx}, test-utils.tsx) — they never participate in
Fast Refresh, so the rule has no meaning there.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds cross-project outbound links on the /legal page (with Plausible tracking), updates Plausible reference docs + changelog, and removes react-refresh/only-export-components ESLint warnings by extracting non-component exports from PalettePage.tsx and scoping the rule off for test modules.
Changes:
- Add an “other projects” section to the Legal page with
external_linktracking forkurrentschriftandcite_citadel. - Extract
PALETTE/types andsnippet()intoPalettePage.helpers.tsand update tests accordingly. - Update Plausible destinations documentation and add changelog entries for the feature + lint fix.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| docs/reference/plausible.md | Updates documented link destinations / analytics property notes. |
| CHANGELOG.md | Adds Unreleased entries for the legal-page block and ESLint warning fixes. |
| app/src/pages/PalettePage.tsx | Removes non-component exports by importing palette/snippet helpers from a new module. |
| app/src/pages/PalettePage.snippet.test.ts | Updates imports to test snippet() via the new helpers module. |
| app/src/pages/PalettePage.helpers.ts | New helper module containing palette data, types, and snippet() generator. |
| app/src/pages/LegalPage.tsx | Adds the “other projects” block with tracked external links and updates the “last updated” stamp. |
| app/src/pages/LegalPage.test.tsx | Adds coverage for the new links and their analytics tracking. |
| app/eslint.config.js | Disables react-refresh/only-export-components for test modules. |
Review feedback (Copilot): the destination property list carried stale values (plausible, stats, compare, mcp) and missed active ones. Now lists the values actually emitted in app/src, with a pointer to the authoritative grep. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The GitHub Pages URL only hosts example wikis; the repo README is the project's actual entry point. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
8-auditor workflow run (llm-pipeline, frontend, design, pagespeed, backend, seo, plausible, catalog) with domain-routed cross-validation of all high-severity findings. Health Score 43; critical finding: all crawler UAs receive 502 from the nginx @seo_proxy hop. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
| > | ||
| kurrentschrift.ink | ||
| </Link>{' '} | ||
| — read and write old german cursive |
| > | ||
| cite-citadel | ||
| </Link>{' '} | ||
| — llm-maintained, fully-cited personal wiki |
| — read and write old german cursive | ||
| <br /> | ||
| <Link | ||
| href="https://github.com/MarkusNeusinger/cite-citadel" |
Comment on lines
187
to
188
| | `external_link` | `destination`, `spec`?, `library`? | Footer.tsx, LegalPage.tsx | User clicks external link | | ||
| | `internal_link` | `destination`, `spec`?, `library`? | Footer.tsx | User clicks internal link in footer | |
Comment on lines
+187
to
+188
| | `external_link` | `destination`, `spec`?, `library`? | Footer.tsx, LegalPage.tsx, AboutPage.tsx, LibrariesPage.tsx, SectionHeader.tsx | User clicks external link | | ||
| | `internal_link` | `destination`, `spec`?, `library`? | Footer.tsx, AboutPage.tsx | User clicks internal link | |
| | `value` | Filter value | `random_filter`, `filter_remove`, `tag_click` | | ||
| | `query` | Search query text | `search`, `search_no_results` | | ||
| | `destination` | Link target (github, plausible, stats, compare, linkedin, mcp, legal) | `external_link`, `internal_link` | | ||
| | `destination` | Link-target slug — external: `github`, `github_issue_chooser`, `github_personal`, `github_bug`, `github_discussions`, `github_plot_request`, `github_releases`, `linkedin`, `x`, `kurrentschrift`, `cite_citadel`, `library_docs`; internal: `about`, `legal`, `legal_transparency`, `palette`. `SectionHeader` external links emit the target **hostname** instead (e.g. `plausible.io`). Grep `destination:` in `app/src` for the authoritative list. | `external_link`, `internal_link` | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
external_linkwith destinationskurrentschrift/cite_citadel. Deliberatelyrel="noopener"withoutnoreferrerso the target sites' analytics can attribute the traffic (own sites).docs/reference/plausible.mdand bumps the legal page's "last updated" stamp.PALETTE/Swatch/Lang/snippet()extracted fromPalettePage.tsxintoPalettePage.helpers.ts(same pattern asMapPage.helpers.ts), andreact-refresh/only-export-componentsscoped off for test modules (*.test.{ts,tsx},test-utils.tsx) — they never participate in Fast Refresh.yarn lintis now warning-free.agentic/audits/2026-07-08-product-ux.md+latest.md) — 8-auditor workflow run, Health Score 43, critical finding: all crawler UAs receive 502 from the nginx@seo_proxyhop.Plan
N/A (direct request)
Test plan
yarn lint— 0 errors, 0 warnings (previously 3 react-refresh warnings)yarn fm:check,yarn type-check,yarn test— 602 tests greenyarn build— Cloud Build parity, passes/legalat 1440×900 and 390×844, light and dark theme: block renders below the disclaimer, each project on one line at desktop width, correct wrap on mobile, no console/network errorsexternal_linkevents on anyplot.ai/legal