Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
335 commits
Select commit Hold shift + click to select a range
5cd2125
feat: add Matomo tracking events to Ethereum onboarding flow
corwintines Feb 27, 2025
ef33479
fix: adjust max-width for Ethereum onboarding flow container
corwintines Feb 27, 2025
9eb4373
add not found page
pettinarip Feb 27, 2025
915065e
feat: add resources issue template
wackerow Feb 27, 2025
478a255
add error page
pettinarip Feb 27, 2025
d118e8b
refactor: centralize md page data fetching logic
pettinarip Feb 28, 2025
e3c576b
accept scope object to inject into mdx pages
pettinarip Feb 28, 2025
a0922ef
generate blur images for hero images declared in md files
pettinarip Feb 28, 2025
bb0b868
format published dates
pettinarip Feb 28, 2025
3a1ce17
feat: create adding resource guide
wackerow Feb 28, 2025
5a3ba93
chore: import translations for es
actions-user Mar 1, 2025
2aac577
chore: import translations for fa
actions-user Mar 1, 2025
07e8f16
chore: import translations for fr
actions-user Mar 1, 2025
58fc960
chore: import translations for hu
actions-user Mar 1, 2025
4c7524e
chore: import translations for id
actions-user Mar 1, 2025
47cf28d
chore: import translations for it
actions-user Mar 1, 2025
3cdc0a2
chore: import translations for ja
actions-user Mar 1, 2025
9dcae3f
chore: import translations for ms
actions-user Mar 1, 2025
4a9311b
chore: import translations for nl
actions-user Mar 1, 2025
547e50a
chore: import translations for pt-br
actions-user Mar 1, 2025
801e7f5
chore: import translations for zh-tw
actions-user Mar 1, 2025
b88a0c5
fix: icon size 1em
wackerow Mar 1, 2025
6e121a0
chore: update resource icon assets
wackerow Mar 1, 2025
74790b8
build: add 301 convenience redirects
wackerow Mar 1, 2025
7439542
chore: apply suggestions from code review
wackerow Mar 1, 2025
4c2390c
feat: add "new" banner notification
wackerow Mar 1, 2025
5bf2767
feat: add icons to nav bar
wackerow Mar 1, 2025
73c029b
feat: improve slide height management in Ethereum onboarding flow
corwintines Mar 2, 2025
e2e62fe
fix: adjust wallet name text style in Ethereum onboarding flow
corwintines Mar 2, 2025
30cca4c
feat: add wallet disclaimer and configuration to RainbowKit provider
corwintines Mar 2, 2025
bb51ee8
fix: center mobile dapp link in Ethereum onboarding flow
corwintines Mar 2, 2025
1919099
feat: improve scrolling behavior in Ethereum onboarding flow
corwintines Mar 2, 2025
0076ce3
feat: enhance ConnectToEthereumButton with custom account display
corwintines Mar 2, 2025
7ff1161
refactor: simplify RainbowKit provider configuration and button styling
corwintines Mar 3, 2025
c4995f4
feat: customize RainbowKit wallet selection for new users
corwintines Mar 4, 2025
0883dcf
feat: create new "/start" page for Ethereum onboarding
corwintines Mar 4, 2025
47d0c73
feat: update RainbowKit wallet configuration with MetaMask and Wallet…
corwintines Mar 4, 2025
0e2671b
Update community-meetups.json
exyzee Mar 5, 2025
292b331
fix breadcrumbs logic
pettinarip Mar 7, 2025
b4983a7
feat: add ShareModal to Start with Crypto page
corwintines Mar 9, 2025
ed57663
Merge branch 'dev' into dashboard
wackerow Mar 10, 2025
fa3dc87
fix: hide arrow; URL already explicit
wackerow Mar 10, 2025
da3887c
export metadata
pettinarip Mar 10, 2025
e1c50d1
fix: trailing slash to fix github paths
wackerow Mar 10, 2025
4e17e10
fix: link contrast when visited
wackerow Mar 10, 2025
6994ef6
Merge branch 'dev' into app-router-mdx
pettinarip Mar 10, 2025
409f61b
fix type error
pettinarip Mar 10, 2025
be0c4ff
fix md syntax issues
pettinarip Feb 21, 2025
7a8a303
fix md syntax issues
pettinarip Feb 25, 2025
3cbe36a
feat: add smooth scrolling to all elements
wackerow Mar 11, 2025
7dc7aba
fix: hideArrow for ResourceItem
wackerow Mar 11, 2025
07ecefa
fix: hidden character in link
wackerow Mar 11, 2025
74bdbc9
exclude public folder from output
pettinarip Mar 11, 2025
520bfa7
fix: markdown-checker results
wackerow Mar 11, 2025
f7f50db
fix: update EthHomeIcon with React-compatible SVG attributes
corwintines Mar 11, 2025
6cdc9a1
upgrade netlify/next runtime plungin
pettinarip Mar 11, 2025
c6d0975
docs: fixed grammatical issues in "Blockchain Bridges" section
indmind Mar 12, 2025
8dbf124
Remove Waffle from local environments page (#15098)
sumitvekariya Mar 14, 2025
ea528e6
Update chains data
corwintines Mar 14, 2025
365088d
docs: fix grammatical error
0xstratus Mar 14, 2025
f79a79e
Fix typo
RogerPodacter Mar 15, 2025
8738ad1
Merge branch 'dev' into app-router-mdx
pettinarip Mar 17, 2025
922a81c
add FeedbackWidgetProvider in app router providers
pettinarip Mar 17, 2025
29db01a
move context to the feedback widget component to keep the base layout…
pettinarip Mar 17, 2025
5ce8f7b
Merge branch 'app-router-mdx' into md-syntax-fixes
pettinarip Mar 17, 2025
67b34b5
refactor: use semantic z-index class
wackerow Mar 17, 2025
a37827a
Merge pull request #14942 from ethereum/dashboard
wackerow Mar 17, 2025
d3bf143
patch more md files
pettinarip Mar 17, 2025
67884b5
Merge pull request #15111 from ethereum/staging
corwintines Mar 17, 2025
1d7041b
Merge pull request #14972 from ethereum/md-syntax-fixes
corwintines Mar 17, 2025
44a77ee
Merge branch 'dev' into app-router-mdx
corwintines Mar 17, 2025
50240de
Merge pull request #14968 from ethereum/app-router-mdx
corwintines Mar 17, 2025
aed6a4b
Merge branch 'dev' into web3-integration
corwintines Mar 17, 2025
8357bf8
deleting deadlinks
konopkja Mar 18, 2025
36cc18e
Merge pull request #14998 from ethereum/crowdin-march-es-202503010442…
wackerow Mar 18, 2025
7ed4b12
Updating AA page
konopkja Mar 18, 2025
6275001
move providers
corwintines Mar 18, 2025
d892fc4
fix: markdown-checker results for Farsi
wackerow Mar 18, 2025
ed39f40
add PageMetadata props
corwintines Mar 18, 2025
744ceeb
fix: syntax errors
wackerow Mar 18, 2025
a3708a8
update: bug-bounty codeowners
wackerow Mar 18, 2025
0521f77
refactor new to crypto wallets to come from start page getStaticProps
corwintines Mar 18, 2025
3dc4266
Merge branch 'dev' into web3-integration
corwintines Mar 18, 2025
bdecf72
use LinkBox
corwintines Mar 18, 2025
e258e79
fix: banner and subnav layout
wackerow Mar 18, 2025
5bb6162
fix: all the crowdin mistakes
wackerow Mar 18, 2025
0d51105
container ref
corwintines Mar 18, 2025
a805902
fix: crowdin mistakes
wackerow Mar 18, 2025
b53b8bd
use rainbowkit connect button when connected
corwintines Mar 18, 2025
bea5f2e
fix: crowdin syntax errors
wackerow Mar 18, 2025
9b25ccd
fix: crowdin syntax errors
wackerow Mar 18, 2025
a875842
fix: markdown syntax errors
wackerow Mar 19, 2025
278bb90
fix: crowdin syntax errors
wackerow Mar 19, 2025
871a3f8
fix: markdown syntax errors
wackerow Mar 19, 2025
a11adbb
Merge pull request #15000 from ethereum/crowdin-march-fr-202503010442…
wackerow Mar 19, 2025
910e170
Merge pull request #15002 from ethereum/crowdin-march-hu-202503010443…
wackerow Mar 19, 2025
16fd336
Merge pull request #15003 from ethereum/crowdin-march-id-202503010443…
wackerow Mar 19, 2025
83c0eee
Merge pull request #15004 from ethereum/crowdin-march-it-202503010443…
wackerow Mar 19, 2025
fc5d955
Merge pull request #15008 from ethereum/crowdin-march-pt-br-202503010…
wackerow Mar 19, 2025
0afa2bc
Merge pull request #14999 from ethereum/crowdin-march-fa-202503010442…
wackerow Mar 19, 2025
e9409e7
Merge pull request #15012 from ethereum/crowdin-march-zh-tw-202503010…
wackerow Mar 19, 2025
fbb4204
Merge pull request #15005 from ethereum/crowdin-march-ja-202503010443…
wackerow Mar 19, 2025
0e9f3c1
Merge pull request #15006 from ethereum/crowdin-march-ms-202503010443…
wackerow Mar 19, 2025
ca6ce2a
Merge pull request #15007 from ethereum/crowdin-march-nl-202503010443…
wackerow Mar 19, 2025
28b4216
chore: import translations for cs
actions-user Mar 19, 2025
06cfdf6
chore: import translations for de
actions-user Mar 19, 2025
8a401e4
chore: import translations for el
actions-user Mar 19, 2025
729f8aa
chore: import translations for es
actions-user Mar 19, 2025
4880fe3
chore: import translations for fr
actions-user Mar 19, 2025
a769d12
chore: import translations for hi
actions-user Mar 19, 2025
a500599
chore: import translations for hu
actions-user Mar 19, 2025
78e6c98
chore: import translations for it
actions-user Mar 19, 2025
8935fc0
chore: import translations for pt-br
actions-user Mar 19, 2025
8800436
chore: import translations for tr
actions-user Mar 19, 2025
dc7d09f
chore: import translations for zh-tw
actions-user Mar 19, 2025
987adbd
chore: import translations for zh
actions-user Mar 19, 2025
744f49c
Merge pull request #15112 from ethereum/konopkja-patch-2
wackerow Mar 19, 2025
a688be5
Merge pull request #15115 from ethereum/codeowners-update
pettinarip Mar 19, 2025
c0cc10e
Merge pull request #15116 from ethereum/dashboard-patch
pettinarip Mar 19, 2025
38059d4
convert ListenToPlayer into a real button
pettinarip Mar 19, 2025
59a7f85
fix story for liste to player and add an interactive one to test the …
pettinarip Mar 19, 2025
eb54f18
fix: rm dead link from archive-nodes page
wackerow Mar 19, 2025
9ec6275
Update wallet-data.ts - mew
konopkja Mar 19, 2025
227fe70
feat: add ga locale to i18n config
wackerow Mar 19, 2025
bf920eb
feat: import initial Irish (ga) strings
wackerow Mar 19, 2025
9821f9a
fix: crowdin syntax errors
wackerow Mar 19, 2025
11be853
see if adding web3 libraries to outputFileTracingExcludes gets it to …
corwintines Mar 19, 2025
873e16c
ignore content & intl folder from server build
pettinarip Mar 20, 2025
2ef316a
Update execution-bounty-hunters.json
fredrik0x Mar 20, 2025
39fa3bd
patch intl setup in affected stories to match previous snapshots
pettinarip Mar 20, 2025
7a81864
Update public/content/roadmap/account-abstraction/index.md
konopkja Mar 20, 2025
22aa95f
Merge pull request #15113 from ethereum/konopkja-patch-4
wackerow Mar 20, 2025
1531b86
Merge pull request #15055 from ethereum/strokeLinejoin-fix
wackerow Mar 20, 2025
4cff7ef
Merge pull request #15104 from ethereum/update-chains-1741969755
wackerow Mar 20, 2025
5e49280
fix: markdown syntax
wackerow Mar 20, 2025
9989294
fix: markdown syntax
wackerow Mar 21, 2025
1aa050b
Merge pull request #15149 from ethereum/zh-tw-patch
wackerow Mar 21, 2025
b1e4917
Merge branch 'dev' into crowdin-march-cs-20250319013953741
wackerow Mar 21, 2025
7a12d99
fix: english markdown syntax
wackerow Mar 21, 2025
2425b04
fix: cs markdown syntax
wackerow Mar 21, 2025
00e5510
Merge pull request #15117 from ethereum/crowdin-march-cs-202503190139…
wackerow Mar 21, 2025
6c7a789
Merge branch 'dev' into crowdin-march-de-20250319013958964
wackerow Mar 21, 2025
1c6aed3
fix: formal-verification syntax bug, all locales
wackerow Mar 21, 2025
5ec44bd
fix: stray character syntax error
wackerow Mar 21, 2025
9df517a
Merge pull request #15118 from ethereum/crowdin-march-de-202503190139…
wackerow Mar 21, 2025
2ac3567
Merge branch 'dev' into crowdin-march-el-20250319014004190
wackerow Mar 21, 2025
7e78fc7
Merge branch 'dev' into crowdin-march-es-20250319014008966
wackerow Mar 21, 2025
a94229d
Merge branch 'dev' into crowdin-march-fr-20250319014019872
wackerow Mar 21, 2025
0486bd3
Merge branch 'dev' into crowdin-march-hi-20250319014024774
wackerow Mar 21, 2025
20740dd
Merge branch 'dev' into crowdin-march-hu-20250319014029696
wackerow Mar 21, 2025
8e90224
Merge branch 'dev' into crowdin-march-it-20250319014039759
wackerow Mar 21, 2025
99e8b26
Merge branch 'dev' into crowdin-march-pt-br-20250319014104498
wackerow Mar 21, 2025
5bab05e
Merge branch 'dev' into crowdin-march-tr-20250319014115784
wackerow Mar 21, 2025
90422ae
Merge branch 'dev' into crowdin-march-zh-tw-20250319014120373
wackerow Mar 21, 2025
0729372
Merge branch 'dev' into crowdin-march-zh-20250319014125418
wackerow Mar 21, 2025
bc0c01d
Merge branch 'dev' into story-listen-to
pettinarip Mar 21, 2025
acd43b0
Merge branch 'dev' into irish
wackerow Mar 21, 2025
63da8a4
Merge branch 'dev' into patch-stories-intl
wackerow Mar 21, 2025
8dc4e09
Merge branch 'dev' into fredriksvantes-patch-1
wackerow Mar 21, 2025
1ae1060
Merge pull request #15145 from ethereum/fredriksvantes-patch-1
wackerow Mar 21, 2025
602edc0
Merge pull request #15053 from ethereum/link-fix
pettinarip Mar 21, 2025
94b6955
Merge pull request #15137 from ethereum/story-listen-to
wackerow Mar 21, 2025
ec7b4c1
Merge branch 'dev' into patch-stories-intl
wackerow Mar 21, 2025
86eba6b
Merge branch 'dev' into web3-integration
wackerow Mar 21, 2025
8ecb4ee
ignore content & intl folder from server build
pettinarip Mar 20, 2025
f0bd220
Merge pull request #15151 from ethereum/netlify
pettinarip Mar 21, 2025
8b73fb6
Merge branch 'dev' into irish
wackerow Mar 21, 2025
f2f7ea5
fix md
pettinarip Mar 21, 2025
9ba760b
fix md
pettinarip Mar 21, 2025
4b7c74b
fix md
pettinarip Mar 21, 2025
c5f8a92
fix md
pettinarip Mar 21, 2025
db73590
fix md
pettinarip Mar 21, 2025
79092e9
fix md
pettinarip Mar 21, 2025
c1a9ab6
Update Crowdin translation progress
actions-user Mar 21, 2025
77b6edc
fix md
pettinarip Mar 21, 2025
6723a15
Update chains data
corwintines Mar 21, 2025
a8c0bd6
fix md
pettinarip Mar 21, 2025
f5e6ea9
fix md
pettinarip Mar 21, 2025
e49afe6
fix md
pettinarip Mar 21, 2025
93bbf0f
wrap wallet name with LinkOverlay
pettinarip Mar 21, 2025
9878674
get locale from useLocale
pettinarip Mar 21, 2025
b9a8687
Merge pull request #15147 from ethereum/patch-stories-intl
wackerow Mar 21, 2025
80171fb
Merge pull request #15120 from ethereum/crowdin-march-es-202503190140…
wackerow Mar 21, 2025
b280e8f
chore: update whitespace syntax
wackerow Mar 21, 2025
29bc6b2
Merge pull request #15122 from ethereum/crowdin-march-fr-202503190140…
wackerow Mar 21, 2025
df88365
Merge pull request #15123 from ethereum/crowdin-march-hi-202503190140…
wackerow Mar 21, 2025
88444a4
fix: crowdin import issues
wackerow Mar 21, 2025
e871189
Merge pull request #15124 from ethereum/crowdin-march-hu-202503190140…
wackerow Mar 21, 2025
6de03c3
revert: inappropriate crowdin change
wackerow Mar 21, 2025
f71bf27
Merge pull request #15126 from ethereum/crowdin-march-it-202503190140…
wackerow Mar 21, 2025
5b04a1b
fix: crowdin import errors
wackerow Mar 21, 2025
41936fe
Merge pull request #15131 from ethereum/crowdin-march-pt-br-202503190…
wackerow Mar 21, 2025
4ec509f
fix: crowdin syntax error
wackerow Mar 21, 2025
2f80fa0
revert: name change
wackerow Mar 21, 2025
1d1307b
Merge pull request #15133 from ethereum/crowdin-march-tr-202503190141…
wackerow Mar 21, 2025
5804fc9
fix: zh-tw crowdin import errors and reversions
wackerow Mar 21, 2025
147b160
Merge pull request #15134 from ethereum/crowdin-march-zh-tw-202503190…
wackerow Mar 21, 2025
e0e4106
fix: crowdin syntax errors and reversions
wackerow Mar 21, 2025
0037e05
Merge pull request #15135 from ethereum/crowdin-march-zh-202503190141…
wackerow Mar 21, 2025
337f74a
fix: crowdin syntax errors and reversions
wackerow Mar 21, 2025
814c80d
Merge pull request #15119 from ethereum/crowdin-march-el-202503190140…
wackerow Mar 21, 2025
e0d9435
Merge pull request #15152 from ethereum/automated-update-20250321162900
wackerow Mar 21, 2025
a6ce265
Merge pull request #15153 from ethereum/update-chains-1742574601
wackerow Mar 21, 2025
1a54816
Merge pull request #15143 from ethereum/irish
pettinarip Mar 22, 2025
3142445
Update Crowdin contributors
actions-user Mar 23, 2025
7473384
Update community events
actions-user Mar 23, 2025
7f9df05
Update bug bounty banner
fredrik0x Mar 24, 2025
175d15c
fix: <img> usage; use NextImage, add domains to allow list
wackerow Mar 24, 2025
2df5393
fix: camelCase props
wackerow Mar 25, 2025
ff2aa2f
refactor: move mock data log to reduce output quantity
wackerow Mar 25, 2025
fb6a7ce
fix: dependency array warnings
wackerow Mar 25, 2025
3b61c55
fix: ast; bump h1s to h2
wackerow Mar 25, 2025
7b6d5fd
fix: broken link label
wackerow Mar 25, 2025
5e9cd08
refactor: add pathname to href warning
wackerow Mar 25, 2025
e917b9c
Update link to Fluffy on the Portal Network page.
bhartnett Mar 25, 2025
bac2569
update broken TrustToken link to new TUSD website
timbalabuch Mar 25, 2025
251ca35
Update community-events.json
DMitong Mar 25, 2025
d7752b7
Merge pull request #14947 from ethereum/web3-integration
corwintines Mar 25, 2025
6994768
chore(deps): bump next from 14.2.21 to 14.2.25
dependabot[bot] Mar 25, 2025
b85f233
build(deps): bump @babel/runtime from 7.23.9 to 7.26.10
dependabot[bot] Mar 25, 2025
ff09756
Add EthAsia event
corwintines Mar 25, 2025
03a098e
Hide listen to player on non-english pages
corwintines Mar 25, 2025
fa181df
chore: add imageUrl
wackerow Mar 25, 2025
94a9f69
Merge pull request #15169 from ethereum/addEthAsia
wackerow Mar 25, 2025
3f961a2
Merge pull request #15168 from ethereum/dependabot/npm_and_yarn/next-…
corwintines Mar 25, 2025
06a19f6
move conditional earlier, and combine conditional renders
corwintines Mar 25, 2025
6da50b5
Merge pull request #15170 from ethereum/hideListenToNonEnglish
wackerow Mar 25, 2025
b5cb9ad
Merge pull request #15167 from DMitong/patch-2
corwintines Mar 25, 2025
44dcb59
Merge pull request #15166 from timbalabuch/patch-10
corwintines Mar 25, 2025
b0da5d9
Merge pull request #15159 from ethereum/fredriksvantes-patch-1
corwintines Mar 25, 2025
5f9dc5f
Merge pull request #15165 from bhartnett/portal-network_update-link-t…
corwintines Mar 25, 2025
b6f64d4
From twitter to x
VolodymyrBg Mar 25, 2025
d8388c4
Merge pull request #15171 from VolodymyrBg/bg
corwintines Mar 25, 2025
4112fd9
Merge pull request #15160 from ethereum/tech-debt
corwintines Mar 25, 2025
2cf55dc
remove duplicates
corwintines Mar 25, 2025
9a4a04f
Merge branch 'dev' into automated-update-20250323002823
corwintines Mar 25, 2025
782cbd4
Merge pull request #15157 from ethereum/automated-update-20250323002823
corwintines Mar 25, 2025
a954319
Merge pull request #15156 from ethereum/automated-update-20250323001436
corwintines Mar 25, 2025
179d63e
Merge pull request #15142 from ethereum/konopkja-patch-2
corwintines Mar 25, 2025
a312a56
Merge pull request #15105 from 0xstratus/patch-2
corwintines Mar 25, 2025
39bb8c9
Merge pull request #15139 from ethereum/rm-link
corwintines Mar 25, 2025
34816c4
Merge pull request #15070 from indmind/patch-2
corwintines Mar 25, 2025
4e4b6b6
Update community-meetups.json
corwintines Mar 25, 2025
343773c
Merge pull request #15024 from exyzee/patch-4
corwintines Mar 25, 2025
3738d80
Merge pull request #15108 from RogerPodacter/patch-2
corwintines Mar 25, 2025
9d343a6
Merge pull request #14960 from donatik27/dev
corwintines Mar 25, 2025
1ffc677
Merge pull request #15089 from ethereum/dependabot/npm_and_yarn/babel…
corwintines Mar 25, 2025
81044d0
Merge pull request #15103 from sumitvekariya/remove-waffle-from-local…
corwintines Mar 25, 2025
8135b49
v10.0.0
corwintines Mar 26, 2025
bd9f6c3
Merge pull request #15178 from ethereum/v10-0-0
corwintines Mar 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@
* @wackerow @corwintines @pettinarip @minimalsm

# Owners of specific files
/src/data/consensus-bounty-hunters.json @djrtwo @asanso @fredriksvantes
/src/data/consensus-bounty-hunters.json @asanso @fredriksvantes
/src/data/wallets/new-to-crypto.ts @konopkja @minimalsm
63 changes: 63 additions & 0 deletions .github/ISSUE_TEMPLATE/suggest_resource.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Suggest a resource
description: Suggest a new resource to list on ethereum.org/resources
title: Suggest a resource
labels: ["resource 📚"]
body:
- type: markdown
attributes:
value: |
Before suggesting a resource, make sure you've read [our listing policy](https://www.ethereum.org/en/contributing/adding-resources/).
- type: markdown
attributes:
value: Only continue with the issue if your resource meets the criteria listed there.
- type: markdown
attributes:
value: If it does, complete the following information which we need to accurately list the resource.
- type: markdown
id: resource_info
attributes:
value: "## Resource info"
- type: input
id: resource_name
attributes:
label: Name
description: Please provide the official name of the resource
validations:
required: true
- type: input
id: resource_url
attributes:
label: Resource URL
description: Please provide a URL to the resource
validations:
required: true
- type: textarea
id: resource_description
attributes:
label: Description
description: Please provide a short 1-2 sentence description of the resource
validations:
required: true
- type: textarea
id: resource_logo
attributes:
label: Logo
description: |
Please provide an SVG or transparent PNG
Tip: You can attach images by clicking this area to highlight it and then dragging files in.
- type: input
id: resource_category
attributes:
label: Category
description: Please specify a best fit to categorize the resource (e.g., DeFi, NFT, Scaling, etc.)
- type: checkboxes
id: resource_work_on
attributes:
label: Would you like to work on this issue?
options:
- label: "Yes"
required: false
- label: "No"
required: false
validations:
required: true
109 changes: 109 additions & 0 deletions app/[locale]/[...slug]/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
import pick from "lodash.pick"
import { notFound } from "next/navigation"
import { getMessages, setRequestLocale } from "next-intl/server"

import I18nProvider from "@/components/I18nProvider"
import mdComponents from "@/components/MdComponents"

import { dataLoader } from "@/lib/utils/data/dataLoader"
import { getPostSlugs } from "@/lib/utils/md"
import { getRequiredNamespacesForPage } from "@/lib/utils/translations"

import { LOCALES_CODES } from "@/lib/constants"

import { componentsMapping, layoutMapping } from "@/layouts"
import { fetchGFIs } from "@/lib/api/fetchGFIs"
import { getPageData } from "@/lib/md/data"
import { getMdMetadata } from "@/lib/md/metadata"

const loadData = dataLoader([["gfissues", fetchGFIs]])

export default async function Page({
params,
}: {
params: Promise<{ locale: string; slug: string[] }>
}) {
const { locale, slug: slugArray } = await params

// Check if this specific path is in our valid paths
const validPaths = await generateStaticParams()
const isValidPath = validPaths.some(
(path) =>
path.locale === locale && path.slug.join("/") === slugArray.join("/")
)

if (!isValidPath) {
notFound()
}

// Enable static rendering
setRequestLocale(locale)

const [gfissues] = await loadData()

const slug = slugArray.join("/")

const {
content,
frontmatter,
tocItems,
lastEditLocaleTimestamp,
isTranslated,
} = await getPageData({
locale,
slug,
// TODO: Address component typing error here (flip `FC` types to prop object types)
// @ts-expect-error Incompatible component function signatures
components: { ...mdComponents, ...componentsMapping },
scope: {
gfissues,
},
})

// Determine the actual layout after we have the frontmatter
const layout = frontmatter.template || "static"
const Layout = layoutMapping[layout]

// Get i18n messages
const allMessages = await getMessages({ locale })
const requiredNamespaces = getRequiredNamespacesForPage(slug, layout)
const messages = pick(allMessages, requiredNamespaces)

return (
<I18nProvider locale={locale} messages={messages}>
<Layout
slug={slug}
frontmatter={frontmatter}
tocItems={tocItems}
lastEditLocaleTimestamp={lastEditLocaleTimestamp}
contentNotTranslated={!isTranslated}
>
{content}
</Layout>
</I18nProvider>
)
}

export async function generateStaticParams() {
const slugs = await getPostSlugs("/", /\/developers/)

return LOCALES_CODES.flatMap((locale) =>
slugs.map((slug) => ({
slug: slug.split("/").slice(1),
locale,
}))
)
}

export async function generateMetadata({
params,
}: {
params: Promise<{ locale: string; slug: string[] }>
}) {
const { locale, slug } = await params

return await getMdMetadata({
locale,
slug,
})
}
98 changes: 98 additions & 0 deletions app/[locale]/developers/docs/[[...doc]]/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
import { join } from "path"

import pick from "lodash.pick"
import { getMessages, setRequestLocale } from "next-intl/server"

import I18nProvider from "@/components/I18nProvider"
import mdComponents from "@/components/MdComponents"

import { getPostSlugs } from "@/lib/utils/md"
import { getRequiredNamespacesForPage } from "@/lib/utils/translations"

import { LOCALES_CODES } from "@/lib/constants"

import { docsComponents, DocsLayout } from "@/layouts"
import { getPageData } from "@/lib/md/data"
import { getMdMetadata } from "@/lib/md/metadata"

export default async function Page({
params,
}: {
params: Promise<{ locale: string; doc?: string[] }>
}) {
const { locale, doc: docArray } = await params

// Enable static rendering
setRequestLocale(locale)

const slug = join("developers/docs", ...(docArray || []))

const layout = "docs"

const {
content,
frontmatter,
tocItems,
lastEditLocaleTimestamp,
contributors,
isTranslated,
} = await getPageData({
locale,
slug,
// TODO: Address component typing error here (flip `FC` types to prop object types)
// @ts-expect-error Incompatible component function signatures
components: { ...mdComponents, ...docsComponents },
layout,
})

// Get i18n messages
const allMessages = await getMessages({ locale })
const requiredNamespaces = getRequiredNamespacesForPage(slug, layout)
const messages = pick(allMessages, requiredNamespaces)

return (
<I18nProvider locale={locale} messages={messages}>
<DocsLayout
slug={slug}
frontmatter={frontmatter}
tocItems={tocItems}
lastEditLocaleTimestamp={lastEditLocaleTimestamp}
contributors={contributors}
contentNotTranslated={!isTranslated}
>
{content}
</DocsLayout>
</I18nProvider>
)
}

export async function generateStaticParams() {
const slugs = await getPostSlugs("/developers/docs")

// Generate page paths for each supported locale
return LOCALES_CODES.flatMap((locale) =>
slugs.map((slug) => {
return {
// Splitting nested paths to generate proper slug
doc: slug.replace("/developers/docs", "").split("/").slice(1),
locale,
}
})
)
}

export async function generateMetadata({
params,
}: {
params: Promise<{ locale: string; doc: string[] }>
}) {
const { locale, doc } = await params
const slug = ["developers/docs", ...(doc || [])]

return await getMdMetadata({
locale,
slug,
})
}

export const dynamicParams = false
101 changes: 101 additions & 0 deletions app/[locale]/developers/tutorials/[...tutorial]/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
import { join } from "path"

import pick from "lodash.pick"
import { getMessages, setRequestLocale } from "next-intl/server"

import I18nProvider from "@/components/I18nProvider"
import mdComponents from "@/components/MdComponents"

import { dateToString } from "@/lib/utils/date"
import { getPostSlugs } from "@/lib/utils/md"
import { getRequiredNamespacesForPage } from "@/lib/utils/translations"

import { LOCALES_CODES } from "@/lib/constants"

import { TutorialLayout, tutorialsComponents } from "@/layouts"
import { getPageData } from "@/lib/md/data"
import { getMdMetadata } from "@/lib/md/metadata"

export default async function Page({
params,
}: {
params: Promise<{ locale: string; tutorial: string[] }>
}) {
const { locale, tutorial: tutorialArray } = await params

// Enable static rendering
setRequestLocale(locale)

const slug = join("developers/tutorials", ...tutorialArray)

const layout = "tutorial"

const {
content,
frontmatter,
tocItems,
lastEditLocaleTimestamp,
contributors,
isTranslated,
} = await getPageData({
locale,
slug,
// TODO: Address component typing error here (flip `FC` types to prop object types)
// @ts-expect-error Incompatible component function signatures
components: { ...mdComponents, ...tutorialsComponents },
layout,
})

// If the page has a published date, format it
if ("published" in frontmatter) {
frontmatter.published = dateToString(frontmatter.published)
}

// Get i18n messages
const allMessages = await getMessages({ locale })
const requiredNamespaces = getRequiredNamespacesForPage(slug, layout)
const messages = pick(allMessages, requiredNamespaces)

return (
<I18nProvider locale={locale} messages={messages}>
<TutorialLayout
slug={slug}
frontmatter={frontmatter}
tocItems={tocItems}
lastEditLocaleTimestamp={lastEditLocaleTimestamp}
contributors={contributors}
contentNotTranslated={!isTranslated}
timeToRead={2}
>
{content}
</TutorialLayout>
</I18nProvider>
)
}

export async function generateStaticParams() {
const slugs = await getPostSlugs("/developers/tutorials")

return LOCALES_CODES.flatMap((locale) =>
slugs.map((slug) => ({
tutorial: slug.replace("/developers/tutorials", "").split("/").slice(1),
locale,
}))
)
}

export async function generateMetadata({
params,
}: {
params: Promise<{ locale: string; tutorial: string[] }>
}) {
const { locale, tutorial } = await params
const slug = ["developers/tutorials", ...(tutorial || [])]

return await getMdMetadata({
locale,
slug,
})
}

export const dynamicParams = false
Loading