Skip to content

Commit

Permalink
update vList(v5.7 24/9/22 8:00)
Browse files Browse the repository at this point in the history
  • Loading branch information
imzlh committed Sep 22, 2024
1 parent c7794de commit 2115d2c
Show file tree
Hide file tree
Showing 99 changed files with 21,097 additions and 2,612 deletions.
101 changes: 85 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,96 @@
![vList5](public/images/favicon.svg)

# vList5-aList
<span style="color: gray">性能与全能兼得!</span>
# vlist5
<span style="color: gray">性能与全能的平衡</span>

全能还好看的文件管理方案<br>
使用Vue构建,直接使用aList作为后端且支持集成<br>
使用Vue构建,与NJS集成<br>
支持超多打开方式,很多好用的小工具

## vList
修改自我的另一个项目https://github.com/imzlh/vList5
![概览](image.png)

## vList x aList
aList支持多种网盘且统一API,而vList支持多种玩法且功能丰富<br>
a+vList > aList + vList!
## 为什么是vList
vList最初就是为了Nginx设计的,经历了4代的积淀已经拥有成熟的方案了<br>
为了并发考虑,我们将大部分功能放在了前端,且对于验证机制使用了SHA1-HMAC,安全可靠<br>
在操作逻辑上,我们向Windows靠拢,右键菜单、Shift多选、拖拽、Explorer...简单易用

## 使用指南
## 项目起源
本来Github上有很多类似的项目了,有的甚至做的比我好,如KodBox<br>
但是本人最近开始返璞归真,想要**在最简单的环境下(光猫)部署网盘服务**<br>
这个环节无法部署Sql服务,装不下Web套装(Nginx+PHP),这时我就在想创建一个vList项目<br>
**vList基于Nginx的功能,100%原生支持**,但是随着功能越来越多fancyIndex已经满足不了需求<br>
于是vList升级到了v5

### 1. 分离部署(推荐)
将vList构建的文件放在一个网页服务器上,将aList分离运行<br>
修改config.ts或者使用环境变量修改API地址,如
## 目前已经完成

VLIST_API=http://demo.org:5244/api/ VLIST_FILE_SERVER=http://demo.org:5244/d/ npm run build
- 强大的打开方式
- 视频
- 音频
- 图片
- 二进制
- 代码/文本
- 字体
- HTML类
- MarkDown编辑
- PS文件(需要打开最大兼容)
- EPub/ TXT书本支持
- 便捷白板
- 终端记录(asciinema)
- ...(欢迎PR或issue)
- 完善的UI
- 手机端
- PC
- Windows式重命名、上传移动
- 动画(正在计划中)
- Vue响应式设计
- 设置
- `getConfig``setConfig`
- 文件操作
- 复制
- 粘贴
- 新建
- 上传
- 预览操作
- 批量操作
- explorer窗格
- 在线编辑
- ...(欢迎PR或issue)
- 额外的支持
- libmedia UI
- PWA应用
- TypeScript化
- 内置缓存
- 拖拽支持

### 2.打包入aList
https://alist.nn.ci/zh/guide/install/source.html<br>
将这个库作为前端文件并构建
## 特殊操作指南
vList支持一些键盘上的快捷方式,包括

- 全局:`Ctrl+R` 激活命令面板,与VSCode的命令面板相似
- 播放器:方向键调节音量和进度,空格和Enter暂停/播放
- 列表:支持许多Explorer的快捷键,如
- F2 F5
- Ctrl+ C / V / X
- 方向键,左右切换父子文件夹,上下键切换同级文件(夹)
- Enter加载文件(夹),但是不会进入文件夹

同时vList支持拖拽导入。拖拽文本是Markdown,有些读取的是URL<br>
因此可以直接插入Muya,VSCode需要自己修改

## 简单正则
vList有一个强大的功能:正则匹配(文件夹下右键 -> 文件夹小工具),帮助你快速筛选文件(夹)执行功能<br>
但是如何编写正则呢?对于小白,只需要知道
- `$` 匹配`$`前面为结尾的文件,如`mkv$`匹配`a.mkv`而不是`a.mkv.ass`
- `[]`框框里填写你想要的格式,如 `a-z` 26个字母 `0-9` 10个数字,在之后添加`+`表示重复多次
举例:匹配所有 数字+mkv格式的文件,如`hello.001.mkv`,正则为`[0-9]+.mkv$`,就选中了

## 安装指南

需要NodeJS和<a href="https://github.com/imzlh/vlist-njs">NJS后端</a><br>
或者可以在release找到预编译的版本

```sh
npm install
npm run build
```

`dist/` 的内容上传到你的Web服务器(nginx),访问即可
2 changes: 1 addition & 1 deletion config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ export const DEFAULT_FILE_ICON = I_File;
export const DEFAULT_DIR_ICON = I_DIR;
export const APP_API = import.meta.env.DEV
? 'http://localhost:5244/api/'
: import.meta.env.VLIST_API || location.protocol + '//' + location.host + '/api/';
: import.meta.env.VLIST_API || location.protocol + '//' + location.host + '/@api/';
export const FILE_PROXY_SERVER = import.meta.env.DEV
? 'http://localhost:5244/d/'
: import.meta.env.VLIST_FILE_SERVER || location.protocol + '//' + location.host + '/d/';
Expand Down
Binary file added image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
57 changes: 53 additions & 4 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,67 @@

