openfree commited on
Commit
2a1423f
ยท
verified ยท
1 Parent(s): 3ff99fb

Create index.html

Browse files
Files changed (1) hide show
  1. index.html +311 -19
index.html CHANGED
@@ -1,19 +1,311 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>HuggingFace & Replicate ํŠธ๋ Œ๋”ฉ/์‹ ๊ทœ URL ์ถ”์ถœ๊ธฐ</title>
7
+ <style>
8
+ * {
9
+ box-sizing: border-box;
10
+ margin: 0;
11
+ padding: 0;
12
+ }
13
+
14
+ body {
15
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
16
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
17
+ min-height: 100vh;
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: center;
21
+ padding: 20px;
22
+ }
23
+
24
+ .container {
25
+ background: rgba(255, 255, 255, 0.95);
26
+ border-radius: 20px;
27
+ box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
28
+ padding: 40px;
29
+ max-width: 900px;
30
+ width: 100%;
31
+ backdrop-filter: blur(10px);
32
+ }
33
+
34
+ h1 {
35
+ text-align: center;
36
+ color: #333;
37
+ margin-bottom: 10px;
38
+ font-size: 2rem;
39
+ background: linear-gradient(135deg, #667eea, #764ba2);
40
+ -webkit-background-clip: text;
41
+ -webkit-text-fill-color: transparent;
42
+ background-clip: text;
43
+ }
44
+
45
+ .subtitle {
46
+ text-align: center;
47
+ color: #666;
48
+ margin-bottom: 40px;
49
+ font-size: 1.1rem;
50
+ }
51
+
52
+ .service-section {
53
+ margin-bottom: 30px;
54
+ background: #f8f9fa;
55
+ padding: 25px;
56
+ border-radius: 15px;
57
+ border: 1px solid #e9ecef;
58
+ }
59
+
60
+ .service-title {
61
+ font-size: 1.5rem;
62
+ color: #333;
63
+ margin-bottom: 20px;
64
+ display: flex;
65
+ align-items: center;
66
+ gap: 10px;
67
+ }
68
+
69
+ .service-icon {
70
+ width: 30px;
71
+ height: 30px;
72
+ display: inline-flex;
73
+ align-items: center;
74
+ justify-content: center;
75
+ }
76
+
77
+ .url-grid {
78
+ display: grid;
79
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
80
+ gap: 15px;
81
+ }
82
+
83
+ .url-card {
84
+ background: white;
85
+ padding: 20px;
86
+ border-radius: 10px;
87
+ border: 1px solid #e0e0e0;
88
+ transition: all 0.3s ease;
89
+ cursor: pointer;
90
+ position: relative;
91
+ overflow: hidden;
92
+ }
93
+
94
+ .url-card:hover {
95
+ transform: translateY(-2px);
96
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
97
+ border-color: #667eea;
98
+ }
99
+
100
+ .url-card::before {
101
+ content: '';
102
+ position: absolute;
103
+ top: 0;
104
+ left: 0;
105
+ width: 100%;
106
+ height: 3px;
107
+ background: linear-gradient(90deg, #667eea, #764ba2);
108
+ transform: translateX(-100%);
109
+ transition: transform 0.3s ease;
110
+ }
111
+
112
+ .url-card:hover::before {
113
+ transform: translateX(0);
114
+ }
115
+
116
+ .url-type {
117
+ font-weight: 600;
118
+ color: #667eea;
119
+ margin-bottom: 10px;
120
+ font-size: 1.1rem;
121
+ }
122
+
123
+ .url-link {
124
+ color: #666;
125
+ font-size: 0.9rem;
126
+ word-break: break-all;
127
+ display: block;
128
+ text-decoration: none;
129
+ }
130
+
131
+ .url-link:hover {
132
+ color: #667eea;
133
+ }
134
+
135
+ .copy-btn {
136
+ margin-top: 10px;
137
+ padding: 8px 16px;
138
+ background: linear-gradient(135deg, #667eea, #764ba2);
139
+ color: white;
140
+ border: none;
141
+ border-radius: 5px;
142
+ cursor: pointer;
143
+ font-size: 0.85rem;
144
+ transition: all 0.3s ease;
145
+ }
146
+
147
+ .copy-btn:hover {
148
+ transform: scale(1.05);
149
+ box-shadow: 0 5px 15px rgba(102, 126, 234, 0.4);
150
+ }
151
+
152
+ .copy-btn.copied {
153
+ background: #4caf50;
154
+ }
155
+
156
+ .date-info {
157
+ text-align: center;
158
+ color: #999;
159
+ font-size: 0.9rem;
160
+ margin-top: 30px;
161
+ }
162
+
163
+ .note {
164
+ background: #fef3c7;
165
+ border: 1px solid #fbbf24;
166
+ border-radius: 10px;
167
+ padding: 15px;
168
+ margin-top: 20px;
169
+ color: #92400e;
170
+ font-size: 0.9rem;
171
+ }
172
+
173
+ @media (max-width: 600px) {
174
+ .container {
175
+ padding: 20px;
176
+ }
177
+
178
+ h1 {
179
+ font-size: 1.5rem;
180
+ }
181
+
182
+ .service-title {
183
+ font-size: 1.2rem;
184
+ }
185
+ }
186
+ </style>
187
+ </head>
188
+ <body>
189
+ <div class="container">
190
+ <h1>๐Ÿš€ AI ๋ชจ๋ธ ํ—ˆ๋ธŒ URL ์ถ”์ถœ๊ธฐ</h1>
191
+ <p class="subtitle">HuggingFace์™€ Replicate์˜ ํŠธ๋ Œ๋”ฉ ๋ฐ ์‹ ๊ทœ ๋ชจ๋ธ/์ŠคํŽ˜์ด์Šค URL</p>
192
+
193
+ <!-- HuggingFace Models -->
194
+ <div class="service-section">
195
+ <h2 class="service-title">
196
+ <span class="service-icon">๐Ÿค—</span>
197
+ HuggingFace Models
198
+ </h2>
199
+ <div class="url-grid">
200
+ <div class="url-card" onclick="copyToClipboard(this, 'https://huggingface.co/models?sort=trending')">
201
+ <div class="url-type">๐Ÿ“ˆ ํŠธ๋ Œ๋”ฉ ๋ชจ๋ธ</div>
202
+ <a href="https://huggingface.co/models?sort=trending" target="_blank" class="url-link">
203
+ https://huggingface.co/models?sort=trending
204
+ </a>
205
+ <button class="copy-btn">URL ๋ณต์‚ฌ</button>
206
+ </div>
207
+ <div class="url-card" onclick="copyToClipboard(this, 'https://huggingface.co/models?sort=created')">
208
+ <div class="url-type">๐Ÿ†• ์‹ ๊ทœ ๋ชจ๋ธ</div>
209
+ <a href="https://huggingface.co/models?sort=created" target="_blank" class="url-link">
210
+ https://huggingface.co/models?sort=created
211
+ </a>
212
+ <button class="copy-btn">URL ๋ณต์‚ฌ</button>
213
+ </div>
214
+ </div>
215
+ </div>
216
+
217
+ <!-- HuggingFace Spaces -->
218
+ <div class="service-section">
219
+ <h2 class="service-title">
220
+ <span class="service-icon">๐ŸŽฏ</span>
221
+ HuggingFace Spaces
222
+ </h2>
223
+ <div class="url-grid">
224
+ <div class="url-card" onclick="copyToClipboard(this, 'https://huggingface.co/spaces?sort=trending')">
225
+ <div class="url-type">๐Ÿ“ˆ ํŠธ๋ Œ๋”ฉ ์ŠคํŽ˜์ด์Šค</div>
226
+ <a href="https://huggingface.co/spaces?sort=trending" target="_blank" class="url-link">
227
+ https://huggingface.co/spaces?sort=trending
228
+ </a>
229
+ <button class="copy-btn">URL ๋ณต์‚ฌ</button>
230
+ </div>
231
+ <div class="url-card" onclick="copyToClipboard(this, 'https://huggingface.co/spaces?sort=created')">
232
+ <div class="url-type">๐Ÿ†• ์‹ ๊ทœ ์ŠคํŽ˜์ด์Šค</div>
233
+ <a href="https://huggingface.co/spaces?sort=created" target="_blank" class="url-link">
234
+ https://huggingface.co/spaces?sort=created
235
+ </a>
236
+ <button class="copy-btn">URL ๋ณต์‚ฌ</button>
237
+ </div>
238
+ </div>
239
+ </div>
240
+
241
+ <!-- Replicate -->
242
+ <div class="service-section">
243
+ <h2 class="service-title">
244
+ <span class="service-icon">โšก</span>
245
+ Replicate
246
+ </h2>
247
+ <div class="url-grid">
248
+ <div class="url-card" onclick="copyToClipboard(this, 'https://replicate.com/explore')">
249
+ <div class="url-type">๐Ÿ”ฅ ์ธ๊ธฐ ๋ชจ๋ธ (Explore)</div>
250
+ <a href="https://replicate.com/explore" target="_blank" class="url-link">
251
+ https://replicate.com/explore
252
+ </a>
253
+ <button class="copy-btn">URL ๋ณต์‚ฌ</button>
254
+ </div>
255
+ <div class="url-card" onclick="copyToClipboard(this, 'https://replicate.com/collections')">
256
+ <div class="url-type">๐Ÿ“š ์ปฌ๋ ‰์…˜๋ณ„ ๋ชจ๋ธ</div>
257
+ <a href="https://replicate.com/collections" target="_blank" class="url-link">
258
+ https://replicate.com/collections
259
+ </a>
260
+ <button class="copy-btn">URL ๋ณต์‚ฌ</button>
261
+ </div>
262
+ </div>
263
+ </div>
264
+
265
+ <div class="note">
266
+ ๐Ÿ’ก <strong>์ฐธ๊ณ :</strong> Replicate๋Š” ๋ณ„๋„์˜ "์‹ ๊ทœ" ์ •๋ ฌ ์˜ต์…˜์ด ์—†์œผ๋ฉฐ, Explore ํŽ˜์ด์ง€์—์„œ ์ตœ์‹  ๋ฐ ์ธ๊ธฐ ๋ชจ๋ธ์„ ํ•จ๊ป˜ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
267
+ </div>
268
+
269
+ <p class="date-info">์ตœ์ข… ์—…๋ฐ์ดํŠธ: 2025๋…„ 6์›” 26์ผ</p>
270
+ </div>
271
+
272
+ <script>
273
+ function copyToClipboard(card, url) {
274
+ // ์ด๋ฒคํŠธ ๋ฒ„๋ธ”๋ง ๋ฐฉ์ง€
275
+ event.preventDefault();
276
+ event.stopPropagation();
277
+
278
+ // ํด๋ฆฝ๋ณด๋“œ์— ๋ณต์‚ฌ
279
+ navigator.clipboard.writeText(url).then(() => {
280
+ const btn = card.querySelector('.copy-btn');
281
+ const originalText = btn.textContent;
282
+
283
+ // ๋ฒ„ํŠผ ํ…์ŠคํŠธ ๋ณ€๊ฒฝ
284
+ btn.textContent = 'โœ“ ๋ณต์‚ฌ๋จ!';
285
+ btn.classList.add('copied');
286
+
287
+ // 2์ดˆ ํ›„ ์›๋ž˜ ์ƒํƒœ๋กœ ๋ณต์›
288
+ setTimeout(() => {
289
+ btn.textContent = originalText;
290
+ btn.classList.remove('copied');
291
+ }, 2000);
292
+ }).catch(err => {
293
+ console.error('๋ณต์‚ฌ ์‹คํŒจ:', err);
294
+ alert('๋ณต์‚ฌ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ๋ณต์‚ฌํ•ด์ฃผ์„ธ์š”.');
295
+ });
296
+ }
297
+
298
+ // URL ์นด๋“œ ํด๋ฆญ ์‹œ ๋งํฌ ์—ด๊ธฐ (๋ณต์‚ฌ ๋ฒ„ํŠผ ์ œ์™ธ)
299
+ document.querySelectorAll('.url-card').forEach(card => {
300
+ card.addEventListener('click', (e) => {
301
+ if (!e.target.classList.contains('copy-btn')) {
302
+ const link = card.querySelector('.url-link');
303
+ if (link) {
304
+ window.open(link.href, '_blank');
305
+ }
306
+ }
307
+ });
308
+ });
309
+ </script>
310
+ </body>
311
+ </html>