sky-meilin commited on
Commit
5cf675c
·
verified ·
1 Parent(s): accbfa2

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +694 -19
index.html CHANGED
@@ -1,19 +1,694 @@
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="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Hugging Face Repository Downloader</title>
7
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
8
+ <style>
9
+ :root {
10
+ --primary-color: #ffd23f;
11
+ --secondary-color: #2e2e2e;
12
+ --accent-color: #ff6b6b;
13
+ --text-color: #333;
14
+ --light-gray: #f5f5f5;
15
+ --dark-gray: #777;
16
+ --success-color: #4caf50;
17
+ --error-color: #f44336;
18
+ }
19
+
20
+ * {
21
+ margin: 0;
22
+ padding: 0;
23
+ box-sizing: border-box;
24
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
25
+ }
26
+
27
+ body {
28
+ background-color: var(--light-gray);
29
+ color: var(--text-color);
30
+ line-height: 1.6;
31
+ padding: 20px;
32
+ min-height: 100vh;
33
+ display: flex;
34
+ flex-direction: column;
35
+ }
36
+
37
+ header {
38
+ background-color: var(--secondary-color);
39
+ color: white;
40
+ padding: 1rem 2rem;
41
+ border-radius: 10px;
42
+ margin-bottom: 2rem;
43
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
44
+ display: flex;
45
+ justify-content: space-between;
46
+ align-items: center;
47
+ }
48
+
49
+ .logo {
50
+ display: flex;
51
+ align-items: center;
52
+ gap: 10px;
53
+ text-decoration: none;
54
+ color: white;
55
+ }
56
+
57
+ .logo i {
58
+ font-size: 1.5rem;
59
+ color: var(--primary-color);
60
+ }
61
+
62
+ .logo span {
63
+ font-weight: bold;
64
+ font-size: 1.2rem;
65
+ }
66
+
67
+ .anycoder-link {
68
+ color: var(--primary-color);
69
+ text-decoration: none;
70
+ font-weight: 500;
71
+ transition: opacity 0.3s;
72
+ }
73
+
74
+ .anycoder-link:hover {
75
+ opacity: 0.8;
76
+ }
77
+
78
+ .container {
79
+ max-width: 1200px;
80
+ margin: 0 auto;
81
+ width: 100%;
82
+ flex: 1;
83
+ }
84
+
85
+ h1 {
86
+ color: var(--secondary-color);
87
+ margin-bottom: 1.5rem;
88
+ font-size: 2rem;
89
+ text-align: center;
90
+ }
91
+
92
+ .card {
93
+ background-color: white;
94
+ border-radius: 15px;
95
+ padding: 2rem;
96
+ box-shadow: 0 6px 20px rgba(0, 0, 0, 0.08);
97
+ margin-bottom: 2rem;
98
+ transition: transform 0.3s, box-shadow 0.3s;
99
+ }
100
+
101
+ .card:hover {
102
+ transform: translateY(-5px);
103
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
104
+ }
105
+
106
+ .repo-info {
107
+ display: flex;
108
+ flex-direction: column;
109
+ gap: 1rem;
110
+ margin-bottom: 2rem;
111
+ }
112
+
113
+ .repo-header {
114
+ display: flex;
115
+ justify-content: space-between;
116
+ align-items: center;
117
+ margin-bottom: 1rem;
118
+ }
119
+
120
+ .repo-title {
121
+ font-size: 1.5rem;
122
+ color: var(--secondary-color);
123
+ font-weight: 600;
124
+ }
125
+
126
+ .repo-url {
127
+ color: var(--accent-color);
128
+ text-decoration: none;
129
+ font-size: 0.9rem;
130
+ word-break: break-all;
131
+ }
132
+
133
+ .repo-description {
134
+ color: var(--dark-gray);
135
+ margin-bottom: 1.5rem;
136
+ }
137
+
138
+ .commands-section {
139
+ margin-top: 2rem;
140
+ }
141
+
142
+ .command-card {
143
+ background-color: var(--light-gray);
144
+ border-left: 4px solid var(--primary-color);
145
+ padding: 1rem 1.5rem;
146
+ margin-bottom: 1rem;
147
+ border-radius: 0 8px 8px 0;
148
+ display: flex;
149
+ align-items: center;
150
+ gap: 1rem;
151
+ }
152
+
153
+ .command-card i {
154
+ color: var(--primary-color);
155
+ font-size: 1.2rem;
156
+ }
157
+
158
+ .command-card pre {
159
+ margin: 0;
160
+ font-family: 'Courier New', Courier, monospace;
161
+ font-size: 0.9rem;
162
+ color: var(--secondary-color);
163
+ white-space: pre-wrap;
164
+ word-break: break-all;
165
+ }
166
+
167
+ .btn {
168
+ display: inline-block;
169
+ padding: 0.8rem 1.5rem;
170
+ background-color: var(--primary-color);
171
+ color: var(--secondary-color);
172
+ border: none;
173
+ border-radius: 8px;
174
+ font-weight: 600;
175
+ cursor: pointer;
176
+ transition: all 0.3s;
177
+ text-align: center;
178
+ text-decoration: none;
179
+ font-size: 1rem;
180
+ }
181
+
182
+ .btn:hover {
183
+ background-color: #e6b800;
184
+ transform: translateY(-2px);
185
+ }
186
+
187
+ .btn:active {
188
+ transform: translateY(0);
189
+ }
190
+
191
+ .btn-secondary {
192
+ background-color: var(--light-gray);
193
+ color: var(--secondary-color);
194
+ }
195
+
196
+ .btn-secondary:hover {
197
+ background-color: #e0e0e0;
198
+ }
199
+
200
+ .btn-group {
201
+ display: flex;
202
+ gap: 1rem;
203
+ flex-wrap: wrap;
204
+ justify-content: center;
205
+ }
206
+
207
+ .output-section {
208
+ margin-top: 2rem;
209
+ }
210
+
211
+ .output-card {
212
+ background-color: var(--secondary-color);
213
+ color: white;
214
+ border-radius: 10px;
215
+ padding: 1.5rem;
216
+ min-height: 200px;
217
+ position: relative;
218
+ }
219
+
220
+ .output-header {
221
+ display: flex;
222
+ justify-content: space-between;
223
+ align-items: center;
224
+ margin-bottom: 1rem;
225
+ }
226
+
227
+ .output-title {
228
+ font-weight: 600;
229
+ }
230
+
231
+ .output-actions {
232
+ display: flex;
233
+ gap: 0.5rem;
234
+ }
235
+
236
+ .output-btn {
237
+ background: none;
238
+ border: none;
239
+ color: white;
240
+ cursor: pointer;
241
+ padding: 0.3rem 0.6rem;
242
+ border-radius: 4px;
243
+ transition: background-color 0.3s;
244
+ }
245
+
246
+ .output-btn:hover {
247
+ background-color: rgba(255, 255, 255, 0.1);
248
+ }
249
+
250
+ #output {
251
+ font-family: monospace;
252
+ white-space: pre-wrap;
253
+ overflow-y: auto;
254
+ max-height: 300px;
255
+ padding: 1rem;
256
+ background-color: rgba(255, 255, 255, 0.05);
257
+ border-radius: 5px;
258
+ line-height: 1.5;
259
+ }
260
+
261
+ .status {
262
+ display: inline-block;
263
+ padding: 0.3rem 0.6rem;
264
+ border-radius: 4px;
265
+ font-size: 0.8rem;
266
+ font-weight: 600;
267
+ margin-left: 1rem;
268
+ }
269
+
270
+ .status.waiting {
271
+ background-color: var(--dark-gray);
272
+ color: white;
273
+ }
274
+
275
+ .status.running {
276
+ background-color: var(--primary-color);
277
+ color: var(--secondary-color);
278
+ }
279
+
280
+ .status.success {
281
+ background-color: var(--success-color);
282
+ color: white;
283
+ }
284
+
285
+ .status.error {
286
+ background-color: var(--error-color);
287
+ color: white;
288
+ }
289
+
290
+ .progress-container {
291
+ width: 100%;
292
+ background-color: rgba(255, 255, 255, 0.2);
293
+ border-radius: 5px;
294
+ margin-top: 1rem;
295
+ overflow: hidden;
296
+ }
297
+
298
+ .progress-bar {
299
+ height: 10px;
300
+ background-color: var(--primary-color);
301
+ width: 0%;
302
+ transition: width 0.3s;
303
+ }
304
+
305
+ .instructions {
306
+ background-color: #e3f2fd;
307
+ border-left: 4px solid #2196f3;
308
+ padding: 1rem;
309
+ border-radius: 0 8px 8px 0;
310
+ margin-top: 2rem;
311
+ }
312
+
313
+ .instructions h3 {
314
+ color: #1976d2;
315
+ margin-bottom: 0.5rem;
316
+ }
317
+
318
+ .instructions ul {
319
+ margin-left: 1.5rem;
320
+ }
321
+
322
+ .instructions li {
323
+ margin-bottom: 0.5rem;
324
+ }
325
+
326
+ @media (max-width: 768px) {
327
+ header {
328
+ flex-direction: column;
329
+ gap: 1rem;
330
+ text-align: center;
331
+ }
332
+
333
+ .repo-header {
334
+ flex-direction: column;
335
+ align-items: flex-start;
336
+ gap: 0.5rem;
337
+ }
338
+
339
+ .btn-group {
340
+ flex-direction: column;
341
+ align-items: stretch;
342
+ }
343
+
344
+ .command-card {
345
+ flex-direction: column;
346
+ align-items: flex-start;
347
+ }
348
+ }
349
+
350
+ .tooltip {
351
+ position: relative;
352
+ display: inline-block;
353
+ }
354
+
355
+ .tooltip .tooltiptext {
356
+ visibility: hidden;
357
+ width: 200px;
358
+ background-color: #555;
359
+ color: #fff;
360
+ text-align: center;
361
+ border-radius: 6px;
362
+ padding: 5px;
363
+ position: absolute;
364
+ z-index: 1;
365
+ bottom: 125%;
366
+ left: 50%;
367
+ margin-left: -100px;
368
+ opacity: 0;
369
+ transition: opacity 0.3s;
370
+ font-size: 0.8rem;
371
+ }
372
+
373
+ .tooltip:hover .tooltiptext {
374
+ visibility: visible;
375
+ opacity: 1;
376
+ }
377
+ </style>
378
+ </head>
379
+ <body>
380
+ <header>
381
+ <a href="#" class="logo">
382
+ <i class="fas fa-download"></i>
383
+ <span>HF Repository Downloader</span>
384
+ </a>
385
+ <a href="https://huggingface.co/spaces/akhaliq/anycoder" class="anycoder-link" target="_blank">
386
+ Built with anycoder
387
+ </a>
388
+ </header>
389
+
390
+ <div class="container">
391
+ <h1>Download & Clone Repository</h1>
392
+
393
+ <div class="card">
394
+ <div class="repo-info">
395
+ <div class="repo-header">
396
+ <div>
397
+ <div class="repo-title">multimodalart/wan-2-2-first-last-frame</div>
398
+ <a href="https://huggingface.co/spaces/multimodalart/wan-2-2-first-last-frame" class="repo-url" target="_blank">
399
+ https://huggingface.co/spaces/multimodalart/wan-2-2-first-last-frame
400
+ </a>
401
+ </div>
402
+ <span class="status waiting" id="status">Waiting</span>
403
+ </div>
404
+
405
+ <div class="repo-description">
406
+ This repository contains models and code for the WAN-2-2 First Last Frame project.
407
+ It includes tools for processing video frames and generating outputs.
408
+ </div>
409
+ </div>
410
+
411
+ <div class="commands-section">
412
+ <h2>Available Commands</h2>
413
+
414
+ <div class="command-card">
415
+ <i class="fas fa-cloud-download-alt"></i>
416
+ <div>
417
+ <strong>Download with Hugging Face CLI:</strong>
418
+ <pre id="command1">hf download multimodalart/wan-2-2-first-last-frame --repo-type=space</pre>
419
+ </div>
420
+ <button class="btn btn-secondary" onclick="copyToClipboard('command1')">
421
+ <i class="fas fa-copy"></i> Copy
422
+ </button>
423
+ </div>
424
+
425
+ <div class="command-card">
426
+ <i class="fas fa-code-branch"></i>
427
+ <div>
428
+ <strong>Clone with Git (LFS skipped):</strong>
429
+ <pre id="command2">GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/spaces/multimodalart/wan-2-2-first-last-frame</pre>
430
+ </div>
431
+ <button class="btn btn-secondary" onclick="copyToClipboard('command2')">
432
+ <i class="fas fa-copy"></i> Copy
433
+ </button>
434
+ </div>
435
+
436
+ <div class="command-card">
437
+ <i class="fas fa-terminal"></i>
438
+ <div>
439
+ <strong>Install Hugging Face CLI:</strong>
440
+ <pre id="command3">curl -LsSf https://hf.co/cli/install.sh | bash</pre>
441
+ </div>
442
+ <button class="btn btn-secondary" onclick="copyToClipboard('command3')">
443
+ <i class="fas fa-copy"></i> Copy
444
+ </button>
445
+ </div>
446
+
447
+ <div class="command-card">
448
+ <i class="fas fa-cog"></i>
449
+ <div>
450
+ <strong>Alternative CLI Install:</strong>
451
+ <pre id="command4">https://hf.co/cli/install.sh</pre>
452
+ </div>
453
+ <button class="btn btn-secondary" onclick="copyToClipboard('command4')">
454
+ <i class="fas fa-copy"></i> Copy
455
+ </button>
456
+ </div>
457
+
458
+ <div class="command-card">
459
+ <i class="fas fa-git-alt"></i>
460
+ <div>
461
+ <strong>Git Xet Install:</strong>
462
+ <pre id="command5">git-xet install</pre>
463
+ </div>
464
+ <button class="btn btn-secondary" onclick="copyToClipboard('command5')">
465
+ <i class="fas fa-copy"></i> Copy
466
+ </button>
467
+ </div>
468
+ </div>
469
+
470
+ <div class="btn-group">
471
+ <button class="btn" onclick="executeCommand(1)">
472
+ <i class="fas fa-play"></i> Run Download
473
+ </button>
474
+ <button class="btn" onclick="executeCommand(2)">
475
+ <i class="fas fa-play"></i> Run Clone
476
+ </button>
477
+ <button class="btn btn-secondary" onclick="clearOutput()">
478
+ <i class="fas fa-eraser"></i> Clear Output
479
+ </button>
480
+ </div>
481
+ </div>
482
+
483
+ <div class="output-section">
484
+ <div class="card">
485
+ <h2>Execution Output</h2>
486
+ <div class="output-card">
487
+ <div class="output-header">
488
+ <div class="output-title">Command Output</div>
489
+ <div class="output-actions">
490
+ <button class="output-btn tooltip" onclick="clearOutput()">
491
+ <i class="fas fa-trash"></i>
492
+ <span class="tooltiptext">Clear output</span>
493
+ </button>
494
+ <button class="output-btn tooltip" onclick="copyOutput()">
495
+ <i class="fas fa-copy"></i>
496
+ <span class="tooltiptext">Copy output</span>
497
+ </button>
498
+ </div>
499
+ </div>
500
+ <div class="progress-container" id="progressContainer" style="display: none;">
501
+ <div class="progress-bar" id="progressBar"></div>
502
+ </div>
503
+ <div id="output">Output will appear here when you execute a command...</div>
504
+ </div>
505
+ </div>
506
+ </div>
507
+
508
+ <div class="instructions">
509
+ <h3>Instructions</h3>
510
+ <ul>
511
+ <li>Click on any command's "Copy" button to copy it to your clipboard</li>
512
+ <li>Use the "Run" buttons to execute commands directly (simulated in this web interface)</li>
513
+ <li>The output will show the progress and results of the command execution</li>
514
+ <li>For actual execution, you would need to run these commands in your terminal</li>
515
+ <li>Make sure you have the required tools installed (git, hf cli, etc.)</li>
516
+ </ul>
517
+ </div>
518
+ </div>
519
+
520
+ <script>
521
+ let currentCommand = 0;
522
+ let isRunning = false;
523
+
524
+ function copyToClipboard(elementId) {
525
+ const commandElement = document.getElementById(elementId);
526
+ const text = commandElement.textContent;
527
+
528
+ navigator.clipboard.writeText(text).then(() => {
529
+ // Show feedback
530
+ const originalText = commandElement.textContent;
531
+ commandElement.textContent = 'Copied to clipboard!';
532
+ setTimeout(() => {
533
+ commandElement.textContent = originalText;
534
+ }, 2000);
535
+ }).catch(err => {
536
+ console.error('Failed to copy: ', err);
537
+ });
538
+ }
539
+
540
+ function copyOutput() {
541
+ const output = document.getElementById('output').textContent;
542
+ navigator.clipboard.writeText(output).then(() => {
543
+ showNotification('Output copied to clipboard!');
544
+ });
545
+ }
546
+
547
+ function clearOutput() {
548
+ document.getElementById('output').textContent = 'Output will appear here when you execute a command...';
549
+ document.getElementById('progressContainer').style.display = 'none';
550
+ document.getElementById('progressBar').style.width = '0%';
551
+ updateStatus('waiting', 'Waiting');
552
+ }
553
+
554
+ function executeCommand(commandNumber) {
555
+ if (isRunning) {
556
+ addOutput('\nAnother command is already running. Please wait...');
557
+ return;
558
+ }
559
+
560
+ isRunning = true;
561
+ currentCommand = commandNumber;
562
+ const output = document.getElementById('output');
563
+ const progressContainer = document.getElementById('progressContainer');
564
+ const progressBar = document.getElementById('progressBar');
565
+
566
+ output.textContent = '';
567
+ progressContainer.style.display = 'block';
568
+ updateStatus('running', 'Running');
569
+
570
+ // Simulate command execution
571
+ let progress = 0;
572
+ const interval = setInterval(() => {
573
+ progress += Math.random() * 5;
574
+ if (progress > 90) {
575
+ progress = 90;
576
+ }
577
+ progressBar.style.width = progress + '%';
578
+
579
+ if (progress >= 90) {
580
+ clearInterval(interval);
581
+ setTimeout(() => {
582
+ progressBar.style.width = '100%';
583
+ simulateCommandOutput(commandNumber);
584
+ updateStatus('success', 'Completed');
585
+ isRunning = false;
586
+ }, 1000);
587
+ }
588
+ }, 300);
589
+ }
590
+
591
+ function simulateCommandOutput(commandNumber) {
592
+ const output = document.getElementById('output');
593
+ const commands = [
594
+ 'hf download multimodalart/wan-2-2-first-last-frame --repo-type=space',
595
+ 'GIT_LFS_SKIP_SMUDGE=1 git clone https://huggingface.co/spaces/multimodalart/wan-2-2-first-last-frame',
596
+ 'curl -LsSf https://hf.co/cli/install.sh | bash',
597
+ 'https://hf.co/cli/install.sh',
598
+ 'git-xet install'
599
+ ];
600
+
601
+ const command = commands[commandNumber - 1];
602
+
603
+ addOutput(`$ ${command}\n\n`);
604
+
605
+ // Simulate different outputs based on command
606
+ switch(commandNumber) {
607
+ case 1:
608
+ addOutput('Fetching repository information...\n', 500);
609
+ addOutput('Downloading files (this may take a while)...\n', 1000);
610
+ addOutput(' - file1.pt: 100%\n', 800);
611
+ addOutput(' - file2.json: 100%\n', 800);
612
+ addOutput(' - config.yaml: 100%\n', 800);
613
+ addOutput('\nDownload completed successfully!\n', 500);
614
+ addOutput('Files saved to: ./wan-2-2-first-last-frame\n', 500);
615
+ break;
616
+
617
+ case 2:
618
+ addOutput('Cloning into \'wan-2-2-first-last-frame\'...\n', 500);
619
+ addOutput('remote: Enumerating objects: 45, done.\n', 800);
620
+ addOutput('remote: Counting objects: 100% (45/45), done.\n', 800);
621
+ addOutput('remote: Compressing objects: 100% (32/32), done.\n', 800);
622
+ addOutput('remote: Total 45 (delta 13), reused 40 (delta 10), pack-reused 0\n', 800);
623
+ addOutput('Receiving objects: 100% (45/45), 12.45 MiB | 8.23 MiB/s, done.\n', 800);
624
+ addOutput('Resolving deltas: 100% (13/13), done.\n', 500);
625
+ addOutput('\nRepository cloned successfully!\n', 500);
626
+ break;
627
+
628
+ case 3:
629
+ addOutput('Downloading Hugging Face CLI installer...\n', 500);
630
+ addOutput('Installing to /usr/local/bin/huggingface-cli\n', 1000);
631
+ addOutput('Installation completed successfully!\n', 500);
632
+ addOutput('You can now use: hf --help\n', 500);
633
+ break;
634
+
635
+ case 4:
636
+ addOutput('This is a direct link to the installer script.\n', 500);
637
+ addOutput('To install, run: curl -LsSf https://hf.co/cli/install.sh | bash\n', 500);
638
+ break;
639
+
640
+ case 5:
641
+ addOutput('Installing git-xet...\n', 500);
642
+ addOutput('Configuring git extensions...\n', 1000);
643
+ addOutput('git-xet installed successfully!\n', 500);
644
+ break;
645
+ }
646
+ }
647
+
648
+ function addOutput(text, delay = 0) {
649
+ const output = document.getElementById('output');
650
+ setTimeout(() => {
651
+ output.textContent += text;
652
+ output.scrollTop = output.scrollHeight;
653
+ }, delay);
654
+ }
655
+
656
+ function updateStatus(type, text) {
657
+ const statusElement = document.getElementById('status');
658
+ statusElement.className = 'status ' + type;
659
+ statusElement.textContent = text;
660
+ }
661
+
662
+ function showNotification(message) {
663
+ // Simple notification
664
+ const notification = document.createElement('div');
665
+ notification.style.position = 'fixed';
666
+ notification.style.bottom = '20px';
667
+ notification.style.right = '20px';
668
+ notification.style.padding = '10px 20px';
669
+ notification.style.backgroundColor = 'rgba(0, 0, 0, 0.8)';
670
+ notification.style.color = 'white';
671
+ notification.style.borderRadius = '5px';
672
+ notification.style.zIndex = '1000';
673
+ notification.style.boxShadow = '0 2px 10px rgba(0, 0, 0, 0.2)';
674
+ notification.textContent = message;
675
+
676
+ document.body.appendChild(notification);
677
+
678
+ setTimeout(() => {
679
+ notification.remove();
680
+ }, 3000);
681
+ }
682
+
683
+ // Initialize
684
+ document.addEventListener('DOMContentLoaded', () => {
685
+ // Add some initial information
686
+ const output = document.getElementById('output');
687
+ output.textContent = 'Welcome to the Hugging Face Repository Downloader!\n' +
688
+ 'Select a command to execute or copy it to run in your terminal.\n\n' +
689
+ 'Note: This is a web simulation. For actual execution,\n' +
690
+ 'you need to run these commands in your terminal.';
691
+ });
692
+ </script>
693
+ </body>
694
+ </html>