vitepress-plugin-toolkit 0.1.0
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/LICENSE +21 -0
- package/dist/client/browser/index.d.ts +126 -0
- package/dist/client/browser/index.js +181 -0
- package/dist/client/ssr/index.d.ts +126 -0
- package/dist/client/ssr/index.js +171 -0
- package/dist/client/styles/copy-button.css +75 -0
- package/dist/client/styles/loading.css +18 -0
- package/dist/client/styles/transition/fade-in-down.css +25 -0
- package/dist/client/styles/transition/fade-in-height-expand.css +25 -0
- package/dist/client/styles/transition/fade-in-left.css +25 -0
- package/dist/client/styles/transition/fade-in-right.css +25 -0
- package/dist/client/styles/transition/fade-in-scale-up.css +29 -0
- package/dist/client/styles/transition/fade-in-up.css +25 -0
- package/dist/client/styles/transition/fade-in-width-expand.css +23 -0
- package/dist/client/styles/transition/fade-in.css +16 -0
- package/dist/client/styles/transition/slide-in-down.css +23 -0
- package/dist/client/styles/transition/slide-in-left.css +23 -0
- package/dist/client/styles/transition/slide-in-right.css +23 -0
- package/dist/client/styles/transition/slide-in-up.css +23 -0
- package/dist/client/styles/transition/vars.css +10 -0
- package/dist/node/index.d.ts +331 -0
- package/dist/node/index.js +446 -0
- package/package.json +51 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.vp-loading {
|
|
2
|
+
display: flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
font-size: 36px;
|
|
6
|
+
color: currentcolor;
|
|
7
|
+
background-color: inherit;
|
|
8
|
+
transition: background-color 0.3s ease-in-out;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.vp-loading.absolute {
|
|
12
|
+
position: absolute;
|
|
13
|
+
top: 0;
|
|
14
|
+
right: 0;
|
|
15
|
+
bottom: 0;
|
|
16
|
+
left: 0;
|
|
17
|
+
z-index: 2;
|
|
18
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-fade-in-down-offset: -10px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.fade-in-down-enter-from,
|
|
8
|
+
.fade-in-down-leave-to {
|
|
9
|
+
opacity: 0 !important;
|
|
10
|
+
transform: translateY(var(--transition-fade-in-down-offset)) !important;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.fade-in-down-enter-to,
|
|
14
|
+
.fade-in-down-leave-from {
|
|
15
|
+
opacity: 1;
|
|
16
|
+
transform: translateY(0) !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.fade-in-down-leave-active {
|
|
20
|
+
transition: opacity var(--transition-leave-duration) var(--transition-ease-in-out), transform var(--transition-leave-duration) var(--transition-ease-in-out) !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.fade-in-down-enter-active {
|
|
24
|
+
transition: opacity var(--transition-enter-duration) var(--transition-ease-in-out), transform var(--transition-enter-duration) var(--transition-ease-in-out) !important;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
.fade-in-height-expand-leave-from,
|
|
4
|
+
.fade-in-height-expand-enter-to {
|
|
5
|
+
opacity: 1;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.fade-in-height-expand-leave-to,
|
|
9
|
+
.fade-in-height-expand-enter-from {
|
|
10
|
+
padding-top: 0 !important;
|
|
11
|
+
padding-bottom: 0 !important;
|
|
12
|
+
margin-top: 0 !important;
|
|
13
|
+
margin-bottom: 0 !important;
|
|
14
|
+
opacity: 0 !important;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.fade-in-height-expand-leave-active {
|
|
18
|
+
overflow: hidden !important;
|
|
19
|
+
transition: max-height var(--transition-slow-duration) var(--transition-ease-in-out), opacity var(--transition-leave-duration) var(--transition-ease-out), margin-top var(--transition-slow-duration) var(--transition-ease-in-out), margin-bottom var(--transition-slow-duration) var(--transition-ease-in-out), padding-top var(--transition-slow-duration) var(--transition-ease-in-out), padding-bottom var(--transition-slow-duration) var(--transition-ease-in-out) !important;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.fade-in-height-expand-enter-active {
|
|
23
|
+
overflow: hidden !important;
|
|
24
|
+
transition: max-height var(--transition-slow-duration) var(--transition-ease-in-out), opacity var(--transition-enter-duration) var(--transition-ease-in), margin-top var(--transition-slow-duration) var(--transition-ease-in-out), margin-bottom var(--transition-slow-duration) var(--transition-ease-in-out), padding-top var(--transition-slow-duration) var(--transition-ease-in-out), padding-bottom var(--transition-slow-duration) var(--transition-ease-in-out) !important;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-fade-in-left-offset: 10px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.fade-in-left-enter-from,
|
|
8
|
+
.fade-in-left-leave-to {
|
|
9
|
+
opacity: 0 !important;
|
|
10
|
+
transform: translateX(var(--transition-fade-in-left-offset)) !important;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.fade-in-left-enter-to,
|
|
14
|
+
.fade-in-left-leave-from {
|
|
15
|
+
opacity: 1;
|
|
16
|
+
transform: translateX(0) !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.fade-in-left-leave-active {
|
|
20
|
+
transition: opacity var(--transition-leave-duration) var(--transition-ease-in-out), transform var(--transition-leave-duration) var(--transition-ease-in-out) !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.fade-in-left-enter-active {
|
|
24
|
+
transition: opacity var(--transition-enter-duration) var(--transition-ease-in-out), transform var(--transition-enter-duration) var(--transition-ease-in-out) !important;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-fade-in-right-offset: -10px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.fade-in-right-enter-from,
|
|
8
|
+
.fade-in-right-leave-to {
|
|
9
|
+
opacity: 0 !important;
|
|
10
|
+
transform: translateX(var(--transition-fade-in-right-offset)) !important;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.fade-in-right-enter-to,
|
|
14
|
+
.fade-in-right-leave-from {
|
|
15
|
+
opacity: 1;
|
|
16
|
+
transform: translateX(0) !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.fade-in-right-leave-active {
|
|
20
|
+
transition: opacity var(--transition-leave-duration) var(--transition-ease-in-out), transform var(--transition-leave-duration) var(--transition-ease-in-out) !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.fade-in-right-enter-active {
|
|
24
|
+
transition: opacity var(--transition-enter-duration) var(--transition-ease-in-out), transform var(--transition-enter-duration) var(--transition-ease-in-out) !important;
|
|
25
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-fade-in-scale-up-scale: 0.9;
|
|
5
|
+
--transition-fade-in-scale-up-duration: var(--transition-duration);
|
|
6
|
+
--transition-fade-in-scale-up-origin: inherit;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.fade-in-scale-up-leave-active {
|
|
10
|
+
transition: opacity var(--transition-fade-in-scale-up-duration) var(--transition-ease-in), transform var(--transition-fade-in-scale-up-duration) var(--transition-ease-in) !important;
|
|
11
|
+
transform-origin: var(--transition-fade-in-scale-up-origin) !important;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.fade-in-scale-up-enter-active {
|
|
15
|
+
transition: opacity var(--transition-fade-in-scale-up-duration) var(--transition-ease-out), transform var(--transition-fade-in-scale-up-duration) var(--transition-ease-out) !important;
|
|
16
|
+
transform-origin: var(--transition-fade-in-scale-up-origin) !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.fade-in-scale-up-enter-from,
|
|
20
|
+
.fade-in-scale-up-leave-to {
|
|
21
|
+
opacity: 0 !important;
|
|
22
|
+
transform: scale(var(--transition-fade-in-scale-up-scale)) !important;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.fade-in-scale-up-leave-from,
|
|
26
|
+
.fade-in-scale-up-enter-to {
|
|
27
|
+
opacity: 1;
|
|
28
|
+
transform: scale(1) !important;
|
|
29
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-fade-in-up-offset: 10px;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.fade-in-up-enter-from,
|
|
8
|
+
.fade-in-up-leave-to {
|
|
9
|
+
opacity: 0 !important;
|
|
10
|
+
transform: translateY(var(--transition-fade-in-up-offset)) !important;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.fade-in-up-enter-to,
|
|
14
|
+
.fade-in-up-leave-from {
|
|
15
|
+
opacity: 1;
|
|
16
|
+
transform: translateY(0) !important;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.fade-in-up-leave-active {
|
|
20
|
+
transition: opacity var(--transition-leave-duration) var(--transition-ease-in-out), transform var(--transition-leave-duration) var(--transition-ease-in-out) !important;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.fade-in-up-enter-active {
|
|
24
|
+
transition: opacity var(--transition-enter-duration) var(--transition-ease-in-out), transform var(--transition-enter-duration) var(--transition-ease-in-out) !important;
|
|
25
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
.fade-in-width-expand-leave-from,
|
|
4
|
+
.fade-in-width-expand-enter-to {
|
|
5
|
+
opacity: 1;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.fade-in-width-expand-leave-to,
|
|
9
|
+
.fade-in-width-expand-enter-from {
|
|
10
|
+
margin-right: 0 !important;
|
|
11
|
+
margin-left: 0 !important;
|
|
12
|
+
opacity: 0 !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.fade-in-width-expand-leave-active {
|
|
16
|
+
overflow: hidden !important;
|
|
17
|
+
transition: max-width var(--transition-leave-duration) var(--transition-ease-in-out) var(--transition-delay), opacity var(--transition-leave-duration) var(--transition-ease-in-out), margin-right var(--transition-leave-duration) var(--transition-ease-in-out) var(--transition-delay), margin-left var(--transition-duration) var(--transition-ease-in-out) var(--transition-delay) !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.fade-in-width-expand-enter-active {
|
|
21
|
+
overflow: hidden !important;
|
|
22
|
+
transition: max-width var(--transition-enter-duration) var(--transition-ease-in-out), opacity var(--transition-leave-duration) var(--transition-ease-in-out) var(--transition-delay), margin-right var(--transition-enter-duration) var(--transition-ease-in-out), margin-left var(--transition-enter-duration) var(--transition-ease-in-out) !important;
|
|
23
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
.fade-in-enter-active,
|
|
4
|
+
.fade-in-leave-active {
|
|
5
|
+
transition: all var(--transition-duration) var(--transition-ease-in-out) !important;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.fade-in-enter-from,
|
|
9
|
+
.fade-in-leave-to {
|
|
10
|
+
opacity: 0 !important;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.fade-in-leave-from,
|
|
14
|
+
.fade-in-enter-to {
|
|
15
|
+
opacity: 1;
|
|
16
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-slide-in-down-offset: -100%;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.slide-in-down-leave-active {
|
|
8
|
+
transition: transform var(--transition-leave-duration) var(--transition-ease-in) !important;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.slide-in-down-enter-active {
|
|
12
|
+
transition: transform var(--transition-enter-duration) var(--transition-ease-out) !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.slide-in-down-enter-to,
|
|
16
|
+
.slide-in-down-leave-from {
|
|
17
|
+
transform: translateY(0) !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.slide-in-down-enter-from,
|
|
21
|
+
.slide-in-down-leave-to {
|
|
22
|
+
transform: translateY(var(--transition-slide-in-down-offset)) !important;
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-slide-in-left-offset: 100%;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.slide-in-left-leave-active {
|
|
8
|
+
transition: transform var(--transition-leave-duration) var(--transition-ease-in) !important;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.slide-in-left-enter-active {
|
|
12
|
+
transition: transform var(--transition-enter-duration) var(--transition-ease-out) !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.slide-in-left-enter-to,
|
|
16
|
+
.slide-in-left-leave-from {
|
|
17
|
+
transform: translateX(0) !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.slide-in-left-enter-from,
|
|
21
|
+
.slide-in-left-leave-to {
|
|
22
|
+
transform: translateX(var(--transition-slide-in-left-offset)) !important;
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-slide-in-right-offset: -100%;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.slide-in-right-leave-active {
|
|
8
|
+
transition: transform var(--transition-leave-duration) var(--transition-ease-in) !important;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.slide-in-right-enter-active {
|
|
12
|
+
transition: transform var(--transition-enter-duration) var(--transition-ease-out) !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.slide-in-right-enter-to,
|
|
16
|
+
.slide-in-right-leave-from {
|
|
17
|
+
transform: translateX(0) !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.slide-in-right-enter-from,
|
|
21
|
+
.slide-in-right-leave-to {
|
|
22
|
+
transform: translateX(var(--transition-slide-in-right-offset)) !important;
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@import url("./vars.css");
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--transition-slide-in-up-offset: 100%;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.slide-in-up-leave-active {
|
|
8
|
+
transition: transform var(--transition-leave-duration) var(--transition-ease-in) !important;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.slide-in-up-enter-active {
|
|
12
|
+
transition: transform var(--transition-enter-duration) var(--transition-ease-out) !important;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.slide-in-up-enter-to,
|
|
16
|
+
.slide-in-up-leave-from {
|
|
17
|
+
transform: translateY(0) !important;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.slide-in-up-enter-from,
|
|
21
|
+
.slide-in-up-leave-to {
|
|
22
|
+
transform: translateY(var(--transition-slide-in-up-offset)) !important;
|
|
23
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--transition-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
|
|
3
|
+
--transition-ease-out: cubic-bezier(0, 0, 0.2, 1);
|
|
4
|
+
--transition-ease-in: cubic-bezier(0.4, 0, 1, 1);
|
|
5
|
+
--transition-duration: 0.2s;
|
|
6
|
+
--transition-slow-duration: 0.3s;
|
|
7
|
+
--transition-enter-duration: var(--transition-duration);
|
|
8
|
+
--transition-leave-duration: var(--transition-duration);
|
|
9
|
+
--transition-delay: 0.1s;
|
|
10
|
+
}
|
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import MarkdownIt from "markdown-it";
|
|
2
|
+
import { RenderRule } from "markdown-it/lib/renderer.mjs";
|
|
3
|
+
import { RuleOptions } from "markdown-it/lib/ruler.mjs";
|
|
4
|
+
import { MarkdownEnv, SiteConfig } from "vitepress";
|
|
5
|
+
|
|
6
|
+
//#region src/shared/link.d.ts
|
|
7
|
+
declare const EXTERNAL_URL_RE: RegExp;
|
|
8
|
+
declare function isExternal(path: string): boolean;
|
|
9
|
+
declare const URL_PROTOCOL_RE: RegExp;
|
|
10
|
+
declare function isLinkWithProtocol(link: string): boolean;
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region src/shared/size.d.ts
|
|
13
|
+
/**
|
|
14
|
+
* Size Options
|
|
15
|
+
*
|
|
16
|
+
* 尺寸选项
|
|
17
|
+
*/
|
|
18
|
+
interface SizeOptions {
|
|
19
|
+
/**
|
|
20
|
+
* Width
|
|
21
|
+
*
|
|
22
|
+
* 宽度
|
|
23
|
+
*/
|
|
24
|
+
width?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Height
|
|
27
|
+
*
|
|
28
|
+
* 高度
|
|
29
|
+
*/
|
|
30
|
+
height?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Aspect ratio
|
|
33
|
+
*
|
|
34
|
+
* 宽高比
|
|
35
|
+
*/
|
|
36
|
+
ratio?: number | string;
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/node/markdown/container.d.ts
|
|
40
|
+
/**
|
|
41
|
+
* Type for getting RenderRule parameters
|
|
42
|
+
*
|
|
43
|
+
* 获取 RenderRule 参数的类型
|
|
44
|
+
*/
|
|
45
|
+
type RenderRuleParams = Parameters<RenderRule> extends [...infer Args, infer _] ? Args : never;
|
|
46
|
+
/**
|
|
47
|
+
* Container options
|
|
48
|
+
*
|
|
49
|
+
* 自定义容器的配置项
|
|
50
|
+
*/
|
|
51
|
+
interface ContainerOptions {
|
|
52
|
+
/**
|
|
53
|
+
* Callback for rendering container opening tag
|
|
54
|
+
*
|
|
55
|
+
* 渲染容器起始标签时的回调
|
|
56
|
+
*/
|
|
57
|
+
before?: (info: string, ...args: RenderRuleParams) => string;
|
|
58
|
+
/**
|
|
59
|
+
* Callback for rendering container closing tag
|
|
60
|
+
*
|
|
61
|
+
* 渲染容器结束标签时的回调
|
|
62
|
+
*/
|
|
63
|
+
after?: (info: string, ...args: RenderRuleParams) => string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Create markdown-it custom container plugin
|
|
67
|
+
*
|
|
68
|
+
* 创建 markdown-it 的自定义容器插件
|
|
69
|
+
*
|
|
70
|
+
* @param md - Markdown-it instance / Markdown-it 实例
|
|
71
|
+
* @param type - Container type (e.g., 'tip', 'warning') / 容器类型(如 'tip', 'warning' 等)
|
|
72
|
+
* @param options - Optional before/after render hooks / 可选的 before/after 渲染钩子
|
|
73
|
+
* @param options.before - Callback for rendering container opening tag / 渲染容器起始标签时的回调函数
|
|
74
|
+
* @param options.after - Callback for rendering container closing tag / 渲染容器结束标签时的回调函数
|
|
75
|
+
*/
|
|
76
|
+
declare function createContainerPlugin(md: MarkdownIt, type: string, {
|
|
77
|
+
before,
|
|
78
|
+
after
|
|
79
|
+
}?: ContainerOptions): void;
|
|
80
|
+
/**
|
|
81
|
+
* Create a custom container rule where content is not processed by markdown-it
|
|
82
|
+
* Requires custom content processing logic
|
|
83
|
+
* ```md
|
|
84
|
+
* ::: type
|
|
85
|
+
* xxxx <-- content: this part will not be processed by markdown-it
|
|
86
|
+
* :::
|
|
87
|
+
* ```
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```ts
|
|
91
|
+
* const example = createContainerSyntaxPlugin(md, 'example', (tokens, index, options, env) => {
|
|
92
|
+
* const { content, meta } = tokens[index]
|
|
93
|
+
* return `<div class="example">${meta.title} | ${content}</div>`
|
|
94
|
+
* })
|
|
95
|
+
* ```
|
|
96
|
+
*
|
|
97
|
+
* @param md - Markdown-it instance / Markdown-it 实例
|
|
98
|
+
* @param type - Container type / 容器类型
|
|
99
|
+
* @param render - Custom render rule / 自定义渲染规则
|
|
100
|
+
*/
|
|
101
|
+
declare function createContainerSyntaxPlugin(md: MarkdownIt, type: string, render?: RenderRule): void;
|
|
102
|
+
//#endregion
|
|
103
|
+
//#region src/node/markdown/embed.d.ts
|
|
104
|
+
/**
|
|
105
|
+
* Embed rule block options
|
|
106
|
+
*
|
|
107
|
+
* 嵌入规则块选项
|
|
108
|
+
*
|
|
109
|
+
* @typeParam Meta - Metadata type / 元数据类型
|
|
110
|
+
*/
|
|
111
|
+
interface EmbedRuleBlockOptions<Meta extends Record<string, any>> {
|
|
112
|
+
/**
|
|
113
|
+
* Embed type syntax: @[type]()
|
|
114
|
+
*
|
|
115
|
+
* 嵌入类型语法:@[type]()
|
|
116
|
+
*/
|
|
117
|
+
type: string;
|
|
118
|
+
/**
|
|
119
|
+
* Token name
|
|
120
|
+
*
|
|
121
|
+
* 令牌名称
|
|
122
|
+
*/
|
|
123
|
+
name?: string;
|
|
124
|
+
/**
|
|
125
|
+
* Name of the rule to insert before
|
|
126
|
+
*
|
|
127
|
+
* 要插入在其前面的规则名称
|
|
128
|
+
*/
|
|
129
|
+
beforeName?: string;
|
|
130
|
+
/**
|
|
131
|
+
* Syntax pattern regular expression
|
|
132
|
+
*
|
|
133
|
+
* 语法模式正则表达式
|
|
134
|
+
*/
|
|
135
|
+
syntaxPattern: RegExp;
|
|
136
|
+
/**
|
|
137
|
+
* Rule options
|
|
138
|
+
*
|
|
139
|
+
* 规则选项
|
|
140
|
+
*/
|
|
141
|
+
ruleOptions?: RuleOptions;
|
|
142
|
+
/**
|
|
143
|
+
* Extract metadata from match
|
|
144
|
+
*
|
|
145
|
+
* 从匹配中提取元数据
|
|
146
|
+
*
|
|
147
|
+
* @param match - RegExp match array / 正则表达式匹配数组
|
|
148
|
+
* @returns Metadata object / 元数据对象
|
|
149
|
+
*/
|
|
150
|
+
meta: (match: RegExpMatchArray) => Meta;
|
|
151
|
+
/**
|
|
152
|
+
* Generate content from metadata
|
|
153
|
+
*
|
|
154
|
+
* 从元数据生成内容
|
|
155
|
+
*
|
|
156
|
+
* @param meta - Metadata / 元数据
|
|
157
|
+
* @param content - Original content / 原始内容
|
|
158
|
+
* @param env - Markdown environment / Markdown 环境
|
|
159
|
+
* @returns Generated content / 生成的内容
|
|
160
|
+
*/
|
|
161
|
+
content: (meta: Meta, content: string, env: MarkdownEnv) => string;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Create embed rule block
|
|
165
|
+
*
|
|
166
|
+
* 创建嵌入规则块
|
|
167
|
+
*
|
|
168
|
+
* Syntax: \@\[name]()
|
|
169
|
+
*
|
|
170
|
+
* 语法:\@\[name]()
|
|
171
|
+
*
|
|
172
|
+
* @param md - Markdown instance / Markdown 实例
|
|
173
|
+
* @param {EmbedRuleBlockOptions} options - Embed rule block options / 嵌入规则块选项
|
|
174
|
+
* @typeParam Meta - Metadata type / 元数据类型
|
|
175
|
+
*/
|
|
176
|
+
declare function createEmbedRuleBlock<Meta extends Record<string, any> = Record<string, any>>(md: MarkdownIt, {
|
|
177
|
+
type,
|
|
178
|
+
name,
|
|
179
|
+
syntaxPattern,
|
|
180
|
+
beforeName,
|
|
181
|
+
ruleOptions,
|
|
182
|
+
meta,
|
|
183
|
+
content
|
|
184
|
+
}: EmbedRuleBlockOptions<Meta>): void;
|
|
185
|
+
//#endregion
|
|
186
|
+
//#region src/node/utils/constants.d.ts
|
|
187
|
+
/**
|
|
188
|
+
* 支持的视频文件名扩展名
|
|
189
|
+
*/
|
|
190
|
+
declare const EXTENSION_VIDEOS: string[];
|
|
191
|
+
/**
|
|
192
|
+
* 支持的图片文件名扩展名
|
|
193
|
+
*/
|
|
194
|
+
declare const EXTENSION_IMAGES: string[];
|
|
195
|
+
/**
|
|
196
|
+
* 支持的音频文件名扩展名
|
|
197
|
+
*/
|
|
198
|
+
declare const EXTENSION_AUDIOS: string[];
|
|
199
|
+
//#endregion
|
|
200
|
+
//#region src/node/utils/logger.d.ts
|
|
201
|
+
type LogType = 'info' | 'warn' | 'error' | 'debug';
|
|
202
|
+
type LogLevel = LogType | 'silent';
|
|
203
|
+
/**
|
|
204
|
+
* Logger interface
|
|
205
|
+
*
|
|
206
|
+
* 日志接口
|
|
207
|
+
*/
|
|
208
|
+
interface Logger {
|
|
209
|
+
/**
|
|
210
|
+
* Debug log
|
|
211
|
+
*
|
|
212
|
+
* 调试日志
|
|
213
|
+
*/
|
|
214
|
+
debug: (msg: string, level?: boolean | LogLevel) => void;
|
|
215
|
+
/**
|
|
216
|
+
* Info log
|
|
217
|
+
*
|
|
218
|
+
* 信息日志
|
|
219
|
+
*/
|
|
220
|
+
info: (msg: string, level?: boolean | LogLevel) => void;
|
|
221
|
+
/**
|
|
222
|
+
* Warning log
|
|
223
|
+
*
|
|
224
|
+
* 警告日志
|
|
225
|
+
*/
|
|
226
|
+
warn: (msg: string, level?: boolean | LogLevel) => void;
|
|
227
|
+
/**
|
|
228
|
+
* Error log
|
|
229
|
+
*
|
|
230
|
+
* 错误日志
|
|
231
|
+
*/
|
|
232
|
+
error: (msg: string, level?: boolean | LogLevel) => void;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Log levels mapping
|
|
236
|
+
*
|
|
237
|
+
* 日志级别映射
|
|
238
|
+
*/
|
|
239
|
+
declare const logLevels: Record<LogLevel, number>;
|
|
240
|
+
/**
|
|
241
|
+
* Create logger instance
|
|
242
|
+
*
|
|
243
|
+
* 创建日志实例
|
|
244
|
+
*
|
|
245
|
+
* @param prefix - Log prefix / 日志前缀
|
|
246
|
+
* @param defaultLevel - Default log level / 默认日志级别
|
|
247
|
+
* @returns Logger instance / 日志实例
|
|
248
|
+
*/
|
|
249
|
+
declare function createLogger(prefix: string, defaultLevel?: LogLevel): Logger;
|
|
250
|
+
//#endregion
|
|
251
|
+
//#region src/node/utils/parseRect.d.ts
|
|
252
|
+
/**
|
|
253
|
+
* Parse rect size string, add unit if it's a number
|
|
254
|
+
*
|
|
255
|
+
* 解析矩形尺寸字符串,如果是数字则添加单位
|
|
256
|
+
*
|
|
257
|
+
* @param str - Size string / 尺寸字符串
|
|
258
|
+
* @param unit - Unit to append (default: 'px') / 要添加的单位(默认:'px')
|
|
259
|
+
* @returns Size string with unit / 带单位的尺寸字符串
|
|
260
|
+
*/
|
|
261
|
+
declare function parseRect(str: string, unit?: string): string;
|
|
262
|
+
//#endregion
|
|
263
|
+
//#region src/node/utils/resolve-attrs.d.ts
|
|
264
|
+
/**
|
|
265
|
+
* Resolve attribute string to object
|
|
266
|
+
*
|
|
267
|
+
* 将属性字符串解析为对象
|
|
268
|
+
*
|
|
269
|
+
* @param info - Attribute string / 属性字符串
|
|
270
|
+
* @returns Object with attrs and rawAttrs / 包含 attrs 和 rawAttrs 的对象
|
|
271
|
+
* @typeParam T - Attribute type / 属性类型
|
|
272
|
+
*/
|
|
273
|
+
declare function resolveAttrs<T extends Record<string, any> = Record<string, any>>(info: string): T;
|
|
274
|
+
/**
|
|
275
|
+
* Resolve single attribute value from info string
|
|
276
|
+
*
|
|
277
|
+
* 从信息字符串中解析单个属性值
|
|
278
|
+
*
|
|
279
|
+
* @param info - Info string / 信息字符串
|
|
280
|
+
* @param key - Attribute key / 属性键
|
|
281
|
+
* @returns Attribute value or undefined / 属性值或 undefined
|
|
282
|
+
*/
|
|
283
|
+
declare function resolveAttr(info: string, key: string): string | undefined;
|
|
284
|
+
//#endregion
|
|
285
|
+
//#region src/node/utils/slugify.d.ts
|
|
286
|
+
/**
|
|
287
|
+
* Default slugification function
|
|
288
|
+
*/
|
|
289
|
+
declare function slugify(str: string): string;
|
|
290
|
+
//#endregion
|
|
291
|
+
//#region src/node/utils/stringify-attrs.d.ts
|
|
292
|
+
/**
|
|
293
|
+
* Stringify attributes object to HTML attribute string
|
|
294
|
+
*
|
|
295
|
+
* 将属性对象字符串化为 HTML 属性字符串
|
|
296
|
+
*
|
|
297
|
+
* @param attrs - Attributes object / 属性对象
|
|
298
|
+
* @param withUndefinedOrNull - Whether to include undefined/null values / 是否包含 undefined/null 值
|
|
299
|
+
* @param forceStringify - Keys to force stringify / 强制字符串化的键
|
|
300
|
+
* @returns HTML attribute string / HTML 属性字符串
|
|
301
|
+
* @typeParam T - Attribute type / 属性类型
|
|
302
|
+
*/
|
|
303
|
+
declare function stringifyAttrs<T extends object = object>(attrs: T, withUndefinedOrNull?: boolean, forceStringify?: (keyof T)[]): string;
|
|
304
|
+
//#endregion
|
|
305
|
+
//#region src/node/utils/treat-as-html.d.ts
|
|
306
|
+
declare function treatAsHtml(filename: string): boolean;
|
|
307
|
+
//#endregion
|
|
308
|
+
//#region src/node/vitepress/createLocales.d.ts
|
|
309
|
+
type BuiltinLocale<LocaleData extends Record<string, unknown>> = [langCodes: string[], localeData: LocaleData];
|
|
310
|
+
type BuiltinLocales<LocaleData extends Record<string, unknown>> = BuiltinLocale<LocaleData>[];
|
|
311
|
+
/**
|
|
312
|
+
* 创建 locales
|
|
313
|
+
* @param builtinLocales 内置的 locales
|
|
314
|
+
* @param userLocales 用户的 locales
|
|
315
|
+
* @returns locales
|
|
316
|
+
*/
|
|
317
|
+
declare function createLocales<LocaleData extends Record<string, unknown>>(builtinLocales: BuiltinLocales<LocaleData>, userLocales?: Record<string, LocaleData>): Record<string, LocaleData>;
|
|
318
|
+
//#endregion
|
|
319
|
+
//#region src/node/vitepress/get-locale-with-path.d.ts
|
|
320
|
+
declare function getLocaleWithPath(path: string): {
|
|
321
|
+
lang: string;
|
|
322
|
+
locale: string;
|
|
323
|
+
};
|
|
324
|
+
//#endregion
|
|
325
|
+
//#region src/node/vitepress/get-vitepress-config.d.ts
|
|
326
|
+
declare function getVitepressConfig(): SiteConfig;
|
|
327
|
+
//#endregion
|
|
328
|
+
//#region src/node/vitepress/resolve-route-link.d.ts
|
|
329
|
+
declare function resolveRouteLink(url: string, env: MarkdownEnv): string;
|
|
330
|
+
//#endregion
|
|
331
|
+
export { BuiltinLocale, BuiltinLocales, ContainerOptions, EXTENSION_AUDIOS, EXTENSION_IMAGES, EXTENSION_VIDEOS, EXTERNAL_URL_RE, EmbedRuleBlockOptions, LogLevel, LogType, Logger, SizeOptions, URL_PROTOCOL_RE, createContainerPlugin, createContainerSyntaxPlugin, createEmbedRuleBlock, createLocales, createLogger, getLocaleWithPath, getVitepressConfig, isExternal, isLinkWithProtocol, logLevels, parseRect, resolveAttr, resolveAttrs, resolveRouteLink, slugify, stringifyAttrs, treatAsHtml };
|