Skip to content

Commit 5efd887

Browse files
committed
Merge branch 'dev' into pr/14348
2 parents 6ce993f + 56bf296 commit 5efd887

File tree

3,934 files changed

+203645
-90067
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,934 files changed

+203645
-90067
lines changed

.all-contributorsrc

Lines changed: 391 additions & 6 deletions
Large diffs are not rendered by default.

.claude/commands/update-llms-txt.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Update LLMS.txt Command
2+
3+
This command helps maintain the `public/llms.txt` file by monitoring key navigation files:
4+
5+
1. **Main Navigation**: `src/components/Nav/useNavigation.ts`
6+
2. **Developer Docs**: `src/data/developer-docs-links.yaml`
7+
3. **Footer Links**: `src/components/Footer.tsx`
8+
9+
## How it works
10+
11+
- Adds missing links to appropriate sections
12+
- Preserves existing descriptions and organization
13+
- Follows established llms.txt structure
14+
- **Prefers static markdown files URLs over html URLs** for better LLM comprehension
15+
16+
## Implementation
17+
18+
When this command is executed, I will:
19+
20+
### Step 1: Parse Navigation Files
21+
22+
**Main Navigation** (`src/components/Nav/useNavigation.ts`):
23+
24+
```javascript
25+
// Extract linkSections object structure
26+
// Parse learn, use, build, participate sections
27+
// Get href, label, and description for each link
28+
```
29+
30+
**Developer Docs** (`src/data/developer-docs-links.yaml`):
31+
32+
```yaml
33+
# Parse foundational-topics, ethereum-stack, advanced, design-fundamentals
34+
# Extract href and id mappings
35+
# Build hierarchical structure
36+
```
37+
38+
**Footer Links** (`src/components/Footer.tsx`):
39+
40+
```javascript
41+
// Extract linkSections and dipperLinks arrays
42+
// Get all footer navigation items
43+
// Include external links (blog, ESP, Devcon)
44+
```
45+
46+
### Step 2: Analyze Current llms.txt
47+
48+
- Parse existing sections and their links
49+
- Extract current URLs and descriptions
50+
- Identify section organization and hierarchy
51+
52+
### Step 3: URL to Markdown File Mapping
53+
54+
**Priority: Static markdown files URLs over web html URLs**
55+
56+
For each link, I will:
57+
58+
1. Check if corresponding markdown file exists in `public/content/`. **Ignore translations**: Skip `public/content/translations/` directory (60+ language versions)
59+
2. Use a URL pointing to the markdown file for the page: `https://ethereum.org/content/[page]/index.md`
60+
3. Fall back to web URL only if no markdown file exists
61+
4. Example: `https://ethereum.org/learn/``https://ethereum.org/content/learn/index.md`
62+
5. Example2: `https://ethereum.org/guides/how-to-use-a-wallet/``https://ethereum.org/content/guides/how-to-use-a-wallet/index.md`
63+
64+
### Step 4: Smart Link Categorization
65+
66+
New links are categorized using these rules:
67+
68+
1. **Learn Section**: `/learn/`, `/what-is-*`, `/guides/`, `/quizzes/`, `/glossary/`
69+
2. **Use Section**: `/get-eth`, `/wallets/`, `/dapps/`, `/staking/`, use cases
70+
3. **Build Section**: `/developers/`, `/enterprise/`, developer tools
71+
4. **Participate Section**: `/community/`, `/contributing/`, `/foundation/`
72+
5. **Research Section**: `/whitepaper`, `/roadmap/`, `/eips/`, `/governance/`
73+
74+
### Step 5: Validation & Quality Checks
75+
76+
- Verify all markdown files exist in `public/content/`
77+
- Check for duplicate links within sections
78+
- Validate section organization and hierarchy
79+
- Ensure descriptions are informative and concise
80+
81+
### Step 6: Execute Action
82+
83+
Update llms.txt file with improved structure and validated links
84+
85+
---
86+
87+
The command ensures the llms.txt file remains comprehensive and current with minimal manual maintenance.

.env.example

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,17 @@
44
# be careful not to expose sensitive data (e.g. your Algolia admin key)
55

