@docusaurus/plugin-content-docs 3.10.1-canary-6655 → 3.10.1-canary-6803

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/lib/client/doc.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React, { useMemo, useContext } from 'react';
8
- import { ReactContextError } from '@docusaurus/theme-common/internal';
8
+ import { ReactContextError } from '@docusaurus/theme-common';
9
9
  const Context = React.createContext(null);
10
10
  /**
11
11
  * Note: we don't use `PropDoc` as context value on purpose. Metadata is
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React, { useMemo, useState, useContext } from 'react';
8
- import { ReactContextError } from '@docusaurus/theme-common/internal';
8
+ import { ReactContextError } from '@docusaurus/theme-common';
9
9
  const EmptyContext = Symbol('EmptyContext');
10
10
  const Context = React.createContext(EmptyContext);
11
11
  /**
@@ -8,7 +8,7 @@ import React, { useContext, useEffect, useMemo, useState, useCallback, } from 'r
8
8
  import { useAllDocsData, useDocsData, } from '@docusaurus/plugin-content-docs/client';
9
9
  import { DEFAULT_PLUGIN_ID } from '@docusaurus/constants';
10
10
  import { useThemeConfig } from '@docusaurus/theme-common';
11
- import { ReactContextError, createStorageSlot, } from '@docusaurus/theme-common/internal';
11
+ import { ReactContextError, createStorageSlot } from '@docusaurus/theme-common';
12
12
  const storageKey = (pluginId) => `docs-preferred-version-${pluginId}`;
13
13
  const DocsPreferredVersionStorage = {
14
14
  save: (pluginId, persistence, versionName) => {
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React, { useMemo, useContext } from 'react';
8
- import { ReactContextError } from '@docusaurus/theme-common/internal';
8
+ import { ReactContextError } from '@docusaurus/theme-common';
9
9
  // Using a Symbol because null is a valid context value (a doc with no sidebar)
10
10
  // Inspired by https://github.com/jamiebuilds/unstated-next/blob/master/src/unstated-next.tsx
11
11
  const EmptyContext = Symbol('EmptyContext');
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import React, { useContext } from 'react';
8
- import { ReactContextError } from '@docusaurus/theme-common/internal';
8
+ import { ReactContextError } from '@docusaurus/theme-common';
9
9
  const Context = React.createContext(null);
10
10
  /**
11
11
  * Provide the current version's metadata to your children.
@@ -5,8 +5,15 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
8
- export function useBreadcrumbsStructuredData({ breadcrumbs, }) {
9
- const { siteConfig } = useDocusaurusContext();
8
+ import { applyTrailingSlash } from '@docusaurus/utils-common';
9
+ function getAbsoluteUrl(permalink, params) {
10
+ const absoluteUrl = `${params.url}${permalink}`;
11
+ return applyTrailingSlash(absoluteUrl, {
12
+ trailingSlash: params.trailingSlash,
13
+ baseUrl: params.baseUrl,
14
+ });
15
+ }
16
+ function getBreadcrumbsStructuredData({ breadcrumbs, params, }) {
10
17
  return {
11
18
  '@context': 'https://schema.org',
12
19
  '@type': 'BreadcrumbList',
@@ -18,7 +25,11 @@ export function useBreadcrumbsStructuredData({ breadcrumbs, }) {
18
25
  '@type': 'ListItem',
19
26
  position: index + 1,
20
27
  name: breadcrumb.label,
21
- item: `${siteConfig.url}${breadcrumb.href}`,
28
+ item: getAbsoluteUrl(breadcrumb.href, params),
22
29
  })),
23
30
  };
24
31
  }
32
+ export function useBreadcrumbsStructuredData({ breadcrumbs, }) {
33
+ const { siteConfig } = useDocusaurusContext();
34
+ return getBreadcrumbsStructuredData({ breadcrumbs, params: siteConfig });
35
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docusaurus/plugin-content-docs",
3
- "version": "3.10.1-canary-6655",
3
+ "version": "3.10.1-canary-6803",
4
4
  "description": "Docs plugin for Docusaurus.",
5
5
  "main": "lib/index.js",
6
6
  "sideEffects": false,
@@ -35,15 +35,15 @@
35
35
  },
36
36
  "license": "MIT",
37
37
  "dependencies": {
38
- "@docusaurus/core": "3.10.1-canary-6655",
39
- "@docusaurus/logger": "3.10.1-canary-6655",
40
- "@docusaurus/mdx-loader": "3.10.1-canary-6655",
41
- "@docusaurus/module-type-aliases": "3.10.1-canary-6655",
42
- "@docusaurus/theme-common": "3.10.1-canary-6655",
43
- "@docusaurus/types": "3.10.1-canary-6655",
44
- "@docusaurus/utils": "3.10.1-canary-6655",
45
- "@docusaurus/utils-common": "3.10.1-canary-6655",
46
- "@docusaurus/utils-validation": "3.10.1-canary-6655",
38
+ "@docusaurus/core": "3.10.1-canary-6803",
39
+ "@docusaurus/logger": "3.10.1-canary-6803",
40
+ "@docusaurus/mdx-loader": "3.10.1-canary-6803",
41
+ "@docusaurus/module-type-aliases": "3.10.1-canary-6803",
42
+ "@docusaurus/theme-common": "3.10.1-canary-6803",
43
+ "@docusaurus/types": "3.10.1-canary-6803",
44
+ "@docusaurus/utils": "3.10.1-canary-6803",
45
+ "@docusaurus/utils-common": "3.10.1-canary-6803",
46
+ "@docusaurus/utils-validation": "3.10.1-canary-6803",
47
47
  "@types/react-router-config": "^5.0.7",
48
48
  "combine-promises": "^1.1.0",
49
49
  "fs-extra": "^11.2.0",
@@ -55,7 +55,7 @@
55
55
  "webpack": "^5.106.2"
56
56
  },
57
57
  "devDependencies": {
58
- "@types/js-yaml": "^4.0.5",
58
+ "@types/js-yaml": "^4.0.9",
59
59
  "@types/picomatch": "^2.3.0",
60
60
  "commander": "^5.1.0",
61
61
  "picomatch": "^2.3.1"
@@ -67,5 +67,5 @@
67
67
  "engines": {
68
68
  "node": ">=24.14"
69
69
  },
70
- "gitHead": "6e93a3055178dd0af922ba627f787229dcdf948b"
70
+ "gitHead": "d2c7b381512bd4e7e90e33f56649e68d618eaa92"
71
71
  }
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import React, {useMemo, type ReactNode, useContext} from 'react';
9
- import {ReactContextError} from '@docusaurus/theme-common/internal';
9
+ import {ReactContextError} from '@docusaurus/theme-common';
10
10
  import type {PropDocContent} from '@docusaurus/plugin-content-docs';
11
11
 
12
12
  /**
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import React, {type ReactNode, useMemo, useState, useContext} from 'react';
9
- import {ReactContextError} from '@docusaurus/theme-common/internal';
9
+ import {ReactContextError} from '@docusaurus/theme-common';
10
10
 
11
11
  type ContextValue = {
12
12
  /**
@@ -21,10 +21,7 @@ import {
21
21
  } from '@docusaurus/plugin-content-docs/client';
22
22
  import {DEFAULT_PLUGIN_ID} from '@docusaurus/constants';
23
23
  import {useThemeConfig, type ThemeConfig} from '@docusaurus/theme-common';
24
- import {
25
- ReactContextError,
26
- createStorageSlot,
27
- } from '@docusaurus/theme-common/internal';
24
+ import {ReactContextError, createStorageSlot} from '@docusaurus/theme-common';
28
25
 
29
26
  type DocsVersionPersistence = ThemeConfig['docs']['versionPersistence'];
30
27
 
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import React, {useMemo, useContext, type ReactNode} from 'react';
9
- import {ReactContextError} from '@docusaurus/theme-common/internal';
9
+ import {ReactContextError} from '@docusaurus/theme-common';
10
10
  import type {PropSidebar} from '@docusaurus/plugin-content-docs';
11
11
 
12
12
  // Using a Symbol because null is a valid context value (a doc with no sidebar)
@@ -6,7 +6,7 @@
6
6
  */
