vitepress 0.19.1 → 0.20.2

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
+ }
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
+ )
59
76
 
77
+ function initialize(userOptions: any) {
60
78
  docsearch(
61
79
  Object.assign({}, userOptions, {
62
80
  container: '#docsearch',
@@ -64,23 +82,21 @@ 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: {
73
- navigate: ({ suggestionUrl }: { suggestionUrl: string }) => {
89
+ navigate: ({ itemUrl }: { itemUrl: string }) => {
74
90
  const { pathname: hitPathname } = new URL(
75
- window.location.origin + suggestionUrl
91
+ window.location.origin + itemUrl
76
92
  )
77
93
 
78
94
  // Router doesn't handle same-page navigation so we use the native
79
95
  // browser location API for anchor navigation
80
96
  if (route.path === hitPathname) {
81
- window.location.assign(window.location.origin + suggestionUrl)
97
+ window.location.assign(window.location.origin + itemUrl)
82
98
  } else {
83
- router.go(suggestionUrl)
99
+ router.go(itemUrl)
84
100
  }
85
101
  }
86
102
  },
@@ -132,7 +148,8 @@ function initialize(userOptions: any) {
132
148
  router.go(relativeHit)
133
149
  },
134
150
  children
135
- }
151
+ },
152
+ __v: null
136
153
  }
137
154
  }
138
155
  })
@@ -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-6d986686.js');
3
+ var serve = require('./serve-c378302d.js');
4
4
  require('vite');
5
5
  require('readline');
6
6
  require('assert');
@@ -13,7 +13,6 @@ require('fs');
13
13
  require('punycode');
14
14
  require('prismjs');
15
15
  require('url');
16
- require('@vitejs/plugin-vue');
17
16
  require('querystring');
18
17
  require('tty');
19
18
  require('net');
@@ -275,7 +274,10 @@ if (root) {
275
274
  argv.root = root;
276
275
  }
277
276
  if (!command || command === "dev") {
278
- serve.createServer(root, argv).then((server) => server.listen()).catch((err) => {
277
+ serve.createServer(root, argv).then((server) => server.listen()).then((server) => {
278
+ console.log();
279
+ server.printUrls();
280
+ }).catch((err) => {
279
281
  console.error(serve.source.red(`failed to start server. error:
280
282
  `), err);
281
283
  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-6d986686.js');
5
+ var serve = require('./serve-c378302d.js');
6
6
  require('vite');
7
7
  require('readline');
8
8
  require('assert');
@@ -15,7 +15,6 @@ require('fs');
15
15
  require('punycode');
16
16
  require('prismjs');
17
17
  require('url');
18
- require('@vitejs/plugin-vue');
19
18
  require('querystring');
20
19
  require('tty');
21
20
  require('net');
@@ -28,8 +27,8 @@ require('http');
28
27
 
29
28
  exports.build = serve.build;
30
29
  exports.createServer = serve.createServer;
30
+ exports.defineConfig = serve.defineConfig;
31
31
  exports.resolveConfig = serve.resolveConfig;
32
32
  exports.resolveSiteData = serve.resolveSiteData;
33
33
  exports.resolveSiteDataByRoute = serve.resolveSiteDataByRoute;
34
- exports.resolveUserConfig = serve.resolveUserConfig;
35
34
  exports.serve = serve.serve;