66
# Algolia environment (app ID, search key and base search index name required for search)
7+
# You can use the following test keys provided by DocSearch for local development/testing:
8+
# NEXT_PUBLIC_ALGOLIA_APP_ID=R2IYF7ETH7
9+
# NEXT_PUBLIC_ALGOLIA_SEARCH_KEY=599cec31baffa4868cae4e79f180729b
10+
# NEXT_PUBLIC_ALGOLIA_BASE_SEARCH_INDEX_NAME=docsearch
11+
# Replace insertValue with your actual keys for production builds.
712
# NEXT_PUBLIC_ALGOLIA_APP_ID=insertValue
813
# NEXT_PUBLIC_ALGOLIA_SEARCH_KEY=insertValue
914
# NEXT_PUBLIC_ALGOLIA_BASE_SEARCH_INDEX_NAME=insertValue
10-
# NEXT_PUBLIC_GITHUB_TOKEN_READ_ONLY=insertValue
15+
16+
# Github token for read-only use with api functions
17+
# GITHUB_TOKEN_READ_ONLY=insertValue
1118

1219
# Etherscan API key (required for Etherscan API fetches)
1320
# ETHERSCAN_API_KEY=insertValue
@@ -24,12 +31,12 @@ NEXT_PUBLIC_MATOMO_URL=
2431
NEXT_PUBLIC_MATOMO_SITE_ID=
2532

2633
# Used to avoid loading Matomo in our preview deploys
27-
IS_PREVIEW_DEPLOY=false
34+
NEXT_PUBLIC_IS_PREVIEW_DEPLOY=false
2835

2936
# Build pages only for the specified langs. Leave it empty to build all the langs
3037
# e.g. `en,fr` will only build English and French pages
3138
# Note: always include `en` as it is the default lang of the site
32-
BUILD_LOCALES=
39+
NEXT_PUBLIC_BUILD_LOCALES=
3340

3441
# If resource constraints are being hit during builds, change LIMIT_CPUS to a
3542
# fixed number of CPUs (e.g. 2) to limit the demand during build time
@@ -40,4 +47,7 @@ ANALYZE=false
4047

4148
# Use mock data for development. Set to "false" to use live data but you must have the
4249
# environment variables set to make api requests
43-
USE_MOCK_DATA=true
50+
USE_MOCK_DATA=true
51+
52+
# Google Sheet ID for torch holders
53+
GOOGLE_SHEET_ID_TORCH_HOLDERS=

.eslintrc.json

Lines changed: 44 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,19 @@
11
{
2-
"extends": [
3-
"eslint:recommended",
4-
"plugin:@typescript-eslint/recommended",
5-
"next/core-web-vitals",
6-
"prettier",
7-
"plugin:storybook/recommended"
8-
],
2+
"extends": ["eslint:recommended", "next/core-web-vitals", "prettier"],
93
"env": {
10-
"es6": true
4+
"es6": true,
5+
"node": true,
6+
"browser": true
117
},
128
"plugins": ["simple-import-sort", "@typescript-eslint", "unused-imports"],
139
"parser": "@typescript-eslint/parser",
10+
"parserOptions": {
11+
"ecmaVersion": "latest",
12+
"sourceType": "module",
13+
"ecmaFeatures": {
14+
"jsx": true
15+
}
16+
},
1417
"rules": {
1518
"simple-import-sort/imports": [
1619
"error",
@@ -21,10 +24,8 @@
2124
"^(assert|buffer|child_process|cluster|console|constants|crypto|dgram|dns|domain|events|fs|http|https|module|net|os|path|punycode|querystring|readline|repl|stream|string_decoder|sys|timers|tls|tty|url|util|vm|zlib|freelist|v8|process|async_hooks|http2|perf_hooks)(/.*|$)"
2225
],
2326
// Packages. `react` related packages come first.
24-
// Also, put `react-icons` in sorting order not with `react`
27+
// Also, put `react-*` in sorting order not with `react`
2528
["^react(?!-.)$", "^\\w", "^@\\w"],
26-
// The Chakra theme directory if imported to story file or other places
27-
["^@/@chakra-ui"],
2829
// From the `types` directory.
2930
["^@/lib/types", "^@/lib/interfaces"],
3031
// From the `components` directory.
@@ -35,8 +36,8 @@
3536
["^@/data"],
3637
// From the `constants` directory.
3738
["^@/lib/constants"],
38-
// From the `.storybook/utils` file
39-
["^@/storybook-utils"],
39+
// `.storybook` directory and utils files`
40+
["^@/storybook", "^@/storybook-utils"],
4041
// Parent imports. Put `..` last.
4142
["^\\.\\.(?!/?$)", "^\\.\\./?$"],
4243
// Other relative imports. Put same-folder imports and `.` last.
@@ -50,13 +51,6 @@
5051
],
5152
"simple-import-sort/exports": "error",
5253
"no-unused-vars": "off",
53-
"@typescript-eslint/no-unused-vars": "off",
54-
"@typescript-eslint/no-explicit-any": [
55-
"error",
56-
{
57-
"fixToUnknown": true
58-
}
59-
],
6054
"unused-imports/no-unused-vars": [
6155
"error",
6256
{
@@ -65,17 +59,38 @@
6559
"varsIgnorePattern": "^_$"
6660
}
6761
],
68-
"unused-imports/no-unused-imports-ts": "warn",
69-
"no-restricted-imports": [
70-
"warn",
71-
{
72-
"paths": [
62+
"unused-imports/no-unused-imports": "warn"
63+
},
64+
"overrides": [
65+
{
66+
"files": ["**/*.{ts,tsx}"],
67+
"extends": ["plugin:@typescript-eslint/recommended"],
68+
"rules": {
69+
"@typescript-eslint/no-explicit-any": [
70+
"error",
7371
{
74-
"name": "react-i18next",
75-
"message": "Please use next-i18next instead of react-i18next."
72+
"fixToUnknown": true
7673
}
7774
]
7875
}
79-
]
80-
}
76+
},
77+
{
78+
"files": ["**/*.stories.@(js|jsx|ts|tsx|mdx)"],
79+
"extends": ["plugin:storybook/recommended"]
80+
}
81+
],
82+
"ignorePatterns": [
83+
"node_modules/",
84+
".next/",
85+
"out/",
86+
"dist/",
87+
"build/",
88+
".vercel/",
89+
".netlify/",
90+
"coverage/",
91+
"storybook-static/",
92+
"**/*.d.ts",
93+
"src/intl/",
94+
"public/code-examples/"
95+
]
8196
}

