Skip to content

Commit 76e79a0

Browse files
beihailiclaude
andcommitted
🚀 Transform to modern React Web3 learning platform
Major upgrade from static HTML to interactive React application: - ✨ Add modern React + Vite + Tailwind CSS architecture - 🎨 Implement cyberpunk-themed UI with animations and effects - 🔗 Integrate wallet connection and on-chain progress tracking - 🎮 Add interactive Web3 playground (Oracle, Wallet Simulator, Hash Visualizer) - 📚 Implement dynamic content loading from GitHub repository - 🤖 Prepare infrastructure for AI-powered features - 🌐 Configure GitHub Pages deployment with proper routing - 📦 Preserve all existing educational content in zh/ and en/ directories The platform now offers both legacy GitBook access and modern React experience. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent e684b86 commit 76e79a0

31 files changed

+8907
-335
lines changed

.gitignore

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,36 @@
44
05_GetStartedWithDAO
55
06_GetStartedWithNFT
66

7-
# GitBook 相关文件
8-
_book/
7+
# Dependencies
98
node_modules/
109
**/node_modules/
10+
npm-debug.log*
11+
yarn-debug.log*
12+
yarn-error.log*
13+
14+
# Build outputs (React/Vite)
15+
dist/
16+
build/
17+
_book/
18+
19+
# Environment files
20+
.env
21+
.env.local
22+
.env.development.local
23+
.env.test.local
24+
.env.production.local
25+
26+
# GitBook 相关文件
1127
gitbook/
1228
gitbook-temp/
1329
*.log
1430
*.epub
1531
*.mobi
1632
*.pdf
1733

34+
# Vite
35+
.vite/
36+
1837
# Python 缓存文件
1938
__pycache__/
2039
**/__pycache__/

README.md

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,20 @@
2626

2727
## 📖 About This Project
2828

29-
**Get Started With Web3** is a comprehensive, open-source learning resource designed to guide newcomers through the exciting world of Web3, blockchain technology, and Bitcoin.
29+
**Get Started With Web3** is a comprehensive, open-source learning resource designed to guide newcomers through the exciting world of Web3, blockchain technology, and Bitcoin.
30+
31+
🎉 **NEW: Modern React Interface!** - Experience our brand new interactive learning platform with AI-powered assistance, beautiful animations, and Web3 wallet integration.
3032

3133
**《Web3入门指南》** 是一个全面的开源学习资源,旨在引导新人进入激动人心的Web3、区块链技术和比特币世界。
3234

35+
🎉 **全新:现代化React界面!** - 体验全新的交互式学习平台,支持AI助教、精美动画和Web3钱包集成。
36+
37+
### 🌐 Access Options | 访问方式
38+
39+
- **🚀 [Modern React App (Recommended)](https://beihaili.github.io/GetStartedWithWeb3/)** - Interactive learning platform with AI features
40+
- **📚 [Traditional GitBook](./zh/)** - Classic text-based tutorials
41+
- **🌍 [English Version](./en/)** - English language support
42+
3343
### 🎯 What You'll Learn | 你将学到什么
3444

3545
**🔰 Web3 Fundamentals**
@@ -60,6 +70,15 @@
6070

6171
### 🌟 Features | 特色功能
6272

73+
**React App Features:**
74+
-**Modern Tech Stack** - React 19, Vite, Tailwind CSS
75+
- 🎨 **Beautiful UI** - Cyberpunk-style dark theme with animations
76+
- 🔗 **Wallet Integration** - Connect MetaMask and track progress on-chain
77+
- 🤖 **AI Assistant** - Powered by Gemini AI (coming soon)
78+
- 🎮 **Interactive Demos** - Web3 Oracle, Wallet Simulator, Hash Visualizer
79+
- 📱 **Responsive Design** - Works perfectly on mobile and desktop
80+
81+
**Content Features:**
6382
-**Beginner-friendly** | 新手友好
6483
-**Code examples** | 代码示例
6584
-**Interactive tutorials** | 互动教程

archive/_config.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# GitHub Pages configuration for HonKit
2+
title: "Get Started with Web3"
3+
description: "Comprehensive Web3, blockchain and cryptocurrency tutorial | 全面的Web3、区块链和加密货币教程"
4+
url: "https://beihaili.github.io"
5+
baseurl: "/Get-Started-with-Web3"
6+
7+
# HonKit settings
8+
markdown: kramdown
9+
highlighter: rouge
10+
11+
# Social links
12+
github_username: beihaili
13+
twitter_username: bhbtc1337

archive/book.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"title": "Get Started with Web3",
3+
"author": "beihaili",
4+
"description": "Web3、区块链和加密货币入门指南",
5+
"language": "zh-hans",
6+
"structure": {
7+
"readme": "README.md"
8+
}
9+
}

