diff --git a/markdown/partials/license.md b/markdown/partials/license.md index 3694c9c5..6c77ebd4 100644 --- a/markdown/partials/license.md +++ b/markdown/partials/license.md @@ -4,17 +4,7 @@ title: Licenses and Resources The Wiki is unofficial _Magic: the Gathering_ fan content permitted under the [Fan Content Policy][wizards:fcp]. Portions of the materials used such as mana -symbols and game mechanics are property of _Wizards of the Coast_. Card arts are -made available from the unaltered [Scryfall's API][scryfall:api] and are -copyright _Wizard of the Coast_ or their respective artists for older sets. For -cropped arts where the artist line of a card is not visible, the artists are -mentioned in the accessible text. - -Mana symbols are rendered using the _Mana_ icon font made available by [Andrew -Gioia][mana]. See their section about licensing for more details. - -Phyrexian scripture and the corresponding unofficial font assets were provided -from the work of [Stas][stas]. +symbols and game mechanics are property of _Wizards of the Coast_. All original code for the Wiki is available under the terms of the [MIT license][code:license]. For more information about the underlying code, refer to @@ -24,15 +14,38 @@ All original content such as articles and chapters is available under the terms of the [Attribution-NonCommercial-NoDerivatives 4.0 International][wiki:license] license. +###### Imagery + +Card arts are made available from the unaltered [Scryfall's API][scryfall:api] +and are copyright _Wizard of the Coast_ or their respective artists for older +sets. For cropped arts where the artist line of a card is not visible, the +artists are mentioned in the accessible text. + +###### Iconography and Assets + +Mana symbols are rendered using the _Mana_ icon font made available by [Andrew +Gioia][mana]. See their section about licensing for more details. + In addition, the Wiki displays icons from the [Material Design Icons][icons:mdi] library as well as from the [Simple Icons][icons:simple-icons] library for brand icons. Please check their respective licensing for more details, which can be adapted from one icon to another. +Phyrexian scripture and the corresponding unofficial font assets were provided +from the work of [Stas][stas]. + +###### Analytics + +We collect anonymous analytics in order to improve user experience. We do not +use cookies. See the respective privacy policies for [Vercel][legal:vercel] and +for [PostHog][legal:posthog]. + [code:license]: https://github.com/angrybacon/doomsday-wiki/blob/master/LICENSE.org [code:repository]: https://github.com/angrybacon/doomsday-wiki [icons:mdi]: https://pictogrammers.com/library/mdi/ [icons:simple-icons]: https://simpleicons.org +[legal:posthog]: https://posthog.com/privacy +[legal:vercel]: https://vercel.com/legal/privacy-policy [mana]: https://mana.andrewgioia.com/ [scryfall:api]: https://scryfall.com/docs/api [stas]: http://stas.tk/ diff --git a/package.json b/package.json index c4afa619..43c0c5ab 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "@mui/material": "6.1.1", "@mui/system": "6.1.1", "@mui/utils": "6.1.1", - "@vercel/analytics": "1.3.1", + "@vercel/speed-insights": "1.0.12", "async-sema": "3.1.1", "mana-font": "1.15.9", "mdast-util-find-and-replace": "3.0.1", @@ -53,7 +53,7 @@ "remark-directive": "3.0.0", "remark-gfm": "4.0.0", "remark-toc": "9.0.0", - "simple-icons": "13.11.0", + "simple-icons": "13.12.0", "unified": "11.0.4", "unist-util-select": "5.1.0", "unist-util-visit": "5.0.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5a8c3e5f..9138790c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -35,9 +35,9 @@ importers: '@mui/utils': specifier: 6.1.1 version: 6.1.1(@types/react@18.3.10)(react@18.3.1) - '@vercel/analytics': - specifier: 1.3.1 - version: 1.3.1(next@14.2.13(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + '@vercel/speed-insights': + specifier: 1.0.12 + version: 1.0.12(next@14.2.13(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) async-sema: specifier: 3.1.1 version: 3.1.1 @@ -84,8 +84,8 @@ importers: specifier: 9.0.0 version: 9.0.0 simple-icons: - specifier: 13.11.0 - version: 13.11.0 + specifier: 13.12.0 + version: 13.12.0 unified: specifier: 11.0.4 version: 11.0.4 @@ -1150,16 +1150,28 @@ packages: '@ungap/structured-clone@1.2.0': resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - '@vercel/analytics@1.3.1': - resolution: {integrity: sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==} + '@vercel/speed-insights@1.0.12': + resolution: {integrity: sha512-ZGQ+a7bcfWJD2VYEp2R1LHvRAMyyaFBYytZXsfnbOMkeOvzGNVxUL7aVUvisIrTZjXTSsxG45DKX7yiw6nq2Jw==} peerDependencies: + '@sveltejs/kit': ^1 || ^2 next: '>= 13' react: ^18 || ^19 + svelte: ^4 + vue: ^3 + vue-router: ^4 peerDependenciesMeta: + '@sveltejs/kit': + optional: true next: optional: true react: optional: true + svelte: + optional: true + vue: + optional: true + vue-router: + optional: true abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} @@ -3211,9 +3223,6 @@ packages: engines: {node: '>=10'} hasBin: true - server-only@0.0.1: - resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} - set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} @@ -3248,8 +3257,8 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-icons@13.11.0: - resolution: {integrity: sha512-7MevuibJInmGRsq3PdLN/vpa+ifv/4/SoZQHpJ08aaB8/Ab17ZfZbm+j/K5PMwxkemSVZWpm4cqRlMXHDCEMww==} + simple-icons@13.12.0: + resolution: {integrity: sha512-UY6Zpet45M8ON24y0x3LsvNkh7a+zxzX4u8KulYXEbJnQ8J1mdel9Tl+7aKmpvKck0TYsU7K58RhfRwd2/7G1Q==} engines: {node: '>=0.12.18'} simple-swizzle@0.2.2: @@ -4892,9 +4901,7 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vercel/analytics@1.3.1(next@14.2.13(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': - dependencies: - server-only: 0.0.1 + '@vercel/speed-insights@1.0.12(next@14.2.13(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)': optionalDependencies: next: 14.2.13(@babel/core@7.24.6)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -7577,8 +7584,6 @@ snapshots: semver@7.6.3: {} - server-only@0.0.1: {} - set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 @@ -7640,7 +7645,7 @@ snapshots: signal-exit@4.1.0: {} - simple-icons@13.11.0: {} + simple-icons@13.12.0: {} simple-swizzle@0.2.2: dependencies: diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx index 6395043b..5f7865ff 100644 --- a/src/components/Footer/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -1,7 +1,6 @@ import { Box, ThemeProvider as MuiThemeProvider, - Typography, type SxProps, } from '@mui/material'; import { type FunctionComponent, type ReactNode } from 'react'; @@ -19,22 +18,19 @@ export const Footer: FunctionComponent = ({ isClear, sx }) => { - - Copyright © 2017-2024 Doomsday Wiki contributors. Read the notice - about licenses and resources. - - - This page collects anonymous analytics through Vercel. See their - GDPR-compliant{' '} - - privacy policy - - . - +