.github/CODEOWNERS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@
88
* @wackerow @corwintines @pettinarip @minimalsm
99

1010
# Owners of specific files
11-
/src/data/consensus-bounty-hunters.json @djrtwo @asanso @fredriksvantes
11+
/src/data/consensus-bounty-hunters.json @asanso @fredriksvantes
12+
/src/data/wallets/new-to-crypto.ts @konopkja @minimalsm

.github/ISSUE_TEMPLATE/suggest_quiz.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: Suggest quiz
2-
description: Add, update, delete questions for a quiz on ethereum.osg
2+
description: Add, update, delete questions for a quiz on ethereum.org
33
title: Add/Update/Delete quiz question
44
labels: ["feature ✨", "quiz 📚"]
55
body:
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Suggest a resource
2+
description: Suggest a new resource to list on ethereum.org/resources
3+
title: Suggest a resource
4+
labels: ["resource 📚"]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Before suggesting a resource, make sure you've read [our listing policy](https://www.ethereum.org/en/contributing/adding-resources/).
10+
- type: markdown
11+
attributes:
12+
value: Only continue with the issue if your resource meets the criteria listed there.
13+
- type: markdown
14+
attributes:
15+
value: If it does, complete the following information which we need to accurately list the resource.
16+
- type: markdown
17+
id: resource_info
18+
attributes:
19+
value: "## Resource info"
20+
- type: input
21+
id: resource_name
22+
attributes:
23+
label: Name
24+
description: Please provide the official name of the resource
25+
validations:
26+
required: true
27+
- type: input
28+
id: resource_url
29+
attributes:
30+
label: Resource URL
31+
description: Please provide a URL to the resource
32+
validations:
33+
required: true
34+
- type: textarea
35+
id: resource_description
36+
attributes:
37+
label: Description
38+
description: Please provide a short 1-2 sentence description of the resource
39+
validations:
40+
required: true
41+
- type: textarea
42+
id: resource_logo
43+
attributes:
44+
label: Logo
45+
description: |
46+
Please provide an SVG or transparent PNG
47+
Tip: You can attach images by clicking this area to highlight it and then dragging files in.
48+
- type: input
49+
id: resource_category
50+
attributes:
51+
label: Category
52+
description: Please specify a best fit to categorize the resource (e.g., DeFi, NFT, Scaling, etc.)
53+
- type: checkboxes
54+
id: resource_work_on
55+
attributes:
56+
label: Would you like to work on this issue?
57+
options:
58+
- label: "Yes"
59+
required: false
60+
- label: "No"
61+
required: false
62+
validations:
63+
required: true

.github/labeler.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@
1212
"dependencies 📦":
1313
- package.json
1414
- yarn.lock
15+
- pnpm-lock.yaml
1516

1617
"config ⚙️":
1718
- i18n.config.json
1819
- next.config.js
19-
- next-i18next.config,js
2020
- next-sitemap.config.js
2121
- tsconfig.json
2222
- .nvmrc

0 commit comments

Comments
 (0)