index.html

Lines changed: 10 additions & 272 deletions
Original file line numberDiff line numberDiff line change
@@ -1,274 +1,12 @@
1-
<!DOCTYPE html>
1+
<!doctype html>
22
<html lang="en">
3-
<head>
4-
<meta charset="UTF-8">
5-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6-
<title>Get Started with Web3 | Web3入门指南</title>
7-
<meta name="description" content="Comprehensive Web3, blockchain and cryptocurrency tutorial for beginners | 全面的Web3、区块链和加密货币入门教程">
8-
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🌐</text></svg>">
9-
<style>
10-
* {
11-
margin: 0;
12-
padding: 0;
13-
box-sizing: border-box;
14-
}
15-
16-
body {
17-
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Helvetica Neue', Arial, sans-serif;
18-
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
19-
min-height: 100vh;
20-
display: flex;
21-
align-items: center;
22-
justify-content: center;
23-
color: white;
24-
}
25-
26-
.container {
27-
text-align: center;
28-
max-width: 1000px;
29-
padding: 2rem;
30-
width: 100%;
31-
}
32-
33-
.logo {
34-
font-size: 4rem;
35-
margin-bottom: 1rem;
36-
animation: float 3s ease-in-out infinite;
37-
}
38-
39-
@keyframes float {
40-
0%, 100% { transform: translateY(0px); }
41-
50% { transform: translateY(-10px); }
42-
}
43-
44-
h1 {
45-
font-size: 2.5rem;
46-
margin-bottom: 0.5rem;
47-
font-weight: 300;
48-
}
49-
50-
.subtitle {
51-
font-size: 1.2rem;
52-
margin-bottom: 3rem;
53-
opacity: 0.9;
54-
line-height: 1.6;
55-
}
56-
57-
.language-options {
58-
display: grid;
59-
grid-template-columns: 1fr 1fr;
60-
gap: 2rem;
61-
max-width: 800px;
62-
margin: 0 auto;
63-
}
64-
65-
.language-card {
66-
background: rgba(255, 255, 255, 0.1);
67-
border-radius: 20px;
68-
padding: 2.5rem;
69-
backdrop-filter: blur(15px);
70-
border: 1px solid rgba(255, 255, 255, 0.2);
71-
transition: all 0.3s ease;
72-
text-decoration: none;
73-
color: white;
74-
display: flex;
75-
flex-direction: column;
76-
align-items: center;
77-
justify-content: center;
78-
min-height: 280px;
79-
position: relative;
80-
overflow: hidden;
81-
}
82-
83-
.language-card::before {
84-
content: '';
85-
position: absolute;
86-
top: 0;
87-
left: 0;
88-
right: 0;
89-
bottom: 0;
90-
background: linear-gradient(45deg, rgba(255,255,255,0.1), rgba(255,255,255,0.05));
91-
opacity: 0;
92-
transition: opacity 0.3s ease;
93-
}
94-
95-
.language-card:hover::before {
96-
opacity: 1;
97-
}
98-
99-
.language-card:hover {
100-
transform: translateY(-8px) scale(1.02);
101-
box-shadow: 0 25px 50px rgba(0, 0, 0, 0.3);
102-
}
103-
104-
.flag {
105-
font-size: 4rem;
106-
margin-bottom: 1.5rem;
107-
display: block;
108-
position: relative;
109-
z-index: 1;
110-
}
111-
112-
.language-name {
113-
font-size: 1.8rem;
114-
font-weight: 700;
115-
margin-bottom: 1rem;
116-
position: relative;
117-
z-index: 1;
118-
}
119-
120-
.language-desc {
121-
font-size: 1rem;
122-
opacity: 0.9;
123-
line-height: 1.5;
124-
position: relative;
125-
z-index: 1;
126-
}
127-
128-
.footer {
129-
position: fixed;
130-
bottom: 2rem;
131-
left: 50%;
132-
transform: translateX(-50%);
133-
display: flex;
134-
gap: 1rem;
135-
opacity: 0.7;
136-
}
137-
138-
.footer a {
139-
color: white;
140-
text-decoration: none;
141-
font-size: 0.9rem;
142-
transition: opacity 0.3s ease;
143-
}
144-
145-
.footer a:hover {
146-
opacity: 1;
147-
}
148-
149-
.stats {
150-
margin-top: 2rem;
151-
display: flex;
152-
justify-content: center;
153-
gap: 2rem;
154-
flex-wrap: wrap;
155-
}
156-
157-
.stat {
158-
text-align: center;
159-
}
160-
161-
.stat-number {
162-
font-size: 1.5rem;
163-
font-weight: bold;
164-
color: #ffd700;
165-
}
166-
167-
.stat-label {
168-
font-size: 0.8rem;
169-
opacity: 0.8;
170-
}
171-
172-
@media (max-width: 768px) {
173-
h1 { font-size: 2rem; }
174-
.subtitle { font-size: 1rem; }
175-
.language-options {
176-
grid-template-columns: 1fr;
177-
gap: 1.5rem;
178-
max-width: 400px;
179-
}
180-
.language-card {
181-
min-height: 220px;
182-
padding: 2rem;
183-
}
184-
.flag { font-size: 3rem; }
185-
.language-name { font-size: 1.5rem; }
186-
.stats { gap: 1rem; }
187-
}
188-
</style>
189-
</head>
190-
<body>
191-
<div class="container">
192-
<div class="logo">🌐</div>
193-
<h1>Get Started with Web3</h1>
194-
<p class="subtitle">
195-
Comprehensive guide to Web3, blockchain, and cryptocurrency<br>
196-
全面的Web3、区块链和加密货币学习指南
197-
</p>
198-
199-
<div class="language-options">
200-
<a href="./zh/" class="language-card">
201-
<span class="flag">🇨🇳</span>
202-
<div class="language-name">中文版</div>
203-
<div class="language-desc">
204-
完整的中文教程<br>
205-
包含21讲比特币技术详解
206-
</div>
207-
</a>
208-
209-
<a href="./en/" class="language-card">
210-
<span class="flag">🇺🇸</span>
211-
<div class="language-name">English</div>
212-
<div class="language-desc">
213-
Complete English Tutorial<br>
214-
21 Chapters of Bitcoin Technology
215-
</div>
216-
</a>
217-
</div>
218-
219-
<div class="stats">
220-
<div class="stat">
221-
<div class="stat-number">21+</div>
222-
<div class="stat-label">Chapters</div>
223-
</div>
224-
<div class="stat">
225-
<div class="stat-number">50+</div>
226-
<div class="stat-label">Code Examples</div>
227-
</div>
228-
<div class="stat">
229-
<div class="stat-number">100%</div>
230-
<div class="stat-label">Open Source</div>
231-
</div>
232-
</div>
233-
</div>
234-
235-
<div class="footer">
236-
<a href="https://github.com/beihaili/Get-Started-with-Web3" target="_blank">🐙 GitHub</a>
237-
<a href="https://twitter.com/bhbtc1337" target="_blank">🐦 Twitter</a>
238-
<a href="https://forms.gle/QMBwL6LwZyQew1tX8" target="_blank">💬 Community</a>
239-
</div>
240-
241-
<script>
242-
// 记录用户语言偏好
243-
function setLanguagePreference(lang) {
244-
localStorage.setItem('preferredLanguage', lang);
245-
}
246-
247-
// 智能推荐逻辑(不自动跳转)
248-
function showLanguageRecommendation() {
249-
const preferred = localStorage.getItem('preferredLanguage');
250-
const browserLang = navigator.language || navigator.userLanguage;
251-
252-
// 根据浏览器语言显示推荐提示
253-
if (browserLang.startsWith('zh')) {
254-
console.log('检测到中文环境,推荐中文版');
255-
// 可以在这里添加视觉提示,但不自动跳转
256-
} else {
257-
console.log('检测到英文环境,推荐英文版');
258-
}
259-
}
260-
261-
// 为语言卡片添加点击事件
262-
document.querySelectorAll('.language-card').forEach(card => {
263-
card.addEventListener('click', function(e) {
264-
const href = this.getAttribute('href');
265-
const lang = href.includes('/zh/') ? 'zh' : 'en';
266-
setLanguagePreference(lang);
267-
});
268-
});
269-
270-
// 页面加载完成后执行
271-
document.addEventListener('DOMContentLoaded', showLanguageRecommendation);
272-
</script>
273-
</body>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>Web3 Starter - 从入门到精通</title>
7+
</head>
8+
<body>
9+
<div id="root"></div>
10+
<script type="module" src="/src/main.jsx"></script>
11+
</body>
27412
</html>

0 commit comments

Comments
 (0)