+ © 2017-2024 Doomsday Wiki contributors. Read the notice about{' '} + licenses and resources. +

+

+ This page collects anonymous analytics in order to improve its contents. + By browsing the Wiki, you consent to the collection and use of that + data. +

); return isClear ? ( diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx index f6ea5ff8..52540db6 100644 --- a/src/pages/_app.tsx +++ b/src/pages/_app.tsx @@ -1,5 +1,5 @@ import { CssBaseline } from '@mui/material'; -import { Analytics } from '@vercel/analytics/react'; +import { SpeedInsights } from '@vercel/speed-insights/next'; import { type AppProps } from 'next/app'; import Head from 'next/head'; import postHog from 'posthog-js'; @@ -10,7 +10,7 @@ import { ThemeProvider } from '@/theme/ThemeContext'; if (typeof window !== 'undefined' && process.env.NEXT_PUBLIC_POSTHOG_KEY) { postHog.init(process.env.NEXT_PUBLIC_POSTHOG_KEY, { api_host: process.env.NEXT_PUBLIC_POSTHOG_HOST, - person_profiles: 'always', + persistence: 'localStorage', }); } @@ -29,8 +29,8 @@ export default function Application({ Component, pageProps }: AppProps) { + - {process.env.NODE_ENV === 'production' && } ); } diff --git a/src/pages/license.tsx b/src/pages/license.tsx index 3fc93296..2eef2bef 100644 --- a/src/pages/license.tsx +++ b/src/pages/license.tsx @@ -16,7 +16,7 @@ const Page: NextPage = ({ license, menu }) => ( - + License