diff --git a/.env.example b/.env.example
index e7de0f6..dce209a 100644
--- a/.env.example
+++ b/.env.example
@@ -1,5 +1,4 @@
STAGING_SECRET=
-DONATION_DATA_FILE=./data/donation-progress.json
CONTENTFUL_SPACE_ID=
CONTENTFUL_ENVIRONMENT_ID=
CONTENTFUL_ACCESS_TOKEN=
diff --git a/.gitignore b/.gitignore
index b47c4fa..9660853 100644
--- a/.gitignore
+++ b/.gitignore
@@ -44,3 +44,7 @@ yarn-error.log*
*.tsbuildinfo
tmp
+
+crowdin-faq-answers.csv
+crowdin-new-strings.csv*
+crowdin-new-strings.state.json
diff --git a/biome.json b/biome.json
index a3680fb..0ff44e2 100644
--- a/biome.json
+++ b/biome.json
@@ -7,7 +7,14 @@
},
"files": {
"ignoreUnknown": true,
- "includes": ["**", "!**/lib/app_localization/**", "!**/locales/**", "!contentful/export.json"]
+ "includes": [
+ "./**/*.ts",
+ "./**/*.tsx",
+ "!**/lib/app_localization/**",
+ "!**/locales/**",
+ "!contentful/export.json",
+ "!**/.next/**"
+ ]
},
"formatter": {
"enabled": true,
diff --git a/components/RichBody.tsx b/components/RichBody.tsx
index 2c2815e..7e73efe 100644
--- a/components/RichBody.tsx
+++ b/components/RichBody.tsx
@@ -1,3 +1,4 @@
+/** biome-ignore-all lint/suspicious/noExplicitAny: ignored for now */
import { documentToPlainTextString } from '@contentful/rich-text-plain-text-renderer';
import { documentToReactComponents, type Options } from '@contentful/rich-text-react-renderer';
import { BLOCKS, type Document, INLINES, type Inline, MARKS } from '@contentful/rich-text-types';
@@ -8,7 +9,7 @@ import Link from 'next/link';
import { Children, cloneElement, type ReactElement } from 'react';
import SHORTCODES from '@/constants/shortcodes';
import { renderEmbeddedEntry } from '@/services/render';
-import { hasLocalID, isLocal, parseUrl } from '@/utils/links';
+import { hasLocalID, isLocal, parseUrl, slugifyHeading } from '@/utils/links';
import { renderShortcode } from '@/utils/shortcodes';
interface Props {
@@ -138,7 +139,7 @@ export default function RichBody(props: Props): ReactElement {
[BLOCKS.HEADING_1]: (node, children: any) => (
{children}
@@ -147,7 +148,7 @@ export default function RichBody(props: Props): ReactElement {
[BLOCKS.HEADING_2]: (node, children: any) => (
{children}
@@ -156,7 +157,7 @@ export default function RichBody(props: Props): ReactElement {
[BLOCKS.HEADING_3]: (node, children: any) => (
{children}
@@ -165,7 +166,7 @@ export default function RichBody(props: Props): ReactElement {
[BLOCKS.HEADING_4]: (node, children: any) => (
{children}
diff --git a/components/copied/ArbitrumIcon.tsx b/components/copied/ArbitrumIcon.tsx
index 90f55f4..9502d3c 100644
--- a/components/copied/ArbitrumIcon.tsx
+++ b/components/copied/ArbitrumIcon.tsx
@@ -2,7 +2,14 @@ import { forwardRef } from 'react';
import type { SVGAttributes } from './types';
export const ArbitrumIcon = forwardRef((props, ref) => (
-