<head>
<meta charset="UTF-8">
<link rel="icon" href="/images/favicon.ico">
<link rel="icon" href="image/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Your private cloud, manager&preview your file using Nginx
你的私人高性能云盘,使用Nginx作为后端预览&修改你的文件">
<link rel="apple-touch-icon" href="/images/favicon.ico">
<link rel="mask-icon" href="/images/favicon.ico" color="#ffffff">
<link rel="apple-touch-icon" href="image/favicon.ico">
<link rel="mask-icon" href="image/favicon.ico" color="#ffffff">
<meta name="theme-color" content="#ffffff">
<title>vList5</title>
<script src="./src/init.ts" type="module" defer></script>
</head>

<body tabindex="-1">
<body tabindex="-1" style="position: fixed !important;">
<svg viewBox="0 0 100 100">
<circle class="loader-circle" cx="50" cy="50" r="40" />
<circle cx="50" cy="50" r="40" fill="white"/>
</svg>
<style>
body {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 6rem;
height: 6rem;
}
svg {
width: 100%;
height: 100%;
animation: rotate 2s linear infinite; /* 旋转动画 */
}
.loader-circle {
fill: none;
stroke: #0078d4; /* 圆圈颜色 */
stroke-width: 4;
stroke-linecap: round;
stroke-dasharray: 314;
stroke-dashoffset: 283;
animation: load 3s cubic-bezier(.03,.7,.83,.67) infinite;
}
@keyframes load {
0% {
stroke-dashoffset: 314;
}
45% {
stroke-dashoffset: 10;
} 55%{
stroke-dashoffset: 10;
}
100% {
stroke-dashoffset: -314;
}
}
@keyframes rotate {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
</body>

</html>
32 changes: 18 additions & 14 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,41 +1,45 @@
{
"name": "vlist",
"version": "5.6",
"version": "5.7",
"private": true,
"type": "module",
"scripts": {
"dev": "vite",
"build": "run-p type-check \"build-only {@}\" -- && cp node_modules/libmedia/dist/avplayer/*.avplayer.js dist/assets/ || copy node_modules\\libmedia\\dist\\avplayer\\*.avplayer.js dist/assets/",
"preview": "vite preview",
"build-only": "vite build",
"type-check": "vue-tsc --build --force",
"setup-alist": "curl -L https://github.com/alist-org/alist-web/releases/download/3.36.0/dist.tar.gz | tar xz && cp dist/* public/ -r && mv public/index.html alist.html"
"type-check": "vue-tsc --build --force"
},
"dependencies": {
"@muyajs/core": "^0.0.32",
"@petamoriken/float16": "^3.8.7",
"aplayer-ts": "^2.4.5",
"@tldraw/assets": "^2.4.6",
"@vitejs/plugin-vue": "^5.0.4",
"@vue/tsconfig": "^0.5.1",
"@webtoon/psd": "^0.4.0",
"artplayer": "^5.1.5",
"asciinema-player": "^3.8.0",
"assjs": "^0.1.0",
"cheap": "https://github.com/zhaohappy/cheap.git",
"ini": "^5.0.0",
"jssha": "^3.3.1",
"libmedia": "https://github.com/imzlh/libmedia-es.git",
"libmedia-common": "https://github.com/zhaohappy/common.git",
"libmedia": "https://github.com/zhaohappy/libmedia.git",
"lrc-kit": "^1.1.1",
"marked": "^13.0.3",
"monaco-editor": "^0.50.0",
"react-filerobot-image-editor": "^4.8.1",
"sass": "^1.77.4",
"tldraw": "^2.4.6",
"typescript": "~5.4.0",
"vite": "^5.3.4",
"vite-plugin-pwa": "^0.20.0",
"vue": "^3.4.21",
"vue-tsc": "^2.0.11"
"vue-reader": "^1.2.15",
"vue-tsc": "^2.0.11",
"@types/ini": "^4.1.1"
},
"devDependencies": {
"@types/ebml": "^3.0.5",
"@types/node": "^20.14.11",
"@vitejs/plugin-vue": "^5.0.4",
"@vue/tsconfig": "^0.5.1",
"npm-run-all2": "^6.1.2",
"typescript": "~5.4.0"
"cheap": "https://github.com/zhaohappy/cheap.git",
"libmedia-common": "https://github.com/zhaohappy/common.git",
"npm-run-all2": "^6.1.2"
}
}
File renamed without changes.
Binary file added public/font/GenJyuuGothic-Regular.woff2
Binary file not shown.
Binary file added public/font/Repair-Regular.woff2
Binary file not shown.
10 changes: 10 additions & 0 deletions public/images/app/asciinema.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/app/notes.webp
Binary file not shown.
Binary file added public/images/app/ps.webp
Binary file not shown.
Binary file added public/images/app/text.webp
Binary file not shown.
41 changes: 41 additions & 0 deletions public/images/app/vscode.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added public/images/icon/bangumi.webp
Binary file not shown.
10 changes: 10 additions & 0 deletions public/images/type/cast.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions public/images/type/epub.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 5 additions & 0 deletions public/images/type/vdb.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 2115d2c

Please sign in to comment.