Feature(custom): support avif picture preview

This commit is contained in:
Kuingsmile 2024-07-31 14:14:41 +08:00
parent 26149ad703
commit 630eb03ef5
4 changed files with 63 additions and 60 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@ -21,6 +21,7 @@ export const availableIconList = [
'au',
'avc',
'avi',
'avif',
'avs',
'bak',
'bas',

View File

@ -66,14 +66,15 @@ export function encodeFilePath(filePath: string) {
export const getExtension = (fileName: string) => path.extname(fileName).slice(1)
export const isImage = (fileName: string) =>
['jpg', 'jpeg', 'png', 'gif', 'webp', 'bmp', 'ico', 'svg'].includes(getExtension(fileName))
['jpg', 'jpeg', 'png', 'gif', 'webp', 'bmp', 'ico', 'svg', 'avif'].includes(getExtension(fileName))
export const formatEndpoint = (endpoint: string, sslEnabled: boolean): string =>
!/^https?:\/\//.test(endpoint)
? `${sslEnabled ? 'https' : 'http'}://${endpoint}`
: sslEnabled
? endpoint.replace('http://', 'https://')
: endpoint.replace('https://', 'http://')
export const formatEndpoint = (endpoint: string, sslEnabled: boolean): string => {
const hasProtocol = /^https?:\/\//.test(endpoint)
if (!hasProtocol) {
return `${sslEnabled ? 'https' : 'http'}://${endpoint}`
}
return sslEnabled ? endpoint.replace(/^http:\/\//, 'https://') : endpoint.replace(/^https:\/\//, 'http://')
}
export const trimPath = (path: string) => path.replace(/^\/+|\/+$/g, '').replace(/\/+/g, '/')

View File

@ -1,53 +1,54 @@
# 支持预览的文件格式列表
### 图片
| 格式 | 描述 | 格式 | 描述 |
| :-----------------------------------------------------: | :----------: | :-------------------------------------------------------------: | :----------------: |
| [.bmp](https://en.wikipedia.org/wiki/BMP_file_format) | 位图文件格式 | [.jpeg/.jpg](https://en.wikipedia.org/wiki/JPEG) | 联合照片专家组格式 |
| [.gif](https://en.wikipedia.org/wiki/GIF) | 图形交换格式 | [.png](https://en.wikipedia.org/wiki/Portable_Network_Graphics) | 可移植网络图形格式 |
| [.ico](https://en.wikipedia.org/wiki/ICO_(file_format)) | 图标文件格式 | [.webp](https://developers.google.com/speed/webp/) | WebP格式 |
### 文本
| 格式 | 描述 | 格式 | 描述 |
| :------------: | :-----------------: | :---------------: | :----------------: |
| .bat | 批处理文件 | .java | Java源代码文件 |
| .c | C语言源代码文件 | .js | JavaScript文件 |
| .cmd | Windows命令脚本文件 | .json | JSON文件 |
| .conf | 配置文件 | .log | 日志文件 |
| .config | 配置文件 | .php | PHP源代码文件 |
| .cpp | C++源代码文件 | .prop/.properties | 属性文件 |
| .css | 层叠样式表文件 | .py | Python源代码文件 |
| .csv | 逗号分隔值文件 | .rc | Windows资源文件 |
| .dart | Dart源代码文件 | .sh | Shell脚本文件 |
| .gitattributes | Git属性文件 | .tsv | 制表符分隔值文件 |
| .gitconfig | Git配置文件 | .txt | 纯文本文件 |
| .gitignore | Git忽略文件 | .xml | XML文件 |
| .gitkeep | Git保留文件 | .yaml/.yml | YAML文件 |
| .gitmodules | Git子模块文件 | .yarnrc | Yarn配置文件 |
| .go | Go源代码文件 | LICENSE | 许可证文件 |
| .h | 头文件 | .condarc | Conda配置文件 |
| .hpp | C++头文件 | .md | Markdown文件 |
| .htm/.html | HTML文件 | .jsx/.tsx/.vue | JSX文件等 |
| .applescript | AppleScript脚本文件 | .eslintignore | ESLint忽略文件 |
| .lock | 锁文件 | .ps1 | PowerShell脚本文件 |
### 视频
| 格式 | 描述 | 格式 | 描述 |
| :---: | :-------------------: | :---: | :-----------------------------: |
| .aac | AAC音频文件 | .mpeg | MPEG视频文件 |
| .amv | AMV视频文件 | .mpg | MPEG视频文件 |
| .avi | AVI视频文件 | .mts | AVCHD视频文件 |
| .flac | FLAC音频文件 | .ogg | Ogg Vorbis音频文件 |
| .flv | Flash视频文件 | .ogv | Ogg Theora视频文件 |
| .m2ts | M2TS视频文件 | .vob | DVD视频文件 |
| .m4a | MPEG-4音频文件 | .wav | WAV音频文件 |
| .m4v | MPEG-4视频文件 | .webm | WebM视频文件 |
| .mp3 | MP3音频文件 | .mp4 | MPEG-4视频文件 |
| .mov | QuickTime视频文件 | .3g2 | 3GPP2视频文件 |
| .mp4 | MPEG-4视频文件 | .3gp | 3GPP视频文件 |
| .mxf | MXF视频文件 | .asf | Advanced Systems Format视频文件 |
| .rm | RealMedia视频文件 | .rmvb | RealMedia可变比特率视频文件 |
| .wmv | Windows Media视频文件 | .mkv | Matroska视频文件 |
# 支持预览的文件格式列表
### 图片
| 格式 | 描述 | 格式 | 描述 |
| :---: | :----------: | :--------: | :----------------: |
| .bmp | 位图文件格式 | .jpeg/.jpg | 联合照片专家组格式 |
| .gif | 图形交换格式 | .png | 可移植网络图形格式 |
| .ico | 图标文件格式 | .webp | WebP格式 |
| .svg | 可缩放矢量图 | .avif | AVIF格式 |
### 文本
| 格式 | 描述 | 格式 | 描述 |
| :------------: | :-----------------: | :---------------: | :----------------: |
| .bat | 批处理文件 | .java | Java源代码文件 |
| .c | C语言源代码文件 | .js | JavaScript文件 |
| .cmd | Windows命令脚本文件 | .json | JSON文件 |
| .conf | 配置文件 | .log | 日志文件 |
| .config | 配置文件 | .php | PHP源代码文件 |
| .cpp | C++源代码文件 | .prop/.properties | 属性文件 |
| .css | 层叠样式表文件 | .py | Python源代码文件 |
| .csv | 逗号分隔值文件 | .rc | Windows资源文件 |
| .dart | Dart源代码文件 | .sh | Shell脚本文件 |
| .gitattributes | Git属性文件 | .tsv | 制表符分隔值文件 |
| .gitconfig | Git配置文件 | .txt | 纯文本文件 |
| .gitignore | Git忽略文件 | .xml | XML文件 |
| .gitkeep | Git保留文件 | .yaml/.yml | YAML文件 |
| .gitmodules | Git子模块文件 | .yarnrc | Yarn配置文件 |
| .go | Go源代码文件 | LICENSE | 许可证文件 |
| .h | 头文件 | .condarc | Conda配置文件 |
| .hpp | C++头文件 | .md | Markdown文件 |
| .htm/.html | HTML文件 | .jsx/.tsx/.vue | JSX文件等 |
| .applescript | AppleScript脚本文件 | .eslintignore | ESLint忽略文件 |
| .lock | 锁文件 | .ps1 | PowerShell脚本文件 |
### 视频
| 格式 | 描述 | 格式 | 描述 |
| :---: | :-------------------: | :---: | :-----------------------------: |
| .aac | AAC音频文件 | .mpeg | MPEG视频文件 |
| .amv | AMV视频文件 | .mpg | MPEG视频文件 |
| .avi | AVI视频文件 | .mts | AVCHD视频文件 |
| .flac | FLAC音频文件 | .ogg | Ogg Vorbis音频文件 |
| .flv | Flash视频文件 | .ogv | Ogg Theora视频文件 |
| .m2ts | M2TS视频文件 | .vob | DVD视频文件 |
| .m4a | MPEG-4音频文件 | .wav | WAV音频文件 |
| .m4v | MPEG-4视频文件 | .webm | WebM视频文件 |
| .mp3 | MP3音频文件 | .mp4 | MPEG-4视频文件 |
| .mov | QuickTime视频文件 | .3g2 | 3GPP2视频文件 |
| .mp4 | MPEG-4视频文件 | .3gp | 3GPP视频文件 |
| .mxf | MXF视频文件 | .asf | Advanced Systems Format视频文件 |
| .rm | RealMedia视频文件 | .rmvb | RealMedia可变比特率视频文件 |
| .wmv | Windows Media视频文件 | .mkv | Matroska视频文件 |