@ruan-cat/vitepress-preset-config 0.7.2 → 0.9.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/theme.d.mts CHANGED
@@ -2,23 +2,18 @@ import * as vue from 'vue';
2
2
  import { EnhanceAppContext } from 'vitepress';
3
3
 
4
4
  /**
5
- * 一个回调函数 用来暴露变量 实现注册\
6
- * @deprecated
5
+ * 一个回调函数 用来暴露变量 实现注册
7
6
  */
8
7
  interface EnhanceAppCallBack {
9
8
  ({ app, router, siteData }: EnhanceAppContext): void;
10
9
  }
11
10
  /**
12
- * @deprecated
13
11
  */
14
12
  interface DefineRuancatPresetThemeParams {
15
13
  enhanceAppCallBack?: EnhanceAppCallBack;
16
14
  }
17
- /**
18
- * 定义默认主题预设
19
- * @deprecated
20
- */
21
- declare function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParams): {
15
+ /** 默认主题配置 */
16
+ declare const defaultTheme: {
22
17
  extends: {
23
18
  Layout: vue.DefineComponent;
24
19
  enhanceApp: (ctx: EnhanceAppContext) => void;
@@ -29,32 +24,10 @@ declare function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParam
29
24
  enhanceApp({ app, router, siteData }: EnhanceAppContext): void;
30
25
  };
31
26
  /**
32
- * 默认布局配置
33
- * @description
34
- * 有疑惑 经过测试 该写法会导致找不到主题文件
35
- */
36
- declare const defaultLayoutConfig: {
37
- "doc-before": () => vue.VNode<vue.RendererNode, vue.RendererElement, {
38
- [key: string]: any;
39
- }>;
40
- "nav-bar-content-after": () => vue.VNode<vue.RendererNode, vue.RendererElement, {
41
- [key: string]: any;
42
- }>;
43
- "nav-screen-content-after": () => vue.VNode<vue.RendererNode, vue.RendererElement, {
44
- [key: string]: any;
45
- }>;
46
- "layout-top": () => vue.VNode<vue.RendererNode, vue.RendererElement, {
47
- [key: string]: any;
48
- }>[];
49
- };
50
- /**
51
- * 默认 enhanceApp 预设
52
- * @description
53
- * 有疑惑 经过测试 该写法会导致找不到主题文件
27
+ * 定义默认主题预设
54
28
  */
55
- declare function defaultEnhanceAppPreset({ app, router, siteData }: EnhanceAppContext): void;
56
- /** 默认主题配置 */
57
- declare const defaultTheme: {
29
+ declare function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParams): {
30
+ enhanceApp({ app, router, siteData }: EnhanceAppContext): void;
58
31
  extends: {
59
32
  Layout: vue.DefineComponent;
60
33
  enhanceApp: (ctx: EnhanceAppContext) => void;
@@ -62,18 +35,6 @@ declare const defaultTheme: {
62
35
  Layout: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
63
36
  [key: string]: any;
64
37
  }>;
65
- enhanceApp({ app, router, siteData }: EnhanceAppContext): void;
66
- };
67
- /**
68
- * 默认主题配置2
69
- * @description
70
- * 从 @sugarat/theme 内学习的配置写法
71
- */
72
- declare const defaultTheme2: {
73
- Layout: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
74
- [key: string]: any;
75
- }>;
76
- enhanceApp(ctx: EnhanceAppContext): void;
77
38
  };
78
39
 
79
- export { type DefineRuancatPresetThemeParams, type EnhanceAppCallBack, defaultEnhanceAppPreset, defaultLayoutConfig, defaultTheme, defaultTheme2, defineRuancatPresetTheme };
40
+ export { type DefineRuancatPresetThemeParams, type EnhanceAppCallBack, defaultTheme, defineRuancatPresetTheme };
package/dist/theme.mjs CHANGED
@@ -8,41 +8,13 @@ import {
8
8
  InjectionKey,
9
9
  LayoutMode
10
10
  } from "@nolebase/vitepress-plugin-enhanced-readabilities/client";
11
+ import "@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css";
11
12
  import { NolebaseHighlightTargetedHeading } from "@nolebase/vitepress-plugin-highlight-targeted-heading/client";
13
+ import "@nolebase/vitepress-plugin-highlight-targeted-heading/client/style.css";
12
14
  import { NolebaseGitChangelogPlugin } from "@nolebase/vitepress-plugin-git-changelog/client";
15
+ import "@nolebase/vitepress-plugin-git-changelog/client/style.css";
13
16
  import TwoslashFloatingVue from "@shikijs/vitepress-twoslash/client";
14
- function defineRuancatPresetTheme(params) {
15
- return {
16
- extends: DefaultTheme,
17
- Layout: () => {
18
- return h(DefaultTheme.Layout, null, {
19
- // https://vitepress.dev/guide/extending-default-theme#layout-slots
20
- "doc-before": () => h(NolebaseBreadcrumbs),
21
- "nav-bar-content-after": () => h(NolebaseEnhancedReadabilitiesMenu),
22
- // 为较窄的屏幕(通常是小于 iPad Mini)添加阅读增强菜单
23
- "nav-screen-content-after": () => h(NolebaseEnhancedReadabilitiesScreenMenu),
24
- "layout-top": () => [h(NolebaseHighlightTargetedHeading)]
25
- });
26
- },
27
- enhanceApp({ app, router, siteData }) {
28
- var _a;
29
- app.use(NolebaseGitChangelogPlugin);
30
- app.use(TwoslashFloatingVue);
31
- app.provide(InjectionKey, {
32
- layoutSwitch: {
33
- defaultMode: LayoutMode["BothWidthAdjustable"],
34
- pageLayoutMaxWidth: {
35
- defaultMaxWidth: 85
36
- },
37
- contentLayoutMaxWidth: {
38
- defaultMaxWidth: 95
39
- }
40
- }
41
- });
42
- (_a = params == null ? void 0 : params.enhanceAppCallBack) == null ? void 0 : _a.call(params, { app, router, siteData });
43
- }
44
- };
45
- }
17
+ import "@shikijs/vitepress-twoslash/style.css";
46
18
  var defaultLayoutConfig = {
47
19
  // https://vitepress.dev/guide/extending-default-theme#layout-slots
48
20
  "doc-before": () => h(NolebaseBreadcrumbs),
@@ -75,39 +47,17 @@ var defaultTheme = {
75
47
  defaultEnhanceAppPreset({ app, router, siteData });
76
48
  }
77
49
  };
78
- var defaultTheme2 = {
79
- ...DefaultTheme,
80
- Layout: () => {
81
- return h(DefaultTheme.Layout, null, {
82
- // https://vitepress.dev/guide/extending-default-theme#layout-slots
83
- "doc-before": () => h(NolebaseBreadcrumbs),
84
- "nav-bar-content-after": () => h(NolebaseEnhancedReadabilitiesMenu),
85
- // 为较窄的屏幕(通常是小于 iPad Mini)添加阅读增强菜单
86
- "nav-screen-content-after": () => h(NolebaseEnhancedReadabilitiesScreenMenu),
87
- "layout-top": () => [h(NolebaseHighlightTargetedHeading)]
88
- });
89
- },
90
- enhanceApp(ctx) {
91
- DefaultTheme.enhanceApp(ctx);
92
- ctx.app.use(NolebaseGitChangelogPlugin);
93
- ctx.app.use(TwoslashFloatingVue);
94
- ctx.app.provide(InjectionKey, {
95
- layoutSwitch: {
96
- defaultMode: LayoutMode["BothWidthAdjustable"],
97
- pageLayoutMaxWidth: {
98
- defaultMaxWidth: 85
99
- },
100
- contentLayoutMaxWidth: {
101
- defaultMaxWidth: 95
102
- }
103
- }
104
- });
105
- }
106
- };
50
+ function defineRuancatPresetTheme(params) {
51
+ return {
52
+ ...defaultTheme,
53
+ enhanceApp({ app, router, siteData }) {
54
+ var _a;
55
+ defaultTheme.enhanceApp({ app, router, siteData });
56
+ (_a = params == null ? void 0 : params.enhanceAppCallBack) == null ? void 0 : _a.call(params, { app, router, siteData });
57
+ }
58
+ };
59
+ }
107
60
  export {
108
- defaultEnhanceAppPreset,
109
- defaultLayoutConfig,
110
61
  defaultTheme,
111
- defaultTheme2,
112
62
  defineRuancatPresetTheme
113
63
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ruan-cat/vitepress-preset-config",
3
- "version": "0.7.2",
3
+ "version": "0.9.0",
4
4
  "description": "用于给大多数的vitepress项目提供一个预设的配置文件。",
5
5
  "homepage": "https://vitepress-preset.ruancat6312.top",
6
6
  "types": "./src/config.mts",
@@ -54,10 +54,9 @@
54
54
  "types": "./src/config.mts"
55
55
  },
56
56
  "./theme": {
57
- "import": "./dist/theme.mjs",
57
+ "import": "./src/theme.ts",
58
58
  "types": "./src/theme.ts"
59
59
  },
60
- "./theme.css": "./dist/theme.css",
61
60
  "./src/*": "./src/*"
62
61
  },
63
62
  "keywords": [
@@ -1,7 +1,7 @@
1
1
  // 避免直接使用自己的包
2
2
  // import { setUserConfig, setGenerateSidebar, addChangelog2doc } from "@ruan-cat/vitepress-preset-config/config";
3
3
  // @ts-ignore
4
- import { setUserConfig, setGenerateSidebar, addChangelog2doc } from "../../src/config.mts";
4
+ import { setUserConfig, setGenerateSidebar, addChangelog2doc } from "../config.mts";
5
5
  import { description } from "../../package.json";
6
6
 
7
7
  addChangelog2doc({
@@ -1,18 +1,6 @@
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";
1
+ import { defineRuancatPresetTheme } from "@ruan-cat/vitepress-preset-config/theme";
6
2
 
7
- // 导入全部的主题样式
8
- import "@ruan-cat/vitepress-preset-config/theme.css";
3
+ // 增加用户自定义样式
9
4
  import "./style.css";
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;
5
+
6
+ export default defineRuancatPresetTheme();
package/src/theme.ts CHANGED
@@ -3,8 +3,11 @@ import { h } from "vue";
3
3
  import type { Theme, EnhanceAppContext } from "vitepress";
4
4
  import DefaultTheme from "vitepress/theme";
5
5
 
6
- // 将全部的样式集中在专门的文件内 在tsup内被打包出去
7
- import "./index.css";
6
+ /**
7
+ * 警告 将全部的样式集中在专门的文件内 在tsup内被打包出去
8
+ * 不再对外提供专门的样式
9
+ */
10
+ // import "./index.css";
8
11
 
9
12
  // 警告 放弃内部处理该库 直接使用peer对等依赖 不再考虑包装封装该库
10
13
  // import { VitepressDemoBox, VitepressDemoPlaceholder } from "@ruan-cat/vitepress-demo-plugin";
@@ -15,88 +18,41 @@ import { NolebaseBreadcrumbs } from "@nolebase/vitepress-plugin-breadcrumbs/clie
15
18
  import {
16
19
  NolebaseEnhancedReadabilitiesMenu,
17
20
  NolebaseEnhancedReadabilitiesScreenMenu,
18
-
19
21
  // https://nolebase-integrations.ayaka.io/pages/zh-CN/integrations/vitepress-plugin-enhanced-readabilities/#如何在-vitepress-中进行配置
20
22
  InjectionKey,
21
23
  type Options,
22
24
  LayoutMode,
23
25
  } from "@nolebase/vitepress-plugin-enhanced-readabilities/client";
24
- // import "@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css";
26
+ import "@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css";
25
27
 
26
28
  import { NolebaseHighlightTargetedHeading } from "@nolebase/vitepress-plugin-highlight-targeted-heading/client";
27
- // import "@nolebase/vitepress-plugin-highlight-targeted-heading/client/style.css";
29
+ import "@nolebase/vitepress-plugin-highlight-targeted-heading/client/style.css";
28
30
 
29
31
  import { NolebaseGitChangelogPlugin } from "@nolebase/vitepress-plugin-git-changelog/client";
30
- // import "@nolebase/vitepress-plugin-git-changelog/client/style.css";
32
+ import "@nolebase/vitepress-plugin-git-changelog/client/style.css";
31
33
 
32
34
  import TwoslashFloatingVue from "@shikijs/vitepress-twoslash/client";
33
- // import "@shikijs/vitepress-twoslash/style.css";
35
+ import "@shikijs/vitepress-twoslash/style.css";
34
36
 
35
37
  /**
36
- * 一个回调函数 用来暴露变量 实现注册\
37
- * @deprecated
38
+ * 一个回调函数 用来暴露变量 实现注册
38
39
  */
39
40
  export interface EnhanceAppCallBack {
40
41
  ({ app, router, siteData }: EnhanceAppContext): void;
41
42
  }
42
43
 
43
44
  /**
44
- * @deprecated
45
45
  */
46
46
  export interface DefineRuancatPresetThemeParams {
47
47
  enhanceAppCallBack?: EnhanceAppCallBack;
48
48
  }
49
49
 
50
- /**
51
- * 定义默认主题预设
52
- * @deprecated
53
- */
54
- export function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParams) {
55
- return {
56
- extends: DefaultTheme,
57
- Layout: () => {
58
- return h(DefaultTheme.Layout, null, {
59
- // https://vitepress.dev/guide/extending-default-theme#layout-slots
60
- "doc-before": () => h(NolebaseBreadcrumbs),
61
- "nav-bar-content-after": () => h(NolebaseEnhancedReadabilitiesMenu),
62
- // 为较窄的屏幕(通常是小于 iPad Mini)添加阅读增强菜单
63
- "nav-screen-content-after": () => h(NolebaseEnhancedReadabilitiesScreenMenu),
64
- "layout-top": () => [h(NolebaseHighlightTargetedHeading)],
65
- });
66
- },
67
- enhanceApp({ app, router, siteData }: EnhanceAppContext) {
68
- app.use(NolebaseGitChangelogPlugin);
69
- app.use(TwoslashFloatingVue);
70
- app.provide(InjectionKey, {
71
- layoutSwitch: {
72
- defaultMode: LayoutMode["BothWidthAdjustable"],
73
- pageLayoutMaxWidth: {
74
- defaultMaxWidth: 85,
75
- },
76
- contentLayoutMaxWidth: {
77
- defaultMaxWidth: 95,
78
- },
79
- },
80
- } as Options);
81
-
82
- /**
83
- * 放弃全局注册demo展示组件
84
- * 在生产环境内使用peer对等依赖
85
- */
86
- // app.component("VitepressDemoBox", VitepressDemoBox);
87
- // app.component("VitepressDemoPlaceholder", VitepressDemoPlaceholder);
88
-
89
- params?.enhanceAppCallBack?.({ app, router, siteData });
90
- },
91
- } satisfies Theme;
92
- }
93
-
94
50
  /**
95
51
  * 默认布局配置
96
52
  * @description
97
- * 有疑惑 经过测试 该写法会导致找不到主题文件
53
+ * @private
98
54
  */
99
- export const defaultLayoutConfig = {
55
+ const defaultLayoutConfig = {
100
56
  // https://vitepress.dev/guide/extending-default-theme#layout-slots
101
57
  "doc-before": () => h(NolebaseBreadcrumbs),
102
58
  "nav-bar-content-after": () => h(NolebaseEnhancedReadabilitiesMenu),
@@ -108,9 +64,10 @@ export const defaultLayoutConfig = {
108
64
  /**
109
65
  * 默认 enhanceApp 预设
110
66
  * @description
111
- * 有疑惑 经过测试 该写法会导致找不到主题文件
67
+ * 这个函数预期应该作为一个内部函数 不应该对外暴露使用
68
+ * @private
112
69
  */
113
- export function defaultEnhanceAppPreset({ app, router, siteData }: EnhanceAppContext) {
70
+ function defaultEnhanceAppPreset({ app, router, siteData }: EnhanceAppContext) {
114
71
  app.use(NolebaseGitChangelogPlugin);
115
72
  app.use(TwoslashFloatingVue);
116
73
  app.provide(InjectionKey, {
@@ -124,6 +81,12 @@ export function defaultEnhanceAppPreset({ app, router, siteData }: EnhanceAppCon
124
81
  },
125
82
  },
126
83
  } as Options);
84
+ /**
85
+ * 放弃全局注册demo展示组件
86
+ * 在生产环境内使用peer对等依赖
87
+ */
88
+ // app.component("VitepressDemoBox", VitepressDemoBox);
89
+ // app.component("VitepressDemoPlaceholder", VitepressDemoPlaceholder);
127
90
  }
128
91
 
129
92
  /** 默认主题配置 */
@@ -134,47 +97,20 @@ export const defaultTheme = {
134
97
  },
135
98
  enhanceApp({ app, router, siteData }: EnhanceAppContext) {
136
99
  defaultEnhanceAppPreset({ app, router, siteData });
137
- /**
138
- * 放弃全局注册demo展示组件
139
- * 在生产环境内使用peer对等依赖
140
- */
141
- // app.component("VitepressDemoBox", VitepressDemoBox);
142
- // app.component("VitepressDemoPlaceholder", VitepressDemoPlaceholder);
143
100
  },
144
101
  } satisfies Theme;
145
102
 
146
103
  /**
147
- * 默认主题配置2
148
- * @description
149
- * 从 @sugarat/theme 内学习的配置写法
104
+ * 定义默认主题预设
150
105
  */
151
- export const defaultTheme2 = {
152
- ...DefaultTheme,
153
- Layout: () => {
154
- return h(DefaultTheme.Layout, null, {
155
- // https://vitepress.dev/guide/extending-default-theme#layout-slots
156
- "doc-before": () => h(NolebaseBreadcrumbs),
157
- "nav-bar-content-after": () => h(NolebaseEnhancedReadabilitiesMenu),
158
- // 为较窄的屏幕(通常是小于 iPad Mini)添加阅读增强菜单
159
- "nav-screen-content-after": () => h(NolebaseEnhancedReadabilitiesScreenMenu),
160
- "layout-top": () => [h(NolebaseHighlightTargetedHeading)],
161
- });
162
- },
163
- enhanceApp(ctx: EnhanceAppContext) {
164
- DefaultTheme.enhanceApp(ctx);
165
-
166
- ctx.app.use(NolebaseGitChangelogPlugin);
167
- ctx.app.use(TwoslashFloatingVue);
168
- ctx.app.provide(InjectionKey, {
169
- layoutSwitch: {
170
- defaultMode: LayoutMode["BothWidthAdjustable"],
171
- pageLayoutMaxWidth: {
172
- defaultMaxWidth: 85,
173
- },
174
- contentLayoutMaxWidth: {
175
- defaultMaxWidth: 95,
176
- },
177
- },
178
- } as Options);
179
- },
180
- } satisfies Theme;
106
+ export function defineRuancatPresetTheme(params?: DefineRuancatPresetThemeParams) {
107
+ return {
108
+ ...defaultTheme,
109
+ enhanceApp({ app, router, siteData }: EnhanceAppContext) {
110
+ // 回调默认主题内的函数
111
+ defaultTheme.enhanceApp({ app, router, siteData });
112
+ // 执行用户传入的回调函数
113
+ params?.enhanceAppCallBack?.({ app, router, siteData });
114
+ },
115
+ } satisfies Theme;
116
+ }
package/dist/theme.css DELETED
@@ -1,6 +0,0 @@
1
- @import "@nolebase/vitepress-plugin-enhanced-readabilities/client/style.css";
2
- @import "@nolebase/vitepress-plugin-highlight-targeted-heading/client/style.css";
3
- @import "@nolebase/vitepress-plugin-git-changelog/client/style.css";
4
- @import "@shikijs/vitepress-twoslash/style.css";
5
-
6
- /* src/index.css */