7
7
 
8
8
  import React, {type ReactNode, useContext} from 'react';
9
- import {ReactContextError} from '@docusaurus/theme-common/internal';
9
+ import {ReactContextError} from '@docusaurus/theme-common';
10
10
  import type {PropVersionMetadata} from '@docusaurus/plugin-content-docs';
11
11
 
12
12
  const Context = React.createContext<PropVersionMetadata | null>(null);
@@ -6,15 +6,28 @@
6
6
  */
7
7
 
8
8
  import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
9
+ import {applyTrailingSlash} from '@docusaurus/utils-common';
9
10
  import type {PropSidebarBreadcrumbsItem} from '@docusaurus/plugin-content-docs';
10
11
  import type {WithContext, BreadcrumbList} from 'schema-dts';
12
+ import type {DocusaurusConfig} from '@docusaurus/types';
11
13
 
12
- export function useBreadcrumbsStructuredData({
14
+ type Params = Pick<DocusaurusConfig, 'url' | 'baseUrl' | 'trailingSlash'>;
15
+
16
+ function getAbsoluteUrl(permalink: string, params: Params): string {
17
+ const absoluteUrl = `${params.url}${permalink}`;
18
+ return applyTrailingSlash(absoluteUrl, {
19
+ trailingSlash: params.trailingSlash,
20
+ baseUrl: params.baseUrl,
21
+ });
22
+ }
23
+
24
+ function getBreadcrumbsStructuredData({
13
25
  breadcrumbs,
26
+ params,
14
27
  }: {
15
28
  breadcrumbs: PropSidebarBreadcrumbsItem[];
29
+ params: Params;
16
30
  }): WithContext<BreadcrumbList> {
17
- const {siteConfig} = useDocusaurusContext();
18
31
  return {
19
32
  '@context': 'https://schema.org',
20
33
  '@type': 'BreadcrumbList',
@@ -26,7 +39,16 @@ export function useBreadcrumbsStructuredData({
26
39
  '@type': 'ListItem',
27
40
  position: index + 1,
28
41
  name: breadcrumb.label,
29
- item: `${siteConfig.url}${breadcrumb.href}`,
42
+ item: getAbsoluteUrl(breadcrumb.href!, params),
30
43
  })),
31
44
  };
32
45
  }
46
+
47
+ export function useBreadcrumbsStructuredData({
48
+ breadcrumbs,
49
+ }: {
50
+ breadcrumbs: PropSidebarBreadcrumbsItem[];
51
+ }): WithContext<BreadcrumbList> {
52
+ const {siteConfig} = useDocusaurusContext();
53
+ return getBreadcrumbsStructuredData({breadcrumbs, params: siteConfig});
54
+ }