vitepress 0.19.0 → 0.20.1

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.
@@ -53,7 +53,13 @@ export function createRouter(loadPageModule, fallbackComponent) {
53
53
  if (inBrowser) {
54
54
  nextTick(() => {
55
55
  if (targetLoc.hash && !scrollPosition) {
56
- const target = document.querySelector(decodeURIComponent(targetLoc.hash));
56
+ let target = null;
57
+ try {
58
+ target = document.querySelector(decodeURIComponent(targetLoc.hash));
59
+ }
60
+ catch (e) {
61
+ console.warn(e);
62
+ }
57
63
  if (target) {
58
64
  scrollTo(target, targetLoc.hash);
59
65
  return;
@@ -132,9 +138,15 @@ export function useRoute() {
132
138
  return useRouter().route;
133
139
  }
134
140
  function scrollTo(el, hash, smooth = false) {
135
- const target = el.classList.contains('.header-anchor')
136
- ? el
137
- : document.querySelector(decodeURIComponent(hash));
141
+ let target = null;
142
+ try {
143
+ target = el.classList.contains('.header-anchor')
144
+ ? el
145
+ : document.querySelector(decodeURIComponent(hash));
146
+ }
147
+ catch (e) {
148
+ console.warn(e);
149
+ }
138
150
  if (target) {
139
151
  const targetTop = target.offsetTop;
140
152
  // only smooth scroll if distance is smaller than screen height.
@@ -89,7 +89,6 @@ const pageClasses = computed(() => {
89
89
  v-if="theme.algolia"
90
90
  :options="theme.algolia"
91
91
  :multilang="isMultiLang"
92
- :key="site.lang"
93
92
  />
94
93
  </slot>
95
94
  </template>
@@ -108,17 +107,22 @@ const pageClasses = computed(() => {
108
107
 
109
108
  <Content v-if="isCustomLayout" />
110
109
 
111
- <Home v-else-if="enableHome">
112
- <template #hero>
113
- <slot name="home-hero" />
114
- </template>
115
- <template #features>
116
- <slot name="home-features" />
117
- </template>
118
- <template #footer>
119
- <slot name="home-footer" />
120
- </template>
121
- </Home>
110
+ <template v-else-if="enableHome">
111
+ <!-- A slot for customizing the entire homepage easily -->
112
+ <slot name="home">
113
+ <Home>
114
+ <template #hero>
115
+ <slot name="home-hero" />
116
+ </template>
117
+ <template #features>
118
+ <slot name="home-features" />
119
+ </template>
120
+ <template #footer>
121
+ <slot name="home-footer" />
122
+ </template>
123
+ </Home>
124
+ </slot>
125
+ </template>
122
126
 
123
127
  <Page v-else>
124
128
  <template #top>
@@ -52,11 +52,29 @@ function update(options: any) {
52
52
 
53
53
  const { lang } = useData()
54
54
 
55
- function initialize(userOptions: any) {
56
- // if the user has multiple locales, the search results should be filtered
57
- // based on the language
58
- const facetFilters = props.multilang ? ['language:' + lang.value] : []
55
+ // if the user has multiple locales, the search results should be filtered
56
+ // based on the language
57
+ const facetFilters: string[] = props.multilang
58
+ ? ['language:' + lang.value]
59
+ : []
60
+
61
+ if (props.options.searchParameters?.facetFilters) {
62
+ facetFilters.push(...props.options.searchParameters.facetFilters)
63
+ }
59
64
 
65
+ watch(
66
+ lang,
67
+ (newLang, oldLang) => {
68
+ const index = facetFilters.findIndex(
69
+ (filter) => filter === 'language:' + oldLang
70
+ )
71
+ if (index > -1) {
72
+ facetFilters.splice(index, 1, 'language:' + newLang)
73
+ }
74
+ }
75
+ )
76
+
77
+ function initialize(userOptions: any) {
60
78
  docsearch(
61
79
  Object.assign({}, userOptions, {
62
80
  container: '#docsearch',
@@ -64,9 +82,7 @@ function initialize(userOptions: any) {
64
82
  searchParameters: Object.assign({}, userOptions.searchParameters, {
65
83
  // pass a custom lang facetFilter to allow multiple language search
66
84
  // https://github.com/algolia/docsearch-configs/pull/3942
67
- facetFilters: facetFilters.concat(
68
- userOptions.searchParameters?.facetFilters || []
69
- )
85
+ facetFilters
70
86
  }),
71
87
 
72
88
  navigator: {
@@ -11,7 +11,7 @@ export function useNavLink(item) {
11
11
  active = new RegExp(item.value.activeMatch).test(routePath);
12
12
  }
13
13
  else {
14
- const itemPath = normalizePath(withBase(item.value.link));
14
+ const itemPath = normalizePath(item.value.link);
15
15
  active =
16
16
  itemPath === '/'
17
17
  ? itemPath === routePath
@@ -55,6 +55,7 @@ li > div[class*='language-'] {
55
55
  -moz-hyphens: none;
56
56
  -ms-hyphens: none;
57
57
  hyphens: none;
58
+ background: transparent;
58
59
  }
59
60
 
60
61
  [class*='language-'] pre {
@@ -62,7 +63,6 @@ li > div[class*='language-'] {
62
63
  z-index: 1;
63
64
  margin: 0;
64
65
  padding: 1.25rem 1.5rem;
65
- background: transparent;
66
66
  overflow-x: auto;
67
67
  }
68
68
 
package/dist/node/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var serve = require('./serve-dbc4b971.js');
3
+ var serve = require('./serve-3fdbda2c.js');
4
4
  require('vite');
5
5
  require('readline');
6
6
  require('assert');
@@ -11,6 +11,7 @@ require('buffer');
11
11
  require('path');
12
12
  require('fs');
13
13
  require('punycode');
14
+ require('prismjs');
14
15
  require('url');
15
16
  require('@vitejs/plugin-vue');
16
17
  require('querystring');
@@ -19,6 +20,7 @@ require('net');
19
20
  require('zlib');
20
21
  require('constants');
21
22
  require('os');
23
+ require('http');
22
24
 
23
25
  var minimist = function (args, opts) {
24
26
  if (!opts) opts = {};
@@ -273,7 +275,10 @@ if (root) {
273
275
  argv.root = root;
274
276
  }
275
277
  if (!command || command === "dev") {
276
- serve.createServer(root, argv).then((server) => server.listen()).catch((err) => {
278
+ serve.createServer(root, argv).then((server) => server.listen()).then((server) => {
279
+ console.log();
280
+ server.printUrls();
281
+ }).catch((err) => {
277
282
  console.error(serve.source.red(`failed to start server. error:
278
283
  `), err);
279
284
  process.exit(1);
@@ -1,5 +1,5 @@
1
1
  import { AliasOptions } from 'vite';
2
- import { AnchorOptions } from 'markdown-it-anchor';
2
+ import anchor from 'markdown-it-anchor';
3
3
  import { BuildOptions } from 'vite';
4
4
  import MarkdownIt from 'markdown-it';
5
5
  import { Options } from '@vitejs/plugin-vue';
@@ -13,6 +13,11 @@ export declare function build(root: string, buildOptions?: BuildOptions & {
13
13
 
14
14
  export declare function createServer(root?: string, serverOptions?: ServerOptions): Promise<ViteDevServer>;
15
15
 
16
+ /**
17
+ * Type config helper
18
+ */
19
+ export declare function defineConfig(config: RawConfigExports): RawConfigExports;
20
+
16
21
  export declare type HeadConfig =
17
22
  | [string, Record<string, string>]
18
23
  | [string, Record<string, string>, string]
@@ -30,7 +35,7 @@ export declare interface MarkdownOptions extends MarkdownIt.Options {
30
35
  lineNumbers?: boolean;
31
36
  config?: (md: MarkdownIt) => void;
32
37
  anchor?: {
33
- permalink?: AnchorOptions['permalink'];
38
+ permalink?: anchor.AnchorOptions['permalink'];
34
39
  };
35
40
  attrs?: {
36
41
  leftDelimiter?: string;
@@ -43,14 +48,12 @@ export declare interface MarkdownOptions extends MarkdownIt.Options {
43
48
 
44
49
  export declare type RawConfigExports = UserConfig | Promise<UserConfig> | (() => UserConfig | Promise<UserConfig>);
45
50
 
46
- export declare function resolveConfig(root?: string): Promise<SiteConfig>;
51
+ export declare function resolveConfig(root?: string, command?: 'serve' | 'build', mode?: string): Promise<SiteConfig>;
47
52
 
48
- export declare function resolveSiteData(root: string, userConfig?: UserConfig): Promise<SiteData>;
53
+ export declare function resolveSiteData(root: string, userConfig?: UserConfig, command?: 'serve' | 'build', mode?: string): Promise<SiteData>;
49
54
 
50
55
  export declare function resolveSiteDataByRoute(siteData: SiteData, route: string): SiteData;
51
56
 
52
- export declare function resolveUserConfig(root: string): Promise<UserConfig>;
53
-
54
57
  export declare function serve(options?: ServeOptions): Promise<void>;
55
58
 
56
59
  export declare interface ServeOptions {
@@ -62,7 +65,7 @@ export declare interface SiteConfig<ThemeConfig = any> {
62
65
  root: string;
63
66
  srcDir: string;
64
67
  site: SiteData<ThemeConfig>;
65
- configPath: string;
68
+ configPath: string | undefined;
66
69
  themeDir: string;
67
70
  outDir: string;
68
71
  tempDir: string;
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var serve = require('./serve-dbc4b971.js');
5
+ var serve = require('./serve-3fdbda2c.js');
6
6
  require('vite');
7
7
  require('readline');
8
8
  require('assert');
@@ -13,6 +13,7 @@ require('buffer');
13
13
  require('path');
14
14
  require('fs');
15
15
  require('punycode');
16
+ require('prismjs');
16
17
  require('url');
17
18
  require('@vitejs/plugin-vue');
18
19
  require('querystring');
@@ -21,13 +22,14 @@ require('net');
21
22
  require('zlib');
22
23
  require('constants');
23
24
  require('os');
25
+ require('http');
24
26
 
25
27
 
26
28
 
27
29
  exports.build = serve.build;
28
30
  exports.createServer = serve.createServer;
31
+ exports.defineConfig = serve.defineConfig;
29
32
  exports.resolveConfig = serve.resolveConfig;
30
33
  exports.resolveSiteData = serve.resolveSiteData;
31
34
  exports.resolveSiteDataByRoute = serve.resolveSiteDataByRoute;
32
- exports.resolveUserConfig = serve.resolveUserConfig;
33
35
  exports.serve = serve.serve;