shipfe 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/shipfe +0 -0
- package/package.json +5 -1
- package/.github/workflows/deploy.yml +0 -46
- package/.github/workflows/release.yml +0 -51
- package/.vscode/settings.json +0 -5
- package/README_CN.md +0 -41
- package/docs/.vitepress/cache/deps/@theme_index.js +0 -275
- package/docs/.vitepress/cache/deps/@theme_index.js.map +0 -7
- package/docs/.vitepress/cache/deps/_metadata.json +0 -40
- package/docs/.vitepress/cache/deps/chunk-BRNHR3LR.js +0 -9719
- package/docs/.vitepress/cache/deps/chunk-BRNHR3LR.js.map +0 -7
- package/docs/.vitepress/cache/deps/chunk-H6MPEGKE.js +0 -12877
- package/docs/.vitepress/cache/deps/chunk-H6MPEGKE.js.map +0 -7
- package/docs/.vitepress/cache/deps/package.json +0 -3
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +0 -4505
- package/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +0 -7
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +0 -583
- package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +0 -7
- package/docs/.vitepress/cache/deps/vue.js +0 -347
- package/docs/.vitepress/cache/deps/vue.js.map +0 -7
- package/docs/.vitepress/config.ts +0 -120
- package/docs/.vitepress/dist/404.html +0 -22
- package/docs/.vitepress/dist/assets/app.DZUgfPE2.js +0 -1
- package/docs/.vitepress/dist/assets/chunks/framework.BeaujayP.js +0 -19
- package/docs/.vitepress/dist/assets/chunks/theme.CNyaCki0.js +0 -1
- package/docs/.vitepress/dist/assets/commands_deploy.md.cybIRa1n.js +0 -17
- package/docs/.vitepress/dist/assets/commands_deploy.md.cybIRa1n.lean.js +0 -1
- package/docs/.vitepress/dist/assets/commands_init.md.Da652so5.js +0 -2
- package/docs/.vitepress/dist/assets/commands_init.md.Da652so5.lean.js +0 -1
- package/docs/.vitepress/dist/assets/commands_rollback.md.C0zKmFtz.js +0 -7
- package/docs/.vitepress/dist/assets/commands_rollback.md.C0zKmFtz.lean.js +0 -1
- package/docs/.vitepress/dist/assets/config_auth.md.hvDhtWY8.js +0 -56
- package/docs/.vitepress/dist/assets/config_auth.md.hvDhtWY8.lean.js +0 -1
- package/docs/.vitepress/dist/assets/config_overview.md.DAQclMJL.js +0 -34
- package/docs/.vitepress/dist/assets/config_overview.md.DAQclMJL.lean.js +0 -1
- package/docs/.vitepress/dist/assets/config_schema.md.Bv5TuD6E.js +0 -1
- package/docs/.vitepress/dist/assets/config_schema.md.Bv5TuD6E.lean.js +0 -1
- package/docs/.vitepress/dist/assets/config_sub-env.md.DSUt0Nyq.js +0 -26
- package/docs/.vitepress/dist/assets/config_sub-env.md.DSUt0Nyq.lean.js +0 -1
- package/docs/.vitepress/dist/assets/features_atomic.md.Cszqfb8O.js +0 -22
- package/docs/.vitepress/dist/assets/features_atomic.md.Cszqfb8O.lean.js +0 -1
- package/docs/.vitepress/dist/assets/features_cleanup.md.D1j3LEm1.js +0 -20
- package/docs/.vitepress/dist/assets/features_cleanup.md.D1j3LEm1.lean.js +0 -1
- package/docs/.vitepress/dist/assets/features_shared-assets.md.ChpQD81r.js +0 -26
- package/docs/.vitepress/dist/assets/features_shared-assets.md.ChpQD81r.lean.js +0 -1
- package/docs/.vitepress/dist/assets/features_snapshot.md.Bddk9nNL.js +0 -24
- package/docs/.vitepress/dist/assets/features_snapshot.md.Bddk9nNL.lean.js +0 -1
- package/docs/.vitepress/dist/assets/index.md.DqmDY2QI.js +0 -1
- package/docs/.vitepress/dist/assets/index.md.DqmDY2QI.lean.js +0 -1
- package/docs/.vitepress/dist/assets/install.md.CblrJsha.js +0 -1
- package/docs/.vitepress/dist/assets/install.md.CblrJsha.lean.js +0 -1
- package/docs/.vitepress/dist/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/docs/.vitepress/dist/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/docs/.vitepress/dist/assets/license.md.hVRT8__d.js +0 -1
- package/docs/.vitepress/dist/assets/license.md.hVRT8__d.lean.js +0 -1
- package/docs/.vitepress/dist/assets/quick-start.md.C06xD920.js +0 -23
- package/docs/.vitepress/dist/assets/quick-start.md.C06xD920.lean.js +0 -1
- package/docs/.vitepress/dist/assets/style.DES0mfMn.css +0 -1
- package/docs/.vitepress/dist/assets/troubleshooting.md.DLP5r-7N.js +0 -1
- package/docs/.vitepress/dist/assets/troubleshooting.md.DLP5r-7N.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_commands_deploy.md.BbKuBIij.js +0 -9
- package/docs/.vitepress/dist/assets/zh_commands_deploy.md.BbKuBIij.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_commands_init.md.Dc_WYD8D.js +0 -18
- package/docs/.vitepress/dist/assets/zh_commands_init.md.Dc_WYD8D.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_commands_rollback.md.Cdvwk1lB.js +0 -6
- package/docs/.vitepress/dist/assets/zh_commands_rollback.md.Cdvwk1lB.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_config_auth.md.BytNcdS4.js +0 -44
- package/docs/.vitepress/dist/assets/zh_config_auth.md.BytNcdS4.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_config_overview.md.CvAKxlb5.js +0 -45
- package/docs/.vitepress/dist/assets/zh_config_overview.md.CvAKxlb5.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_config_schema.md.CTCn0g9X.js +0 -67
- package/docs/.vitepress/dist/assets/zh_config_schema.md.CTCn0g9X.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_config_sub-env.md.Ce3xOEsi.js +0 -167
- package/docs/.vitepress/dist/assets/zh_config_sub-env.md.Ce3xOEsi.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_features_atomic.md.DUhJ_qq0.js +0 -42
- package/docs/.vitepress/dist/assets/zh_features_atomic.md.DUhJ_qq0.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_features_cleanup.md.CEgw587m.js +0 -50
- package/docs/.vitepress/dist/assets/zh_features_cleanup.md.CEgw587m.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_features_shared-assets.md.DZhvWCTp.js +0 -26
- package/docs/.vitepress/dist/assets/zh_features_shared-assets.md.DZhvWCTp.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_features_snapshot.md.Bkqgn7lu.js +0 -39
- package/docs/.vitepress/dist/assets/zh_features_snapshot.md.Bkqgn7lu.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_index.md.DKRf1R-g.js +0 -1
- package/docs/.vitepress/dist/assets/zh_index.md.DKRf1R-g.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_install.md.0LCLPI3L.js +0 -41
- package/docs/.vitepress/dist/assets/zh_install.md.0LCLPI3L.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_license.md.BUZ74dvK.js +0 -1
- package/docs/.vitepress/dist/assets/zh_license.md.BUZ74dvK.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_quick-start.md.Bl-Larcu.js +0 -19
- package/docs/.vitepress/dist/assets/zh_quick-start.md.Bl-Larcu.lean.js +0 -1
- package/docs/.vitepress/dist/assets/zh_troubleshooting.md.DHyCAfy2.js +0 -1
- package/docs/.vitepress/dist/assets/zh_troubleshooting.md.DHyCAfy2.lean.js +0 -1
- package/docs/.vitepress/dist/commands/deploy.html +0 -41
- package/docs/.vitepress/dist/commands/init.html +0 -26
- package/docs/.vitepress/dist/commands/rollback.html +0 -31
- package/docs/.vitepress/dist/config/auth.html +0 -80
- package/docs/.vitepress/dist/config/overview.html +0 -58
- package/docs/.vitepress/dist/config/schema.html +0 -25
- package/docs/.vitepress/dist/config/sub-env.html +0 -50
- package/docs/.vitepress/dist/features/atomic.html +0 -46
- package/docs/.vitepress/dist/features/cleanup.html +0 -44
- package/docs/.vitepress/dist/features/shared-assets.html +0 -50
- package/docs/.vitepress/dist/features/snapshot.html +0 -48
- package/docs/.vitepress/dist/hashmap.json +0 -1
- package/docs/.vitepress/dist/index.html +0 -25
- package/docs/.vitepress/dist/install.html +0 -25
- package/docs/.vitepress/dist/license.html +0 -25
- package/docs/.vitepress/dist/quick-start.html +0 -47
- package/docs/.vitepress/dist/troubleshooting.html +0 -25
- package/docs/.vitepress/dist/vp-icons.css +0 -0
- package/docs/.vitepress/dist/zh/commands/deploy.html +0 -33
- package/docs/.vitepress/dist/zh/commands/init.html +0 -42
- package/docs/.vitepress/dist/zh/commands/rollback.html +0 -30
- package/docs/.vitepress/dist/zh/config/auth.html +0 -68
- package/docs/.vitepress/dist/zh/config/overview.html +0 -69
- package/docs/.vitepress/dist/zh/config/schema.html +0 -91
- package/docs/.vitepress/dist/zh/config/sub-env.html +0 -191
- package/docs/.vitepress/dist/zh/features/atomic.html +0 -66
- package/docs/.vitepress/dist/zh/features/cleanup.html +0 -74
- package/docs/.vitepress/dist/zh/features/shared-assets.html +0 -50
- package/docs/.vitepress/dist/zh/features/snapshot.html +0 -63
- package/docs/.vitepress/dist/zh/index.html +0 -25
- package/docs/.vitepress/dist/zh/install.html +0 -65
- package/docs/.vitepress/dist/zh/license.html +0 -25
- package/docs/.vitepress/dist/zh/quick-start.html +0 -43
- package/docs/.vitepress/dist/zh/troubleshooting.html +0 -25
- package/docs/commands/deploy.md +0 -46
- package/docs/commands/init.md +0 -27
- package/docs/commands/rollback.md +0 -45
- package/docs/config/auth.md +0 -112
- package/docs/config/overview.md +0 -63
- package/docs/config/schema.md +0 -52
- package/docs/config/sub-env.md +0 -62
- package/docs/features/atomic.md +0 -67
- package/docs/features/cleanup.md +0 -80
- package/docs/features/shared-assets.md +0 -72
- package/docs/features/snapshot.md +0 -58
- package/docs/index.md +0 -48
- package/docs/install.md +0 -21
- package/docs/license.md +0 -23
- package/docs/quick-start.md +0 -98
- package/docs/troubleshooting.md +0 -88
- package/docs/zh/commands/deploy.md +0 -127
- package/docs/zh/commands/init.md +0 -76
- package/docs/zh/commands/rollback.md +0 -115
- package/docs/zh/config/auth.md +0 -195
- package/docs/zh/config/overview.md +0 -153
- package/docs/zh/config/schema.md +0 -253
- package/docs/zh/config/sub-env.md +0 -293
- package/docs/zh/features/atomic.md +0 -249
- package/docs/zh/features/cleanup.md +0 -241
- package/docs/zh/features/shared-assets.md +0 -72
- package/docs/zh/features/snapshot.md +0 -186
- package/docs/zh/index.md +0 -65
- package/docs/zh/install.md +0 -160
- package/docs/zh/license.md +0 -23
- package/docs/zh/quick-start.md +0 -109
- package/docs/zh/troubleshooting.md +0 -88
package/bin/shipfe
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipfe",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "A deployment tool for web applications",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -24,6 +24,10 @@
|
|
|
24
24
|
"url": "git+https://github.com/Master-Jian/shipfe-rust.git"
|
|
25
25
|
},
|
|
26
26
|
"license": "MIT",
|
|
27
|
+
"files": [
|
|
28
|
+
"bin/shipfe",
|
|
29
|
+
"README.md"
|
|
30
|
+
],
|
|
27
31
|
"os": [
|
|
28
32
|
"darwin",
|
|
29
33
|
"linux",
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
name: Deploy VitePress to GitHub Pages
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
workflow_dispatch:
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: read
|
|
10
|
-
pages: write
|
|
11
|
-
id-token: write
|
|
12
|
-
|
|
13
|
-
concurrency:
|
|
14
|
-
group: pages
|
|
15
|
-
cancel-in-progress: true
|
|
16
|
-
|
|
17
|
-
jobs:
|
|
18
|
-
build:
|
|
19
|
-
runs-on: ubuntu-latest
|
|
20
|
-
steps:
|
|
21
|
-
- uses: actions/checkout@v4
|
|
22
|
-
|
|
23
|
-
- uses: actions/setup-node@v4
|
|
24
|
-
with:
|
|
25
|
-
node-version: 20
|
|
26
|
-
cache: npm
|
|
27
|
-
|
|
28
|
-
- run: npm ci
|
|
29
|
-
- run: npm run docs:build
|
|
30
|
-
|
|
31
|
-
- uses: actions/configure-pages@v5
|
|
32
|
-
with:
|
|
33
|
-
enablement: true
|
|
34
|
-
- uses: actions/upload-pages-artifact@v3
|
|
35
|
-
with:
|
|
36
|
-
path: docs/.vitepress/dist
|
|
37
|
-
|
|
38
|
-
deploy:
|
|
39
|
-
needs: build
|
|
40
|
-
runs-on: ubuntu-latest
|
|
41
|
-
environment:
|
|
42
|
-
name: github-pages
|
|
43
|
-
url: ${{ steps.deployment.outputs.page_url }}
|
|
44
|
-
steps:
|
|
45
|
-
- id: deployment
|
|
46
|
-
uses: actions/deploy-pages@v4
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
name: Release
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
tags:
|
|
6
|
-
- 'v*'
|
|
7
|
-
|
|
8
|
-
permissions:
|
|
9
|
-
contents: write
|
|
10
|
-
id-token: write
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
release:
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
steps:
|
|
16
|
-
- uses: actions/checkout@v4
|
|
17
|
-
|
|
18
|
-
- uses: actions/setup-node@v4
|
|
19
|
-
with:
|
|
20
|
-
node-version: 20
|
|
21
|
-
registry-url: 'https://registry.npmjs.org'
|
|
22
|
-
|
|
23
|
-
- run: npm ci
|
|
24
|
-
|
|
25
|
-
- uses: actions/setup-python@v5
|
|
26
|
-
with:
|
|
27
|
-
python-version: '3.10'
|
|
28
|
-
|
|
29
|
-
- name: Install Rust
|
|
30
|
-
uses: dtolnay/rust-toolchain@stable
|
|
31
|
-
|
|
32
|
-
- run: cargo build --release
|
|
33
|
-
|
|
34
|
-
- run: cp target/release/shipfe bin/shipfe
|
|
35
|
-
|
|
36
|
-
- run: npm publish --provenance
|
|
37
|
-
env:
|
|
38
|
-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
39
|
-
|
|
40
|
-
- name: Create GitHub Release
|
|
41
|
-
uses: softprops/action-gh-release@v1
|
|
42
|
-
with:
|
|
43
|
-
tag_name: ${{ github.ref_name }}
|
|
44
|
-
name: Release ${{ github.ref_name }}
|
|
45
|
-
body: |
|
|
46
|
-
## Changes
|
|
47
|
-
- Version bump to ${{ github.ref_name }}
|
|
48
|
-
draft: false
|
|
49
|
-
prerelease: false
|
|
50
|
-
env:
|
|
51
|
-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
package/.vscode/settings.json
DELETED
package/README_CN.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
# Shipfe
|
|
2
|
-
|
|
3
|
-
[](https://www.npmjs.com/package/shipfe)
|
|
4
|
-
[](https://opensource.org/licenses/MIT)
|
|
5
|
-
[](https://github.com/Master-Jian/shipfe-rust)
|
|
6
|
-
|
|
7
|
-
一个强大的、**免费**、**基于 Rust** 的 Web 应用部署工具,**不请求网络**,实现**一键前端静态部署包上传到服务器**。支持多环境和子环境部署,具有零停机原子部署功能。
|
|
8
|
-
|
|
9
|
-
## 安装
|
|
10
|
-
|
|
11
|
-
```bash
|
|
12
|
-
npm install -g shipfe
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## 快速开始
|
|
16
|
-
|
|
17
|
-
1. 初始化项目:
|
|
18
|
-
```bash
|
|
19
|
-
shipfe init
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
2. 在 `shipfe.config.json` 中配置部署
|
|
23
|
-
|
|
24
|
-
3. 部署:
|
|
25
|
-
```bash
|
|
26
|
-
shipfe deploy --profile prod
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## 文档
|
|
30
|
-
|
|
31
|
-
📖 [完整文档](https://master-jian.github.io/shipfe-rust/)
|
|
32
|
-
|
|
33
|
-
## 常用命令
|
|
34
|
-
|
|
35
|
-
- `shipfe deploy --profile <env>` - 部署到指定环境
|
|
36
|
-
- `shipfe deploy --atomic` - 原子部署
|
|
37
|
-
- `shipfe rollback --profile <env> --to <timestamp>` - 回滚到指定版本
|
|
38
|
-
|
|
39
|
-
## 许可证
|
|
40
|
-
|
|
41
|
-
MIT
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
useMediaQuery
|
|
3
|
-
} from "./chunk-BRNHR3LR.js";
|
|
4
|
-
import {
|
|
5
|
-
computed,
|
|
6
|
-
ref,
|
|
7
|
-
shallowRef,
|
|
8
|
-
watch
|
|
9
|
-
} from "./chunk-H6MPEGKE.js";
|
|
10
|
-
|
|
11
|
-
// node_modules/vitepress/dist/client/theme-default/index.js
|
|
12
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/fonts.css";
|
|
13
|
-
|
|
14
|
-
// node_modules/vitepress/dist/client/theme-default/without-fonts.js
|
|
15
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/vars.css";
|
|
16
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/base.css";
|
|
17
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/icons.css";
|
|
18
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/utils.css";
|
|
19
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/custom-block.css";
|
|
20
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code.css";
|
|
21
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/vp-code-group.css";
|
|
22
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/vp-doc.css";
|
|
23
|
-
import "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/styles/components/vp-sponsor.css";
|
|
24
|
-
import VPBadge from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
|
|
25
|
-
import Layout from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/Layout.vue";
|
|
26
|
-
import { default as default2 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPBadge.vue";
|
|
27
|
-
import { default as default3 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPButton.vue";
|
|
28
|
-
import { default as default4 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPDocAsideSponsors.vue";
|
|
29
|
-
import { default as default5 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPFeatures.vue";
|
|
30
|
-
import { default as default6 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPHomeContent.vue";
|
|
31
|
-
import { default as default7 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPHomeFeatures.vue";
|
|
32
|
-
import { default as default8 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPHomeHero.vue";
|
|
33
|
-
import { default as default9 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPHomeSponsors.vue";
|
|
34
|
-
import { default as default10 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPImage.vue";
|
|
35
|
-
import { default as default11 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPLink.vue";
|
|
36
|
-
import { default as default12 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPNavBarSearch.vue";
|
|
37
|
-
import { default as default13 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPSocialLink.vue";
|
|
38
|
-
import { default as default14 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPSocialLinks.vue";
|
|
39
|
-
import { default as default15 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPSponsors.vue";
|
|
40
|
-
import { default as default16 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPTeamMembers.vue";
|
|
41
|
-
import { default as default17 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPTeamPage.vue";
|
|
42
|
-
import { default as default18 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageSection.vue";
|
|
43
|
-
import { default as default19 } from "/Users/jan/Desktop/开发/shipfe/shipfe-rust/node_modules/vitepress/dist/client/theme-default/components/VPTeamPageTitle.vue";
|
|
44
|
-
|
|
45
|
-
// node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
|
|
46
|
-
import { onContentUpdated } from "vitepress";
|
|
47
|
-
|
|
48
|
-
// node_modules/vitepress/dist/client/theme-default/composables/outline.js
|
|
49
|
-
import { getScrollOffset } from "vitepress";
|
|
50
|
-
|
|
51
|
-
// node_modules/vitepress/dist/client/theme-default/support/utils.js
|
|
52
|
-
import { withBase } from "vitepress";
|
|
53
|
-
|
|
54
|
-
// node_modules/vitepress/dist/client/theme-default/composables/data.js
|
|
55
|
-
import { useData as useData$ } from "vitepress";
|
|
56
|
-
var useData = useData$;
|
|
57
|
-
|
|
58
|
-
// node_modules/vitepress/dist/client/theme-default/support/utils.js
|
|
59
|
-
function ensureStartingSlash(path) {
|
|
60
|
-
return path.startsWith("/") ? path : `/${path}`;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// node_modules/vitepress/dist/client/theme-default/support/sidebar.js
|
|
64
|
-
function getSidebar(_sidebar, path) {
|
|
65
|
-
if (Array.isArray(_sidebar))
|
|
66
|
-
return addBase(_sidebar);
|
|
67
|
-
if (_sidebar == null)
|
|
68
|
-
return [];
|
|
69
|
-
path = ensureStartingSlash(path);
|
|
70
|
-
const dir = Object.keys(_sidebar).sort((a, b) => {
|
|
71
|
-
return b.split("/").length - a.split("/").length;
|
|
72
|
-
}).find((dir2) => {
|
|
73
|
-
return path.startsWith(ensureStartingSlash(dir2));
|
|
74
|
-
});
|
|
75
|
-
const sidebar = dir ? _sidebar[dir] : [];
|
|
76
|
-
return Array.isArray(sidebar) ? addBase(sidebar) : addBase(sidebar.items, sidebar.base);
|
|
77
|
-
}
|
|
78
|
-
function getSidebarGroups(sidebar) {
|
|
79
|
-
const groups = [];
|
|
80
|
-
let lastGroupIndex = 0;
|
|
81
|
-
for (const index in sidebar) {
|
|
82
|
-
const item = sidebar[index];
|
|
83
|
-
if (item.items) {
|
|
84
|
-
lastGroupIndex = groups.push(item);
|
|
85
|
-
continue;
|
|
86
|
-
}
|
|
87
|
-
if (!groups[lastGroupIndex]) {
|
|
88
|
-
groups.push({ items: [] });
|
|
89
|
-
}
|
|
90
|
-
groups[lastGroupIndex].items.push(item);
|
|
91
|
-
}
|
|
92
|
-
return groups;
|
|
93
|
-
}
|
|
94
|
-
function addBase(items, _base) {
|
|
95
|
-
return [...items].map((_item) => {
|
|
96
|
-
const item = { ..._item };
|
|
97
|
-
const base = item.base || _base;
|
|
98
|
-
if (base && item.link)
|
|
99
|
-
item.link = base + item.link;
|
|
100
|
-
if (item.items)
|
|
101
|
-
item.items = addBase(item.items, base);
|
|
102
|
-
return item;
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
// node_modules/vitepress/dist/client/theme-default/composables/sidebar.js
|
|
107
|
-
function useSidebar() {
|
|
108
|
-
const { frontmatter, page, theme: theme2 } = useData();
|
|
109
|
-
const is960 = useMediaQuery("(min-width: 960px)");
|
|
110
|
-
const isOpen = ref(false);
|
|
111
|
-
const _sidebar = computed(() => {
|
|
112
|
-
const sidebarConfig = theme2.value.sidebar;
|
|
113
|
-
const relativePath = page.value.relativePath;
|
|
114
|
-
return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];
|
|
115
|
-
});
|
|
116
|
-
const sidebar = ref(_sidebar.value);
|
|
117
|
-
watch(_sidebar, (next, prev) => {
|
|
118
|
-
if (JSON.stringify(next) !== JSON.stringify(prev))
|
|
119
|
-
sidebar.value = _sidebar.value;
|
|
120
|
-
});
|
|
121
|
-
const hasSidebar = computed(() => {
|
|
122
|
-
return frontmatter.value.sidebar !== false && sidebar.value.length > 0 && frontmatter.value.layout !== "home";
|
|
123
|
-
});
|
|
124
|
-
const leftAside = computed(() => {
|
|
125
|
-
if (hasAside)
|
|
126
|
-
return frontmatter.value.aside == null ? theme2.value.aside === "left" : frontmatter.value.aside === "left";
|
|
127
|
-
return false;
|
|
128
|
-
});
|
|
129
|
-
const hasAside = computed(() => {
|
|
130
|
-
if (frontmatter.value.layout === "home")
|
|
131
|
-
return false;
|
|
132
|
-
if (frontmatter.value.aside != null)
|
|
133
|
-
return !!frontmatter.value.aside;
|
|
134
|
-
return theme2.value.aside !== false;
|
|
135
|
-
});
|
|
136
|
-
const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);
|
|
137
|
-
const sidebarGroups = computed(() => {
|
|
138
|
-
return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];
|
|
139
|
-
});
|
|
140
|
-
function open() {
|
|
141
|
-
isOpen.value = true;
|
|
142
|
-
}
|
|
143
|
-
function close() {
|
|
144
|
-
isOpen.value = false;
|
|
145
|
-
}
|
|
146
|
-
function toggle() {
|
|
147
|
-
isOpen.value ? close() : open();
|
|
148
|
-
}
|
|
149
|
-
return {
|
|
150
|
-
isOpen,
|
|
151
|
-
sidebar,
|
|
152
|
-
sidebarGroups,
|
|
153
|
-
hasSidebar,
|
|
154
|
-
hasAside,
|
|
155
|
-
leftAside,
|
|
156
|
-
isSidebarEnabled,
|
|
157
|
-
open,
|
|
158
|
-
close,
|
|
159
|
-
toggle
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// node_modules/vitepress/dist/client/theme-default/composables/outline.js
|
|
164
|
-
var ignoreRE = /\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\b/;
|
|
165
|
-
var resolvedHeaders = [];
|
|
166
|
-
function getHeaders(range) {
|
|
167
|
-
const headers = [
|
|
168
|
-
...document.querySelectorAll(".VPDoc :where(h1,h2,h3,h4,h5,h6)")
|
|
169
|
-
].filter((el) => el.id && el.hasChildNodes()).map((el) => {
|
|
170
|
-
const level = Number(el.tagName[1]);
|
|
171
|
-
return {
|
|
172
|
-
element: el,
|
|
173
|
-
title: serializeHeader(el),
|
|
174
|
-
link: "#" + el.id,
|
|
175
|
-
level
|
|
176
|
-
};
|
|
177
|
-
});
|
|
178
|
-
return resolveHeaders(headers, range);
|
|
179
|
-
}
|
|
180
|
-
function serializeHeader(h) {
|
|
181
|
-
let ret = "";
|
|
182
|
-
for (const node of h.childNodes) {
|
|
183
|
-
if (node.nodeType === 1) {
|
|
184
|
-
if (ignoreRE.test(node.className))
|
|
185
|
-
continue;
|
|
186
|
-
ret += node.textContent;
|
|
187
|
-
} else if (node.nodeType === 3) {
|
|
188
|
-
ret += node.textContent;
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
return ret.trim();
|
|
192
|
-
}
|
|
193
|
-
function resolveHeaders(headers, range) {
|
|
194
|
-
if (range === false) {
|
|
195
|
-
return [];
|
|
196
|
-
}
|
|
197
|
-
const levelsRange = (typeof range === "object" && !Array.isArray(range) ? range.level : range) || 2;
|
|
198
|
-
const [high, low] = typeof levelsRange === "number" ? [levelsRange, levelsRange] : levelsRange === "deep" ? [2, 6] : levelsRange;
|
|
199
|
-
return buildTree(headers, high, low);
|
|
200
|
-
}
|
|
201
|
-
function buildTree(data, min, max) {
|
|
202
|
-
resolvedHeaders.length = 0;
|
|
203
|
-
const result = [];
|
|
204
|
-
const stack = [];
|
|
205
|
-
data.forEach((item) => {
|
|
206
|
-
const node = { ...item, children: [] };
|
|
207
|
-
let parent = stack[stack.length - 1];
|
|
208
|
-
while (parent && parent.level >= node.level) {
|
|
209
|
-
stack.pop();
|
|
210
|
-
parent = stack[stack.length - 1];
|
|
211
|
-
}
|
|
212
|
-
if (node.element.classList.contains("ignore-header") || parent && "shouldIgnore" in parent) {
|
|
213
|
-
stack.push({ level: node.level, shouldIgnore: true });
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
if (node.level > max || node.level < min)
|
|
217
|
-
return;
|
|
218
|
-
resolvedHeaders.push({ element: node.element, link: node.link });
|
|
219
|
-
if (parent)
|
|
220
|
-
parent.children.push(node);
|
|
221
|
-
else
|
|
222
|
-
result.push(node);
|
|
223
|
-
stack.push(node);
|
|
224
|
-
});
|
|
225
|
-
return result;
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
// node_modules/vitepress/dist/client/theme-default/composables/local-nav.js
|
|
229
|
-
function useLocalNav() {
|
|
230
|
-
const { theme: theme2, frontmatter } = useData();
|
|
231
|
-
const headers = shallowRef([]);
|
|
232
|
-
const hasLocalNav = computed(() => {
|
|
233
|
-
return headers.value.length > 0;
|
|
234
|
-
});
|
|
235
|
-
onContentUpdated(() => {
|
|
236
|
-
headers.value = getHeaders(frontmatter.value.outline ?? theme2.value.outline);
|
|
237
|
-
});
|
|
238
|
-
return {
|
|
239
|
-
headers,
|
|
240
|
-
hasLocalNav
|
|
241
|
-
};
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
// node_modules/vitepress/dist/client/theme-default/without-fonts.js
|
|
245
|
-
var theme = {
|
|
246
|
-
Layout,
|
|
247
|
-
enhanceApp: ({ app }) => {
|
|
248
|
-
app.component("Badge", VPBadge);
|
|
249
|
-
}
|
|
250
|
-
};
|
|
251
|
-
var without_fonts_default = theme;
|
|
252
|
-
export {
|
|
253
|
-
default2 as VPBadge,
|
|
254
|
-
default3 as VPButton,
|
|
255
|
-
default4 as VPDocAsideSponsors,
|
|
256
|
-
default5 as VPFeatures,
|
|
257
|
-
default6 as VPHomeContent,
|
|
258
|
-
default7 as VPHomeFeatures,
|
|
259
|
-
default8 as VPHomeHero,
|
|
260
|
-
default9 as VPHomeSponsors,
|
|
261
|
-
default10 as VPImage,
|
|
262
|
-
default11 as VPLink,
|
|
263
|
-
default12 as VPNavBarSearch,
|
|
264
|
-
default13 as VPSocialLink,
|
|
265
|
-
default14 as VPSocialLinks,
|
|
266
|
-
default15 as VPSponsors,
|
|
267
|
-
default16 as VPTeamMembers,
|
|
268
|
-
default17 as VPTeamPage,
|
|
269
|
-
default18 as VPTeamPageSection,
|
|
270
|
-
default19 as VPTeamPageTitle,
|
|
271
|
-
without_fonts_default as default,
|
|
272
|
-
useLocalNav,
|
|
273
|
-
useSidebar
|
|
274
|
-
};
|
|
275
|
-
//# sourceMappingURL=@theme_index.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../../node_modules/vitepress/dist/client/theme-default/index.js", "../../../../node_modules/vitepress/dist/client/theme-default/without-fonts.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/local-nav.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/outline.js", "../../../../node_modules/vitepress/dist/client/theme-default/support/utils.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/data.js", "../../../../node_modules/vitepress/dist/client/theme-default/support/sidebar.js", "../../../../node_modules/vitepress/dist/client/theme-default/composables/sidebar.js"],
|
|
4
|
-
"sourcesContent": ["import './styles/fonts.css';\nexport * from './without-fonts';\nexport { default as default } from './without-fonts';\n", "import './styles/vars.css';\nimport './styles/base.css';\nimport './styles/icons.css';\nimport './styles/utils.css';\nimport './styles/components/custom-block.css';\nimport './styles/components/vp-code.css';\nimport './styles/components/vp-code-group.css';\nimport './styles/components/vp-doc.css';\nimport './styles/components/vp-sponsor.css';\nimport VPBadge from './components/VPBadge.vue';\nimport Layout from './Layout.vue';\nexport { default as VPBadge } from './components/VPBadge.vue';\nexport { default as VPButton } from './components/VPButton.vue';\nexport { default as VPDocAsideSponsors } from './components/VPDocAsideSponsors.vue';\nexport { default as VPFeatures } from './components/VPFeatures.vue';\nexport { default as VPHomeContent } from './components/VPHomeContent.vue';\nexport { default as VPHomeFeatures } from './components/VPHomeFeatures.vue';\nexport { default as VPHomeHero } from './components/VPHomeHero.vue';\nexport { default as VPHomeSponsors } from './components/VPHomeSponsors.vue';\nexport { default as VPImage } from './components/VPImage.vue';\nexport { default as VPLink } from './components/VPLink.vue';\nexport { default as VPNavBarSearch } from './components/VPNavBarSearch.vue';\nexport { default as VPSocialLink } from './components/VPSocialLink.vue';\nexport { default as VPSocialLinks } from './components/VPSocialLinks.vue';\nexport { default as VPSponsors } from './components/VPSponsors.vue';\nexport { default as VPTeamMembers } from './components/VPTeamMembers.vue';\nexport { default as VPTeamPage } from './components/VPTeamPage.vue';\nexport { default as VPTeamPageSection } from './components/VPTeamPageSection.vue';\nexport { default as VPTeamPageTitle } from './components/VPTeamPageTitle.vue';\nexport { useLocalNav } from './composables/local-nav';\nexport { useSidebar } from './composables/sidebar';\nconst theme = {\n Layout,\n enhanceApp: ({ app }) => {\n app.component('Badge', VPBadge);\n }\n};\nexport default theme;\n", "import { onContentUpdated } from 'vitepress';\nimport { computed, shallowRef } from 'vue';\nimport { getHeaders } from '../composables/outline';\nimport { useData } from './data';\nexport function useLocalNav() {\n const { theme, frontmatter } = useData();\n const headers = shallowRef([]);\n const hasLocalNav = computed(() => {\n return headers.value.length > 0;\n });\n onContentUpdated(() => {\n headers.value = getHeaders(frontmatter.value.outline ?? theme.value.outline);\n });\n return {\n headers,\n hasLocalNav\n };\n}\n", "import { getScrollOffset } from 'vitepress';\nimport { onMounted, onUnmounted, onUpdated } from 'vue';\nimport { throttleAndDebounce } from '../support/utils';\nimport { useAside } from './aside';\nconst ignoreRE = /\\b(?:VPBadge|header-anchor|footnote-ref|ignore-header)\\b/;\n// cached list of anchor elements from resolveHeaders\nconst resolvedHeaders = [];\nexport function resolveTitle(theme) {\n return ((typeof theme.outline === 'object' &&\n !Array.isArray(theme.outline) &&\n theme.outline.label) ||\n theme.outlineTitle ||\n 'On this page');\n}\nexport function getHeaders(range) {\n const headers = [\n ...document.querySelectorAll('.VPDoc :where(h1,h2,h3,h4,h5,h6)')\n ]\n .filter((el) => el.id && el.hasChildNodes())\n .map((el) => {\n const level = Number(el.tagName[1]);\n return {\n element: el,\n title: serializeHeader(el),\n link: '#' + el.id,\n level\n };\n });\n return resolveHeaders(headers, range);\n}\nfunction serializeHeader(h) {\n let ret = '';\n for (const node of h.childNodes) {\n if (node.nodeType === 1) {\n if (ignoreRE.test(node.className))\n continue;\n ret += node.textContent;\n }\n else if (node.nodeType === 3) {\n ret += node.textContent;\n }\n }\n return ret.trim();\n}\nexport function resolveHeaders(headers, range) {\n if (range === false) {\n return [];\n }\n const levelsRange = (typeof range === 'object' && !Array.isArray(range)\n ? range.level\n : range) || 2;\n const [high, low] = typeof levelsRange === 'number'\n ? [levelsRange, levelsRange]\n : levelsRange === 'deep'\n ? [2, 6]\n : levelsRange;\n return buildTree(headers, high, low);\n}\nexport function useActiveAnchor(container, marker) {\n const { isAsideEnabled } = useAside();\n const onScroll = throttleAndDebounce(setActiveLink, 100);\n let prevActiveLink = null;\n onMounted(() => {\n requestAnimationFrame(setActiveLink);\n window.addEventListener('scroll', onScroll);\n });\n onUpdated(() => {\n // sidebar update means a route change\n activateLink(location.hash);\n });\n onUnmounted(() => {\n window.removeEventListener('scroll', onScroll);\n });\n function setActiveLink() {\n if (!isAsideEnabled.value) {\n return;\n }\n const scrollY = window.scrollY;\n const innerHeight = window.innerHeight;\n const offsetHeight = document.body.offsetHeight;\n const isBottom = Math.abs(scrollY + innerHeight - offsetHeight) < 1;\n // resolvedHeaders may be repositioned, hidden or fix positioned\n const headers = resolvedHeaders\n .map(({ element, link }) => ({\n link,\n top: getAbsoluteTop(element)\n }))\n .filter(({ top }) => !Number.isNaN(top))\n .sort((a, b) => a.top - b.top);\n // no headers available for active link\n if (!headers.length) {\n activateLink(null);\n return;\n }\n // page top\n if (scrollY < 1) {\n activateLink(null);\n return;\n }\n // page bottom - highlight last link\n if (isBottom) {\n activateLink(headers[headers.length - 1].link);\n return;\n }\n // find the last header above the top of viewport\n let activeLink = null;\n for (const { link, top } of headers) {\n if (top > scrollY + getScrollOffset() + 4) {\n break;\n }\n activeLink = link;\n }\n activateLink(activeLink);\n }\n function activateLink(hash) {\n if (prevActiveLink) {\n prevActiveLink.classList.remove('active');\n }\n if (hash == null) {\n prevActiveLink = null;\n }\n else {\n prevActiveLink = container.value.querySelector(`a[href=\"${decodeURIComponent(hash)}\"]`);\n }\n const activeLink = prevActiveLink;\n if (activeLink) {\n activeLink.classList.add('active');\n marker.value.style.top = activeLink.offsetTop + 39 + 'px';\n marker.value.style.opacity = '1';\n }\n else {\n marker.value.style.top = '33px';\n marker.value.style.opacity = '0';\n }\n }\n}\nfunction getAbsoluteTop(element) {\n let offsetTop = 0;\n while (element !== document.body) {\n if (element === null) {\n // child element is:\n // - not attached to the DOM (display: none)\n // - set to fixed position (not scrollable)\n // - body or html element (null offsetParent)\n return NaN;\n }\n offsetTop += element.offsetTop;\n element = element.offsetParent;\n }\n return offsetTop;\n}\nfunction buildTree(data, min, max) {\n resolvedHeaders.length = 0;\n const result = [];\n const stack = [];\n data.forEach((item) => {\n const node = { ...item, children: [] };\n let parent = stack[stack.length - 1];\n while (parent && parent.level >= node.level) {\n stack.pop();\n parent = stack[stack.length - 1];\n }\n if (node.element.classList.contains('ignore-header') ||\n (parent && 'shouldIgnore' in parent)) {\n stack.push({ level: node.level, shouldIgnore: true });\n return;\n }\n if (node.level > max || node.level < min)\n return;\n resolvedHeaders.push({ element: node.element, link: node.link });\n if (parent)\n parent.children.push(node);\n else\n result.push(node);\n stack.push(node);\n });\n return result;\n}\n", "import { withBase } from 'vitepress';\nimport { isExternal, treatAsHtml } from '../../shared';\nimport { useData } from '../composables/data';\nexport function throttleAndDebounce(fn, delay) {\n let timeoutId;\n let called = false;\n return () => {\n if (timeoutId)\n clearTimeout(timeoutId);\n if (!called) {\n fn();\n (called = true) && setTimeout(() => (called = false), delay);\n }\n else\n timeoutId = setTimeout(fn, delay);\n };\n}\nexport function ensureStartingSlash(path) {\n return path.startsWith('/') ? path : `/${path}`;\n}\nexport function normalizeLink(url) {\n const { pathname, search, hash, protocol } = new URL(url, 'http://a.com');\n if (isExternal(url) ||\n url.startsWith('#') ||\n !protocol.startsWith('http') ||\n !treatAsHtml(pathname))\n return url;\n const { site } = useData();\n const normalizedPath = pathname.endsWith('/') || pathname.endsWith('.html')\n ? url\n : url.replace(/(?:(^\\.+)\\/)?.*$/, `$1${pathname.replace(/(\\.md)?$/, site.value.cleanUrls ? '' : '.html')}${search}${hash}`);\n return withBase(normalizedPath);\n}\n", "import { useData as useData$ } from 'vitepress';\nexport const useData = useData$;\n", "import { isActive } from '../../shared';\nimport { ensureStartingSlash } from './utils';\n/**\n * Get the `Sidebar` from sidebar option. This method will ensure to get correct\n * sidebar config from `MultiSideBarConfig` with various path combinations such\n * as matching `guide/` and `/guide/`. If no matching config was found, it will\n * return empty array.\n */\nexport function getSidebar(_sidebar, path) {\n if (Array.isArray(_sidebar))\n return addBase(_sidebar);\n if (_sidebar == null)\n return [];\n path = ensureStartingSlash(path);\n const dir = Object.keys(_sidebar)\n .sort((a, b) => {\n return b.split('/').length - a.split('/').length;\n })\n .find((dir) => {\n // make sure the multi sidebar key starts with slash too\n return path.startsWith(ensureStartingSlash(dir));\n });\n const sidebar = dir ? _sidebar[dir] : [];\n return Array.isArray(sidebar)\n ? addBase(sidebar)\n : addBase(sidebar.items, sidebar.base);\n}\n/**\n * Get or generate sidebar group from the given sidebar items.\n */\nexport function getSidebarGroups(sidebar) {\n const groups = [];\n let lastGroupIndex = 0;\n for (const index in sidebar) {\n const item = sidebar[index];\n if (item.items) {\n lastGroupIndex = groups.push(item);\n continue;\n }\n if (!groups[lastGroupIndex]) {\n groups.push({ items: [] });\n }\n groups[lastGroupIndex].items.push(item);\n }\n return groups;\n}\nexport function getFlatSideBarLinks(sidebar) {\n const links = [];\n function recursivelyExtractLinks(items) {\n for (const item of items) {\n if (item.text && item.link) {\n links.push({\n text: item.text,\n link: item.link,\n docFooterText: item.docFooterText\n });\n }\n if (item.items) {\n recursivelyExtractLinks(item.items);\n }\n }\n }\n recursivelyExtractLinks(sidebar);\n return links;\n}\n/**\n * Check if the given sidebar item contains any active link.\n */\nexport function hasActiveLink(path, items) {\n if (Array.isArray(items)) {\n return items.some((item) => hasActiveLink(path, item));\n }\n return isActive(path, items.link)\n ? true\n : items.items\n ? hasActiveLink(path, items.items)\n : false;\n}\nfunction addBase(items, _base) {\n return [...items].map((_item) => {\n const item = { ..._item };\n const base = item.base || _base;\n if (base && item.link)\n item.link = base + item.link;\n if (item.items)\n item.items = addBase(item.items, base);\n return item;\n });\n}\n", "import { useMediaQuery } from '@vueuse/core';\nimport { computed, onMounted, onUnmounted, ref, watch, watchEffect, watchPostEffect } from 'vue';\nimport { isActive } from '../../shared';\nimport { hasActiveLink as containsActiveLink, getSidebar, getSidebarGroups } from '../support/sidebar';\nimport { useData } from './data';\nexport function useSidebar() {\n const { frontmatter, page, theme } = useData();\n const is960 = useMediaQuery('(min-width: 960px)');\n const isOpen = ref(false);\n const _sidebar = computed(() => {\n const sidebarConfig = theme.value.sidebar;\n const relativePath = page.value.relativePath;\n return sidebarConfig ? getSidebar(sidebarConfig, relativePath) : [];\n });\n const sidebar = ref(_sidebar.value);\n watch(_sidebar, (next, prev) => {\n if (JSON.stringify(next) !== JSON.stringify(prev))\n sidebar.value = _sidebar.value;\n });\n const hasSidebar = computed(() => {\n return (frontmatter.value.sidebar !== false &&\n sidebar.value.length > 0 &&\n frontmatter.value.layout !== 'home');\n });\n const leftAside = computed(() => {\n if (hasAside)\n return frontmatter.value.aside == null\n ? theme.value.aside === 'left'\n : frontmatter.value.aside === 'left';\n return false;\n });\n const hasAside = computed(() => {\n if (frontmatter.value.layout === 'home')\n return false;\n if (frontmatter.value.aside != null)\n return !!frontmatter.value.aside;\n return theme.value.aside !== false;\n });\n const isSidebarEnabled = computed(() => hasSidebar.value && is960.value);\n const sidebarGroups = computed(() => {\n return hasSidebar.value ? getSidebarGroups(sidebar.value) : [];\n });\n function open() {\n isOpen.value = true;\n }\n function close() {\n isOpen.value = false;\n }\n function toggle() {\n isOpen.value ? close() : open();\n }\n return {\n isOpen,\n sidebar,\n sidebarGroups,\n hasSidebar,\n hasAside,\n leftAside,\n isSidebarEnabled,\n open,\n close,\n toggle\n };\n}\n/**\n * a11y: cache the element that opened the Sidebar (the menu button) then\n * focus that button again when Menu is closed with Escape key.\n */\nexport function useCloseSidebarOnEscape(isOpen, close) {\n let triggerElement;\n watchEffect(() => {\n triggerElement = isOpen.value\n ? document.activeElement\n : undefined;\n });\n onMounted(() => {\n window.addEventListener('keyup', onEscape);\n });\n onUnmounted(() => {\n window.removeEventListener('keyup', onEscape);\n });\n function onEscape(e) {\n if (e.key === 'Escape' && isOpen.value) {\n close();\n triggerElement?.focus();\n }\n }\n}\nexport function useSidebarControl(item) {\n const { page, hash } = useData();\n const collapsed = ref(false);\n const collapsible = computed(() => {\n return item.value.collapsed != null;\n });\n const isLink = computed(() => {\n return !!item.value.link;\n });\n const isActiveLink = ref(false);\n const updateIsActiveLink = () => {\n isActiveLink.value = isActive(page.value.relativePath, item.value.link);\n };\n watch([page, item, hash], updateIsActiveLink);\n onMounted(updateIsActiveLink);\n const hasActiveLink = computed(() => {\n if (isActiveLink.value) {\n return true;\n }\n return item.value.items\n ? containsActiveLink(page.value.relativePath, item.value.items)\n : false;\n });\n const hasChildren = computed(() => {\n return !!(item.value.items && item.value.items.length);\n });\n watchEffect(() => {\n collapsed.value = !!(collapsible.value && item.value.collapsed);\n });\n watchPostEffect(() => {\n ;\n (isActiveLink.value || hasActiveLink.value) && (collapsed.value = false);\n });\n function toggle() {\n if (collapsible.value) {\n collapsed.value = !collapsed.value;\n }\n }\n return {\n collapsed,\n collapsible,\n isLink,\n isActiveLink,\n hasActiveLink,\n hasChildren,\n toggle\n };\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["default", "dir", "theme", "theme"]
|
|
7
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"hash": "fd840b89",
|
|
3
|
-
"configHash": "da0579de",
|
|
4
|
-
"lockfileHash": "eed8462a",
|
|
5
|
-
"browserHash": "4e67151c",
|
|
6
|
-
"optimized": {
|
|
7
|
-
"vue": {
|
|
8
|
-
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
|
9
|
-
"file": "vue.js",
|
|
10
|
-
"fileHash": "2f6229d8",
|
|
11
|
-
"needsInterop": false
|
|
12
|
-
},
|
|
13
|
-
"vitepress > @vue/devtools-api": {
|
|
14
|
-
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
|
|
15
|
-
"file": "vitepress___@vue_devtools-api.js",
|
|
16
|
-
"fileHash": "10710b6e",
|
|
17
|
-
"needsInterop": false
|
|
18
|
-
},
|
|
19
|
-
"vitepress > @vueuse/core": {
|
|
20
|
-
"src": "../../../../node_modules/@vueuse/core/index.mjs",
|
|
21
|
-
"file": "vitepress___@vueuse_core.js",
|
|
22
|
-
"fileHash": "d9e7c45d",
|
|
23
|
-
"needsInterop": false
|
|
24
|
-
},
|
|
25
|
-
"@theme/index": {
|
|
26
|
-
"src": "../../../../node_modules/vitepress/dist/client/theme-default/index.js",
|
|
27
|
-
"file": "@theme_index.js",
|
|
28
|
-
"fileHash": "484526eb",
|
|
29
|
-
"needsInterop": false
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
"chunks": {
|
|
33
|
-
"chunk-BRNHR3LR": {
|
|
34
|
-
"file": "chunk-BRNHR3LR.js"
|
|
35
|
-
},
|
|
36
|
-
"chunk-H6MPEGKE": {
|
|
37
|
-
"file": "chunk-H6MPEGKE.js"
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|