@ruan-cat/vitepress-preset-config 0.5.0 → 0.7.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/dist/config.mjs +1 -1
- package/dist/theme.css +0 -1
- package/dist/theme.d.mts +40 -3
- package/dist/theme.mjs +35 -3
- package/package.json +12 -4
- package/src/.vitepress/theme/index.ts +15 -3
- package/src/config.mts +1 -1
- package/src/index.css +2 -1
- package/src/theme.ts +64 -6
package/dist/config.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { defineConfig } from "vitepress";
|
|
3
3
|
import { generateSidebar } from "vitepress-sidebar";
|
|
4
4
|
import { GitChangelog, GitChangelogMarkdownSection } from "@nolebase/vitepress-plugin-git-changelog/vite";
|
|
5
|
-
import { vitepressDemoPlugin } from "
|
|
5
|
+
import { vitepressDemoPlugin } from "vitepress-demo-plugin";
|
|
6
6
|
import { merge, isUndefined, cloneDeep } from "lodash-es";
|
|
7
7
|
import consola from "consola";
|
|
8
8
|
import { addChangelog2doc, hasChangelogMd } from "@ruan-cat/utils/node-esm";
|
package/dist/theme.css
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
@import "@ruan-cat/vitepress-demo-plugin/dist/index.css";
|
|
2
1
|
@import "@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css";
|
|
3
2
|
@import "@nolebase/vitepress-plugin-highlight-targeted-heading/client/style.css";
|
|
4
3
|
@import "@nolebase/vitepress-plugin-git-changelog/client/style.css";
|
package/dist/theme.d.mts
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import * as vue from 'vue';
|
|
2
2
|
import { EnhanceAppContext } from 'vitepress';
|
|
3
3
|
|
|
4
|
-
/**
|
|
4
|
+
/**
|
|
5
|
+
* 一个回调函数 用来暴露变量 实现注册\
|
|
6
|
+
* @deprecated
|
|
7
|
+
*/
|
|
5
8
|
interface EnhanceAppCallBack {
|
|
6
9
|
({ app, router, siteData }: EnhanceAppContext): void;
|
|
7
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* @deprecated
|
|
13
|
+
*/
|
|
8
14
|
interface DefineRuancatPresetThemeParams {
|
|
9
15
|
enhanceAppCallBack?: EnhanceAppCallBack;
|
|
10
16
|
}
|
|
11
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* 定义默认主题预设
|
|
19
|
+
* @deprecated
|
|
20
|
+
*/
|
|
12
21
|
declare function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParams): {
|
|
13
22
|
extends: {
|
|
14
23
|
Layout: vue.DefineComponent;
|
|
@@ -19,5 +28,33 @@ declare function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParam
|
|
|
19
28
|
}>;
|
|
20
29
|
enhanceApp({ app, router, siteData }: EnhanceAppContext): void;
|
|
21
30
|
};
|
|
31
|
+
/** 默认布局配置 */
|
|
32
|
+
declare const defaultLayoutConfig: {
|
|
33
|
+
"doc-before": () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
34
|
+
[key: string]: any;
|
|
35
|
+
}>;
|
|
36
|
+
"nav-bar-content-after": () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
37
|
+
[key: string]: any;
|
|
38
|
+
}>;
|
|
39
|
+
"nav-screen-content-after": () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
40
|
+
[key: string]: any;
|
|
41
|
+
}>;
|
|
42
|
+
"layout-top": () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
43
|
+
[key: string]: any;
|
|
44
|
+
}>[];
|
|
45
|
+
};
|
|
46
|
+
/** 默认 enhanceApp 预设 */
|
|
47
|
+
declare function defaultEnhanceAppPreset({ app, router, siteData }: EnhanceAppContext): void;
|
|
48
|
+
/** 默认主题配置 */
|
|
49
|
+
declare const defaultTheme: {
|
|
50
|
+
extends: {
|
|
51
|
+
Layout: vue.DefineComponent;
|
|
52
|
+
enhanceApp: (ctx: EnhanceAppContext) => void;
|
|
53
|
+
};
|
|
54
|
+
Layout: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
55
|
+
[key: string]: any;
|
|
56
|
+
}>;
|
|
57
|
+
enhanceApp({ app, router, siteData }: EnhanceAppContext): void;
|
|
58
|
+
};
|
|
22
59
|
|
|
23
|
-
export { type DefineRuancatPresetThemeParams, type EnhanceAppCallBack, defineRuancatPresetTheme };
|
|
60
|
+
export { type DefineRuancatPresetThemeParams, type EnhanceAppCallBack, defaultEnhanceAppPreset, defaultLayoutConfig, defaultTheme, defineRuancatPresetTheme };
|
package/dist/theme.mjs
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
// src/theme.ts
|
|
2
2
|
import { h } from "vue";
|
|
3
3
|
import DefaultTheme from "vitepress/theme";
|
|
4
|
-
import { VitepressDemoBox, VitepressDemoPlaceholder } from "@ruan-cat/vitepress-demo-plugin";
|
|
5
4
|
import { NolebaseBreadcrumbs } from "@nolebase/vitepress-plugin-breadcrumbs/client";
|
|
6
5
|
import {
|
|
7
6
|
NolebaseEnhancedReadabilitiesMenu,
|
|
@@ -40,12 +39,45 @@ function defineRuancatPresetTheme(params) {
|
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
41
|
});
|
|
43
|
-
app.component("VitepressDemoBox", VitepressDemoBox);
|
|
44
|
-
app.component("VitepressDemoPlaceholder", VitepressDemoPlaceholder);
|
|
45
42
|
(_a = params == null ? void 0 : params.enhanceAppCallBack) == null ? void 0 : _a.call(params, { app, router, siteData });
|
|
46
43
|
}
|
|
47
44
|
};
|
|
48
45
|
}
|
|
46
|
+
var defaultLayoutConfig = {
|
|
47
|
+
// https://vitepress.dev/guide/extending-default-theme#layout-slots
|
|
48
|
+
"doc-before": () => h(NolebaseBreadcrumbs),
|
|
49
|
+
"nav-bar-content-after": () => h(NolebaseEnhancedReadabilitiesMenu),
|
|
50
|
+
// 为较窄的屏幕(通常是小于 iPad Mini)添加阅读增强菜单
|
|
51
|
+
"nav-screen-content-after": () => h(NolebaseEnhancedReadabilitiesScreenMenu),
|
|
52
|
+
"layout-top": () => [h(NolebaseHighlightTargetedHeading)]
|
|
53
|
+
};
|
|
54
|
+
function defaultEnhanceAppPreset({ app, router, siteData }) {
|
|
55
|
+
app.use(NolebaseGitChangelogPlugin);
|
|
56
|
+
app.use(TwoslashFloatingVue);
|
|
57
|
+
app.provide(InjectionKey, {
|
|
58
|
+
layoutSwitch: {
|
|
59
|
+
defaultMode: LayoutMode["BothWidthAdjustable"],
|
|
60
|
+
pageLayoutMaxWidth: {
|
|
61
|
+
defaultMaxWidth: 85
|
|
62
|
+
},
|
|
63
|
+
contentLayoutMaxWidth: {
|
|
64
|
+
defaultMaxWidth: 95
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
var defaultTheme = {
|
|
70
|
+
extends: DefaultTheme,
|
|
71
|
+
Layout: () => {
|
|
72
|
+
return h(DefaultTheme.Layout, null, defaultLayoutConfig);
|
|
73
|
+
},
|
|
74
|
+
enhanceApp({ app, router, siteData }) {
|
|
75
|
+
defaultEnhanceAppPreset({ app, router, siteData });
|
|
76
|
+
}
|
|
77
|
+
};
|
|
49
78
|
export {
|
|
79
|
+
defaultEnhanceAppPreset,
|
|
80
|
+
defaultLayoutConfig,
|
|
81
|
+
defaultTheme,
|
|
50
82
|
defineRuancatPresetTheme
|
|
51
83
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ruan-cat/vitepress-preset-config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "用于给大多数的vitepress项目提供一个预设的配置文件。",
|
|
5
5
|
"homepage": "https://vitepress-preset.ruancat6312.top",
|
|
6
6
|
"types": "./src/config.mts",
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
"consola": "^3.4.0",
|
|
15
15
|
"js-yaml": "^4.1.0",
|
|
16
16
|
"lodash-es": "^4.17.21",
|
|
17
|
+
"vitepress-demo-plugin": "^1.3.1",
|
|
17
18
|
"vitepress-sidebar": "^1.31.1",
|
|
18
19
|
"vue": "^3.5.13",
|
|
19
|
-
"@ruan-cat/utils": "^4.2.1"
|
|
20
|
-
"@ruan-cat/vitepress-demo-plugin": "^0.1.0"
|
|
20
|
+
"@ruan-cat/utils": "^4.2.1"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@types/lodash-es": "^4.17.12",
|
|
@@ -25,11 +25,19 @@
|
|
|
25
25
|
"vitepress": "^1.6.3"
|
|
26
26
|
},
|
|
27
27
|
"peerDependencies": {
|
|
28
|
-
"vitepress": "^1.6.x"
|
|
28
|
+
"vitepress": "^1.6.x",
|
|
29
|
+
"vitepress-demo-plugin": "^1",
|
|
30
|
+
"vue": "^3.5.x"
|
|
29
31
|
},
|
|
30
32
|
"peerDependenciesMeta": {
|
|
31
33
|
"vitepress": {
|
|
32
34
|
"optional": true
|
|
35
|
+
},
|
|
36
|
+
"vue": {
|
|
37
|
+
"optional": true
|
|
38
|
+
},
|
|
39
|
+
"vitepress-demo-plugin": {
|
|
40
|
+
"optional": false
|
|
33
41
|
}
|
|
34
42
|
},
|
|
35
43
|
"bugs": {
|
|
@@ -1,6 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
// https://vitepress.dev/guide/custom-theme
|
|
2
|
+
import { h } from "vue";
|
|
3
|
+
import type { Theme, EnhanceAppContext } from "vitepress";
|
|
4
|
+
import DefaultTheme from "vitepress/theme";
|
|
5
|
+
import { defaultLayoutConfig, defaultEnhanceAppPreset } from "@ruan-cat/vitepress-preset-config/theme";
|
|
2
6
|
|
|
7
|
+
// 导入全部的主题样式
|
|
3
8
|
import "@ruan-cat/vitepress-preset-config/theme.css";
|
|
4
9
|
import "./style.css";
|
|
5
|
-
|
|
6
|
-
|
|
10
|
+
export default {
|
|
11
|
+
extends: DefaultTheme,
|
|
12
|
+
Layout: () => {
|
|
13
|
+
return h(DefaultTheme.Layout, null, defaultLayoutConfig);
|
|
14
|
+
},
|
|
15
|
+
enhanceApp({ app, router, siteData }: EnhanceAppContext) {
|
|
16
|
+
defaultEnhanceAppPreset({ app, router, siteData });
|
|
17
|
+
},
|
|
18
|
+
} satisfies Theme;
|
package/src/config.mts
CHANGED
|
@@ -4,7 +4,7 @@ import { generateSidebar, withSidebar } from "vitepress-sidebar";
|
|
|
4
4
|
export { defineConfig };
|
|
5
5
|
|
|
6
6
|
import { GitChangelog, GitChangelogMarkdownSection } from "@nolebase/vitepress-plugin-git-changelog/vite";
|
|
7
|
-
import { vitepressDemoPlugin } from "
|
|
7
|
+
import { vitepressDemoPlugin } from "vitepress-demo-plugin";
|
|
8
8
|
|
|
9
9
|
import { merge, isUndefined, cloneDeep } from "lodash-es";
|
|
10
10
|
import consola from "consola";
|
package/src/index.css
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
/* 放弃二次封装该库 在生产环境内使用peer对等依赖 */
|
|
2
|
+
/* @import "@ruan-cat/vitepress-demo-plugin/dist/index.css"; */
|
|
2
3
|
@import "@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css";
|
|
3
4
|
@import "@nolebase/vitepress-plugin-highlight-targeted-heading/client/style.css";
|
|
4
5
|
@import "@nolebase/vitepress-plugin-git-changelog/client/style.css";
|
package/src/theme.ts
CHANGED
|
@@ -6,7 +6,8 @@ import DefaultTheme from "vitepress/theme";
|
|
|
6
6
|
// 将全部的样式集中在专门的文件内 在tsup内被打包出去
|
|
7
7
|
import "./index.css";
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
// 警告 放弃内部处理该库 直接使用peer对等依赖 不再考虑包装封装该库
|
|
10
|
+
// import { VitepressDemoBox, VitepressDemoPlaceholder } from "@ruan-cat/vitepress-demo-plugin";
|
|
10
11
|
// import "@ruan-cat/vitepress-demo-plugin/dist/index.css";
|
|
11
12
|
|
|
12
13
|
import { NolebaseBreadcrumbs } from "@nolebase/vitepress-plugin-breadcrumbs/client";
|
|
@@ -31,16 +32,25 @@ import { NolebaseGitChangelogPlugin } from "@nolebase/vitepress-plugin-git-chang
|
|
|
31
32
|
import TwoslashFloatingVue from "@shikijs/vitepress-twoslash/client";
|
|
32
33
|
// import "@shikijs/vitepress-twoslash/style.css";
|
|
33
34
|
|
|
34
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* 一个回调函数 用来暴露变量 实现注册\
|
|
37
|
+
* @deprecated
|
|
38
|
+
*/
|
|
35
39
|
export interface EnhanceAppCallBack {
|
|
36
40
|
({ app, router, siteData }: EnhanceAppContext): void;
|
|
37
41
|
}
|
|
38
42
|
|
|
43
|
+
/**
|
|
44
|
+
* @deprecated
|
|
45
|
+
*/
|
|
39
46
|
export interface DefineRuancatPresetThemeParams {
|
|
40
47
|
enhanceAppCallBack?: EnhanceAppCallBack;
|
|
41
48
|
}
|
|
42
49
|
|
|
43
|
-
/**
|
|
50
|
+
/**
|
|
51
|
+
* 定义默认主题预设
|
|
52
|
+
* @deprecated
|
|
53
|
+
*/
|
|
44
54
|
export function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParams) {
|
|
45
55
|
return {
|
|
46
56
|
extends: DefaultTheme,
|
|
@@ -68,11 +78,59 @@ export function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParams
|
|
|
68
78
|
},
|
|
69
79
|
},
|
|
70
80
|
} as Options);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* 放弃全局注册demo展示组件
|
|
84
|
+
* 在生产环境内使用peer对等依赖
|
|
85
|
+
*/
|
|
86
|
+
// app.component("VitepressDemoBox", VitepressDemoBox);
|
|
87
|
+
// app.component("VitepressDemoPlaceholder", VitepressDemoPlaceholder);
|
|
74
88
|
|
|
75
89
|
params?.enhanceAppCallBack?.({ app, router, siteData });
|
|
76
90
|
},
|
|
77
91
|
} satisfies Theme;
|
|
78
92
|
}
|
|
93
|
+
|
|
94
|
+
/** 默认布局配置 */
|
|
95
|
+
export const defaultLayoutConfig = {
|
|
96
|
+
// https://vitepress.dev/guide/extending-default-theme#layout-slots
|
|
97
|
+
"doc-before": () => h(NolebaseBreadcrumbs),
|
|
98
|
+
"nav-bar-content-after": () => h(NolebaseEnhancedReadabilitiesMenu),
|
|
99
|
+
// 为较窄的屏幕(通常是小于 iPad Mini)添加阅读增强菜单
|
|
100
|
+
"nav-screen-content-after": () => h(NolebaseEnhancedReadabilitiesScreenMenu),
|
|
101
|
+
"layout-top": () => [h(NolebaseHighlightTargetedHeading)],
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
/** 默认 enhanceApp 预设 */
|
|
105
|
+
export function defaultEnhanceAppPreset({ app, router, siteData }: EnhanceAppContext) {
|
|
106
|
+
app.use(NolebaseGitChangelogPlugin);
|
|
107
|
+
app.use(TwoslashFloatingVue);
|
|
108
|
+
app.provide(InjectionKey, {
|
|
109
|
+
layoutSwitch: {
|
|
110
|
+
defaultMode: LayoutMode["BothWidthAdjustable"],
|
|
111
|
+
pageLayoutMaxWidth: {
|
|
112
|
+
defaultMaxWidth: 85,
|
|
113
|
+
},
|
|
114
|
+
contentLayoutMaxWidth: {
|
|
115
|
+
defaultMaxWidth: 95,
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
} as Options);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/** 默认主题配置 */
|
|
122
|
+
export const defaultTheme = {
|
|
123
|
+
extends: DefaultTheme,
|
|
124
|
+
Layout: () => {
|
|
125
|
+
return h(DefaultTheme.Layout, null, defaultLayoutConfig);
|
|
126
|
+
},
|
|
127
|
+
enhanceApp({ app, router, siteData }: EnhanceAppContext) {
|
|
128
|
+
defaultEnhanceAppPreset({ app, router, siteData });
|
|
129
|
+
/**
|
|
130
|
+
* 放弃全局注册demo展示组件
|
|
131
|
+
* 在生产环境内使用peer对等依赖
|
|
132
|
+
*/
|
|
133
|
+
// app.component("VitepressDemoBox", VitepressDemoBox);
|
|
134
|
+
// app.component("VitepressDemoPlaceholder", VitepressDemoPlaceholder);
|
|
135
|
+
},
|
|
136
|
+
} satisfies Theme;
|