Spaces:
Configuration error
Configuration error
Upload 5 files
Browse files- .gitattributes +2 -0
- README.md +218 -7
- bg.png +3 -0
- index.html +195 -19
- logo.png +0 -0
- scr.png +3 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
bg.png filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
scr.png filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -1,10 +1,221 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
---
|
| 2 |
-
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 8 |
---
|
| 9 |
|
| 10 |
-
|
|
|
|
| 1 |
+
# ☁️ pockit CLI
|
| 2 |
+
|
| 3 |
+
<p align="center">
|
| 4 |
+
<img src="scr.png" width="650" alt="pockit CLI Screenshot" />
|
| 5 |
+
</p>
|
| 6 |
+
|
| 7 |
+
## 🚀 Welcome to pockit
|
| 8 |
+
|
| 9 |
+
Welcome to **pockit CLI**, a modern command-line tool built specifically for developers who want fast, direct access to their cloud files — without using a website.
|
| 10 |
+
|
| 11 |
+
While the web platform is available at **[https://pockit-cloud.github.io/home](https://pockit-cloud.github.io/home)**, pockit CLI is designed for users who prefer working entirely in the terminal. It provides the same core file management capabilities in a faster, scriptable, and development-friendly environment.
|
| 12 |
+
|
| 13 |
+
pockit lets you manage your storage directly from the command line. Upload, download, organize, delete, and synchronize files using simple commands, all inside a clean and interactive CLI experience.
|
| 14 |
+
|
| 15 |
+
This tool is designed for developers, power users, and anyone who wants efficient cloud access without opening a browser.
|
| 16 |
+
|
| 17 |
+
---
|
| 18 |
+
|
| 19 |
+
## 🎯 Purpose of pockit
|
| 20 |
+
|
| 21 |
+
pockit exists to:
|
| 22 |
+
|
| 23 |
+
* Provide direct cloud file access from the terminal
|
| 24 |
+
* Offer an alternative to using the web interface
|
| 25 |
+
* Speed up developer workflows
|
| 26 |
+
* Enable automation and scripting
|
| 27 |
+
* Deliver a clean, interactive CLI experience
|
| 28 |
+
* Support real-time folder synchronization
|
| 29 |
+
|
| 30 |
+
It is built to integrate naturally into development environments, CI workflows, and everyday terminal usage.
|
| 31 |
+
|
| 32 |
+
---
|
| 33 |
+
|
| 34 |
+
## ✨ Key Features
|
| 35 |
+
|
| 36 |
+
pockit combines powerful functionality with a polished interface.
|
| 37 |
+
|
| 38 |
+
### 🔐 Secure Session Handling
|
| 39 |
+
|
| 40 |
+
* Interactive login system
|
| 41 |
+
* Local session caching for convenience
|
| 42 |
+
* Automatic reuse of saved sessions
|
| 43 |
+
* Secure storage of credentials
|
| 44 |
+
* Manual logout support
|
| 45 |
+
|
| 46 |
+
### 📂 Full File Management
|
| 47 |
+
|
| 48 |
+
* List all files
|
| 49 |
+
* Upload local files
|
| 50 |
+
* Download files interactively
|
| 51 |
+
* Delete files safely with confirmation
|
| 52 |
+
* Change account password
|
| 53 |
+
|
| 54 |
+
### ✨ Magic Sync Mode
|
| 55 |
+
|
| 56 |
+
* Continuous two-way synchronization
|
| 57 |
+
* Detects new, modified, and removed files
|
| 58 |
+
* Keeps a local folder and cloud storage identical
|
| 59 |
+
* Runs until manually stopped
|
| 60 |
+
* Cross-platform support
|
| 61 |
+
|
| 62 |
+
### 🎨 Modern Terminal Experience
|
| 63 |
+
|
| 64 |
+
* Styled output using Rich
|
| 65 |
+
* Interactive prompts
|
| 66 |
+
* Spinners and progress bars
|
| 67 |
+
* Clean tables and panels
|
| 68 |
+
* Color-coded status messages
|
| 69 |
+
|
| 70 |
+
---
|
| 71 |
+
|
| 72 |
+
## 🖥️ Commands
|
| 73 |
+
|
| 74 |
+
### `pockit login`
|
| 75 |
+
|
| 76 |
+
Start a secure session.
|
| 77 |
+
|
| 78 |
+
### `pockit logout`
|
| 79 |
+
|
| 80 |
+
Clear saved session data.
|
| 81 |
+
|
| 82 |
+
### `pockit ls`
|
| 83 |
+
|
| 84 |
+
List all files in your cloud storage.
|
| 85 |
+
|
| 86 |
+
### `pockit upload`
|
| 87 |
+
|
| 88 |
+
Upload a local file to the cloud.
|
| 89 |
+
|
| 90 |
+
* Interactive file selection
|
| 91 |
+
* Optional rename
|
| 92 |
+
* Progress feedback
|
| 93 |
+
|
| 94 |
+
### `pockit download`
|
| 95 |
+
|
| 96 |
+
Download a selected cloud file.
|
| 97 |
+
|
| 98 |
+
* Interactive selection
|
| 99 |
+
* Choose save location
|
| 100 |
+
* Validated before saving
|
| 101 |
+
|
| 102 |
+
### `pockit delete`
|
| 103 |
+
|
| 104 |
+
Remove a file from cloud storage.
|
| 105 |
+
|
| 106 |
+
* Requires confirmation
|
| 107 |
+
* Prevents accidental deletion
|
| 108 |
+
|
| 109 |
+
### `pockit chpasswd`
|
| 110 |
+
|
| 111 |
+
Change your account password securely.
|
| 112 |
+
|
| 113 |
+
### `pockit magicsync`
|
| 114 |
+
|
| 115 |
+
Enable continuous synchronization between a local folder and your cloud storage.
|
| 116 |
+
|
| 117 |
+
* Automatic updates both ways
|
| 118 |
+
* Detects changes using file hashing
|
| 119 |
+
* Stop anytime with `Ctrl + C`
|
| 120 |
+
|
| 121 |
+
---
|
| 122 |
+
|
| 123 |
+
## 📁 Magic Sync Folder
|
| 124 |
+
|
| 125 |
+
Magic Sync uses a dedicated folder depending on your operating system:
|
| 126 |
+
|
| 127 |
+
* **macOS & Windows:** Desktop → `Pockit-magicSync`
|
| 128 |
+
* **Linux:** Uses system desktop directory if available, otherwise creates a folder in your home directory.
|
| 129 |
+
|
| 130 |
+
This ensures a consistent sync location across platforms.
|
| 131 |
+
|
| 132 |
---
|
| 133 |
+
|
| 134 |
+
## 🔄 How Magic Sync Works
|
| 135 |
+
|
| 136 |
+
Magic Sync continuously monitors both local and cloud files.
|
| 137 |
+
|
| 138 |
+
It automatically:
|
| 139 |
+
|
| 140 |
+
* Detects new files
|
| 141 |
+
* Detects modified files
|
| 142 |
+
* Detects deleted files
|
| 143 |
+
* Applies updates in both directions
|
| 144 |
+
* Keeps environments perfectly aligned
|
| 145 |
+
|
| 146 |
+
This enables seamless development workflows and instant synchronization.
|
| 147 |
+
|
| 148 |
+
---
|
| 149 |
+
|
| 150 |
+
## 🏗️ Design Philosophy
|
| 151 |
+
|
| 152 |
+
pockit is built with:
|
| 153 |
+
|
| 154 |
+
* Developer-first thinking
|
| 155 |
+
* Clean command structure
|
| 156 |
+
* Cross-platform compatibility
|
| 157 |
+
* Automation-friendly workflows
|
| 158 |
+
* Interactive usability
|
| 159 |
+
* Lightweight performance
|
| 160 |
+
|
| 161 |
+
The goal is to make cloud file management fast, intuitive, and terminal-native.
|
| 162 |
+
|
| 163 |
+
---
|
| 164 |
+
|
| 165 |
+
## 🚀 Installation
|
| 166 |
+
|
| 167 |
+
pockit is available on **PyPI** and can be installed directly with:
|
| 168 |
+
|
| 169 |
+
```bash
|
| 170 |
+
pip install pockit
|
| 171 |
+
```
|
| 172 |
+
|
| 173 |
+
After installation, run it using:
|
| 174 |
+
|
| 175 |
+
```bash
|
| 176 |
+
pockit <command>
|
| 177 |
+
```
|
| 178 |
+
|
| 179 |
+
Example workflow:
|
| 180 |
+
|
| 181 |
+
```bash
|
| 182 |
+
pockit login
|
| 183 |
+
pockit upload
|
| 184 |
+
pockit ls
|
| 185 |
+
pockit download
|
| 186 |
+
pockit magicsync
|
| 187 |
+
```
|
| 188 |
+
|
| 189 |
+
---
|
| 190 |
+
|
| 191 |
+
## 🔒 Security Overview
|
| 192 |
+
|
| 193 |
+
* Credentials are stored locally with restricted permissions
|
| 194 |
+
* Authentication required for all file operations
|
| 195 |
+
* Deletions require confirmation
|
| 196 |
+
* Downloaded files are validated
|
| 197 |
+
* Session management is user-controlled
|
| 198 |
+
|
| 199 |
+
---
|
| 200 |
+
|
| 201 |
+
## 🏁 Stopping Magic Sync
|
| 202 |
+
|
| 203 |
+
While Magic Sync is running, press:
|
| 204 |
+
|
| 205 |
+
```
|
| 206 |
+
Ctrl + C
|
| 207 |
+
```
|
| 208 |
+
|
| 209 |
+
to stop it safely.
|
| 210 |
+
|
| 211 |
+
---
|
| 212 |
+
|
| 213 |
+
## ☁️ Conclusion
|
| 214 |
+
|
| 215 |
+
pockit CLI is a developer-focused cloud storage tool designed to provide fast, direct file access from the terminal — without relying on a website.
|
| 216 |
+
|
| 217 |
+
It streamlines workflows, supports real-time synchronization, and delivers a modern CLI experience built for productivity.
|
| 218 |
+
|
| 219 |
---
|
| 220 |
|
| 221 |
+
**Built for developers. Built for the terminal. ☁️**
|
bg.png
ADDED
|
Git LFS Details
|
index.html
CHANGED
|
@@ -1,19 +1,195 @@
|
|
| 1 |
-
<!
|
| 2 |
-
<html>
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
| 13 |
-
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
| 17 |
-
|
| 18 |
-
|
| 19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 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>Documentation</title>
|
| 7 |
+
|
| 8 |
+
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600&display=swap" rel="stylesheet">
|
| 9 |
+
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
| 10 |
+
|
| 11 |
+
<style>
|
| 12 |
+
*{
|
| 13 |
+
margin:0;
|
| 14 |
+
padding:0;
|
| 15 |
+
box-sizing:border-box;
|
| 16 |
+
font-family:'Poppins',sans-serif;
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
body{
|
| 20 |
+
background:#000;
|
| 21 |
+
overflow:hidden; /* Prevent whole page scrolling */
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
.background{
|
| 25 |
+
position:fixed;
|
| 26 |
+
inset:0;
|
| 27 |
+
background-image:url('bg.png');
|
| 28 |
+
background-size:cover;
|
| 29 |
+
background-position:center;
|
| 30 |
+
z-index:-1;
|
| 31 |
+
}
|
| 32 |
+
|
| 33 |
+
section{
|
| 34 |
+
display:flex;
|
| 35 |
+
height:100vh;
|
| 36 |
+
width:100%;
|
| 37 |
+
}
|
| 38 |
+
|
| 39 |
+
.sidebar{
|
| 40 |
+
width:280px;
|
| 41 |
+
backdrop-filter:blur(18px);
|
| 42 |
+
background:rgba(0,0,0,.45);
|
| 43 |
+
border-right:1px solid rgba(255,255,255,.2);
|
| 44 |
+
padding:25px;
|
| 45 |
+
color:#fff;
|
| 46 |
+
overflow-y:auto;
|
| 47 |
+
}
|
| 48 |
+
|
| 49 |
+
.logo{
|
| 50 |
+
margin-bottom:30px;
|
| 51 |
+
}
|
| 52 |
+
|
| 53 |
+
.logo img{
|
| 54 |
+
height:45px;
|
| 55 |
+
}
|
| 56 |
+
|
| 57 |
+
.toc a{
|
| 58 |
+
display:block;
|
| 59 |
+
color:#fff;
|
| 60 |
+
text-decoration:none;
|
| 61 |
+
padding:8px 10px;
|
| 62 |
+
border-radius:8px;
|
| 63 |
+
margin:5px 0;
|
| 64 |
+
font-size:.95em;
|
| 65 |
+
opacity:.75;
|
| 66 |
+
transition:.2s;
|
| 67 |
+
}
|
| 68 |
+
|
| 69 |
+
.toc a:hover{
|
| 70 |
+
background:rgba(255,255,255,.12);
|
| 71 |
+
opacity:1;
|
| 72 |
+
transform:translateX(5px);
|
| 73 |
+
}
|
| 74 |
+
|
| 75 |
+
.toc a.active{
|
| 76 |
+
background:#fff;
|
| 77 |
+
color:#000;
|
| 78 |
+
opacity:1;
|
| 79 |
+
}
|
| 80 |
+
|
| 81 |
+
.content{
|
| 82 |
+
flex:1;
|
| 83 |
+
margin:30px;
|
| 84 |
+
padding:50px; /* Bigger content */
|
| 85 |
+
border-radius:20px;
|
| 86 |
+
backdrop-filter:blur(20px);
|
| 87 |
+
background:rgba(0,0,0,.4);
|
| 88 |
+
color:#fff;
|
| 89 |
+
overflow-y:auto; /* Only content scrolls */
|
| 90 |
+
}
|
| 91 |
+
|
| 92 |
+
.content h1,
|
| 93 |
+
.content h2,
|
| 94 |
+
.content h3{
|
| 95 |
+
margin:25px 0 15px;
|
| 96 |
+
}
|
| 97 |
+
|
| 98 |
+
.content p{
|
| 99 |
+
line-height:1.8em;
|
| 100 |
+
margin:12px 0;
|
| 101 |
+
font-size:1.05em;
|
| 102 |
+
}
|
| 103 |
+
|
| 104 |
+
.content code{
|
| 105 |
+
background:rgba(255,255,255,.1);
|
| 106 |
+
padding:4px 7px;
|
| 107 |
+
border-radius:6px;
|
| 108 |
+
}
|
| 109 |
+
|
| 110 |
+
.content pre{
|
| 111 |
+
background:rgba(255,255,255,.08);
|
| 112 |
+
padding:18px;
|
| 113 |
+
border-radius:12px;
|
| 114 |
+
overflow-x:auto;
|
| 115 |
+
}
|
| 116 |
+
|
| 117 |
+
/* Emoji-safe font stack */
|
| 118 |
+
.content, .sidebar {
|
| 119 |
+
font-family:'Poppins','Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;
|
| 120 |
+
}
|
| 121 |
+
|
| 122 |
+
@media(max-width:900px){
|
| 123 |
+
section{flex-direction:column;}
|
| 124 |
+
.sidebar{width:100%; height:auto;}
|
| 125 |
+
.content{margin:15px; padding:30px;}
|
| 126 |
+
}
|
| 127 |
+
</style>
|
| 128 |
+
</head>
|
| 129 |
+
<body>
|
| 130 |
+
|
| 131 |
+
<div class="background"></div>
|
| 132 |
+
|
| 133 |
+
<section>
|
| 134 |
+
|
| 135 |
+
<div class="sidebar">
|
| 136 |
+
<div class="logo">
|
| 137 |
+
<img src="logo.png" alt="Logo">
|
| 138 |
+
</div>
|
| 139 |
+
<div class="toc" id="toc"></div>
|
| 140 |
+
</div>
|
| 141 |
+
|
| 142 |
+
<div class="content" id="content">Loading documentation...</div>
|
| 143 |
+
|
| 144 |
+
</section>
|
| 145 |
+
|
| 146 |
+
<script>
|
| 147 |
+
function buildTOC(){
|
| 148 |
+
const content=document.getElementById('content');
|
| 149 |
+
const toc=document.getElementById('toc');
|
| 150 |
+
const headings=content.querySelectorAll('h1,h2,h3');
|
| 151 |
+
toc.innerHTML='';
|
| 152 |
+
|
| 153 |
+
headings.forEach(h=>{
|
| 154 |
+
const link=document.createElement('a');
|
| 155 |
+
link.textContent=h.textContent;
|
| 156 |
+
link.href='#'+h.id;
|
| 157 |
+
link.style.marginLeft=(h.tagName==='H2'?12:h.tagName==='H3'?24:0)+'px';
|
| 158 |
+
toc.appendChild(link);
|
| 159 |
+
});
|
| 160 |
+
|
| 161 |
+
window.addEventListener('scroll',()=>{
|
| 162 |
+
let fromTop=content.scrollTop+100;
|
| 163 |
+
headings.forEach(h=>{
|
| 164 |
+
const link=toc.querySelector(`a[href="#${h.id}"]`);
|
| 165 |
+
if(h.offsetTop<=fromTop && h.offsetTop+h.offsetHeight>fromTop){
|
| 166 |
+
link?.classList.add('active');
|
| 167 |
+
}else{
|
| 168 |
+
link?.classList.remove('active');
|
| 169 |
+
}
|
| 170 |
+
});
|
| 171 |
+
});
|
| 172 |
+
}
|
| 173 |
+
|
| 174 |
+
async function loadREADME(){
|
| 175 |
+
try{
|
| 176 |
+
const res=await fetch('README.md');
|
| 177 |
+
const text=await res.text();
|
| 178 |
+
const html=marked.parse(text);
|
| 179 |
+
document.getElementById('content').innerHTML=html;
|
| 180 |
+
|
| 181 |
+
document.querySelectorAll('.content h1, .content h2, .content h3').forEach(h=>{
|
| 182 |
+
h.id=h.textContent.replace(/\s+/g,'-').toLowerCase();
|
| 183 |
+
});
|
| 184 |
+
|
| 185 |
+
buildTOC();
|
| 186 |
+
}catch(e){
|
| 187 |
+
document.getElementById('content').innerHTML='Failed to load README.md';
|
| 188 |
+
}
|
| 189 |
+
}
|
| 190 |
+
|
| 191 |
+
loadREADME();
|
| 192 |
+
</script>
|
| 193 |
+
|
| 194 |
+
</body>
|
| 195 |
+
</html>
|
logo.png
ADDED
|
scr.png
ADDED
|
Git LFS Details
|