@docusaurus/plugin-content-docs 2.0.0-beta.13 → 2.0.0-beta.15

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.
Files changed (197) hide show
  1. package/lib/categoryGeneratedIndex.d.ts +2 -2
  2. package/lib/categoryGeneratedIndex.js +2 -0
  3. package/lib/cli.d.ts +1 -1
  4. package/lib/cli.js +2 -1
  5. package/lib/client/docsClientUtils.d.ts +3 -22
  6. package/lib/client/docsClientUtils.js +5 -1
  7. package/lib/{theme/hooks/useDocs.d.ts → client/globalDataHooks.d.ts} +1 -2
  8. package/lib/{theme/hooks/useDocs.js → client/globalDataHooks.js} +2 -1
  9. package/{src/__tests__/__fixtures__/simple-site/docusaurus.config.js → lib/client/index.d.ts} +1 -8
  10. package/{src/__tests__/__fixtures__/site-with-doc-label/docusaurus.config.js → lib/client/index.js} +4 -8
  11. package/lib/docFrontMatter.js +1 -0
  12. package/lib/docs.d.ts +19 -6
  13. package/lib/docs.js +43 -22
  14. package/lib/globalData.d.ts +5 -1
  15. package/lib/globalData.js +34 -2
  16. package/lib/index.d.ts +3 -2
  17. package/lib/index.js +4 -10
  18. package/lib/lastUpdate.js +6 -5
  19. package/lib/markdown/index.d.ts +1 -1
  20. package/lib/markdown/linkify.d.ts +1 -1
  21. package/lib/numberPrefix.d.ts +1 -1
  22. package/lib/options.d.ts +1 -1
  23. package/lib/options.js +2 -2
  24. package/lib/routes.d.ts +4 -3
  25. package/lib/routes.js +8 -5
  26. package/lib/sidebars/generator.js +15 -17
  27. package/lib/sidebars/index.d.ts +3 -2
  28. package/lib/sidebars/processor.d.ts +3 -2
  29. package/lib/sidebars/processor.js +2 -0
  30. package/lib/sidebars/types.d.ts +8 -3
  31. package/lib/sidebars/utils.d.ts +12 -4
  32. package/lib/sidebars/utils.js +48 -3
  33. package/lib/sidebars/validation.d.ts +1 -1
  34. package/lib/sidebars/validation.js +4 -0
  35. package/lib/slug.d.ts +5 -4
  36. package/lib/slug.js +8 -7
  37. package/lib/translations.js +1 -1
  38. package/lib/types.d.ts +7 -78
  39. package/lib/versions.d.ts +3 -2
  40. package/lib/versions.js +27 -32
  41. package/package.json +14 -12
  42. package/src/categoryGeneratedIndex.ts +5 -3
  43. package/src/cli.ts +6 -2
  44. package/src/client/docsClientUtils.ts +22 -35
  45. package/src/{theme/hooks/useDocs.ts → client/globalDataHooks.ts} +6 -2
  46. package/src/{__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars2.js → client/index.ts} +1 -9
  47. package/src/docFrontMatter.ts +2 -1
  48. package/src/docs.ts +77 -42
  49. package/src/globalData.ts +49 -3
  50. package/src/index.ts +11 -21
  51. package/src/lastUpdate.ts +6 -5
  52. package/src/markdown/index.ts +1 -1
  53. package/src/markdown/linkify.ts +1 -1
  54. package/src/numberPrefix.ts +1 -1
  55. package/src/options.ts +3 -7
  56. package/src/plugin-content-docs.d.ts +128 -18
  57. package/src/routes.ts +21 -11
  58. package/src/sidebars/generator.ts +28 -31
  59. package/src/sidebars/index.ts +3 -2
  60. package/src/sidebars/normalization.ts +2 -1
  61. package/src/sidebars/processor.ts +8 -7
  62. package/src/sidebars/types.ts +9 -5
  63. package/src/sidebars/utils.ts +76 -8
  64. package/src/sidebars/validation.ts +6 -1
  65. package/src/slug.ts +15 -11
  66. package/src/translations.ts +2 -2
  67. package/src/types.ts +12 -98
  68. package/src/versions.ts +51 -47
  69. package/lib/.tsbuildinfo +0 -1
  70. package/src/__tests__/__fixtures__/bad-id-site/docs/invalid-id.md +0 -5
  71. package/src/__tests__/__fixtures__/bad-slug-on-doc-home-site/docs/docWithSlug.md +0 -5
  72. package/src/__tests__/__fixtures__/empty-site/docusaurus.config.js +0 -16
  73. package/src/__tests__/__fixtures__/empty-site/sidebars.json +0 -1
  74. package/src/__tests__/__fixtures__/simple-site/docs/_partials/somePartial.md +0 -3
  75. package/src/__tests__/__fixtures__/simple-site/docs/_partials/subfolder/somePartial.md +0 -3
  76. package/src/__tests__/__fixtures__/simple-site/docs/_somePartial.md +0 -3
  77. package/src/__tests__/__fixtures__/simple-site/docs/foo/bar.md +0 -69
  78. package/src/__tests__/__fixtures__/simple-site/docs/foo/baz.md +0 -75
  79. package/src/__tests__/__fixtures__/simple-site/docs/headingAsTitle.md +0 -1
  80. package/src/__tests__/__fixtures__/simple-site/docs/hello.md +0 -55
  81. package/src/__tests__/__fixtures__/simple-site/docs/ipsum.md +0 -5
  82. package/src/__tests__/__fixtures__/simple-site/docs/lorem.md +0 -6
  83. package/src/__tests__/__fixtures__/simple-site/docs/rootAbsoluteSlug.md +0 -7
  84. package/src/__tests__/__fixtures__/simple-site/docs/rootRelativeSlug.md +0 -7
  85. package/src/__tests__/__fixtures__/simple-site/docs/rootResolvedSlug.md +0 -7
  86. package/src/__tests__/__fixtures__/simple-site/docs/rootTryToEscapeSlug.md +0 -7
  87. package/src/__tests__/__fixtures__/simple-site/docs/slugs/absoluteSlug.md +0 -5
  88. package/src/__tests__/__fixtures__/simple-site/docs/slugs/relativeSlug.md +0 -5
  89. package/src/__tests__/__fixtures__/simple-site/docs/slugs/resolvedSlug.md +0 -5
  90. package/src/__tests__/__fixtures__/simple-site/docs/slugs/tryToEscapeSlug.md +0 -5
  91. package/src/__tests__/__fixtures__/simple-site/sidebars.json +0 -37
  92. package/src/__tests__/__fixtures__/simple-site/wrong-sidebars.json +0 -7
  93. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/0-getting-started.md +0 -3
  94. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/1-installation.md +0 -3
  95. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/00_api-overview.md +0 -3
  96. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/01_Core APIs/0 --- Client API.md +0 -1
  97. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/01_Core APIs/1 --- Server API.md +0 -1
  98. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/0. Plugin API.md +0 -1
  99. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/1. Theme API.md +0 -1
  100. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/02_Extension APIs/_category_.yml +0 -1
  101. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/03_api-end.md +0 -3
  102. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/3-API/_category_.json +0 -3
  103. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/0-guide2.5.md +0 -8
  104. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/02-guide2.md +0 -7
  105. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/_category_.json +0 -3
  106. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/a-guide4.md +0 -7
  107. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/b-guide5.md +0 -7
  108. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/guide3.md +0 -8
  109. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docs/Guides/z-guide1.md +0 -8
  110. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/docusaurus.config.js +0 -14
  111. package/src/__tests__/__fixtures__/site-with-autogenerated-sidebar/partialAutogeneratedSidebars.js +0 -23
  112. package/src/__tests__/__fixtures__/site-with-doc-label/docs/hello-1.md +0 -8
  113. package/src/__tests__/__fixtures__/site-with-doc-label/docs/hello-2.md +0 -8
  114. package/src/__tests__/__fixtures__/site-with-doc-label/sidebars.json +0 -14
  115. package/src/__tests__/__fixtures__/versioned-site/community/team.md +0 -1
  116. package/src/__tests__/__fixtures__/versioned-site/community_sidebars.json +0 -3
  117. package/src/__tests__/__fixtures__/versioned-site/community_versioned_docs/version-1.0.0/team.md +0 -1
  118. package/src/__tests__/__fixtures__/versioned-site/community_versioned_sidebars/version-1.0.0-sidebars.json +0 -3
  119. package/src/__tests__/__fixtures__/versioned-site/community_versions.json +0 -1
  120. package/src/__tests__/__fixtures__/versioned-site/docs/foo/bar.md +0 -10
  121. package/src/__tests__/__fixtures__/versioned-site/docs/hello.md +0 -4
  122. package/src/__tests__/__fixtures__/versioned-site/docs/slugs/absoluteSlug.md +0 -5
  123. package/src/__tests__/__fixtures__/versioned-site/docs/slugs/relativeSlug.md +0 -5
  124. package/src/__tests__/__fixtures__/versioned-site/docs/slugs/resolvedSlug.md +0 -5
  125. package/src/__tests__/__fixtures__/versioned-site/docs/slugs/tryToEscapeSlug.md +0 -5
  126. package/src/__tests__/__fixtures__/versioned-site/docusaurus.config.js +0 -18
  127. package/src/__tests__/__fixtures__/versioned-site/i18n/en/docusaurus-plugin-content-docs/version-1.0.0/hello.md +0 -4
  128. package/src/__tests__/__fixtures__/versioned-site/i18n/en/docusaurus-plugin-content-docs-community/current/team.md +0 -5
  129. package/src/__tests__/__fixtures__/versioned-site/i18n/fr/docusaurus-plugin-content-docs/version-1.0.0/hello.md +0 -4
  130. package/src/__tests__/__fixtures__/versioned-site/sidebars.json +0 -10
  131. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/foo/bar.md +0 -4
  132. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/foo/baz.md +0 -1
  133. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.0/hello.md +0 -4
  134. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/_partials/somePartial.md +0 -3
  135. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/_partials/subfolder/somePartial.md +0 -3
  136. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/_somePartial.md +0 -3
  137. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/foo/bar.md +0 -1
  138. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-1.0.1/hello.md +0 -4
  139. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootAbsoluteSlug.md +0 -5
  140. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootRelativeSlug.md +0 -5
  141. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootResolvedSlug.md +0 -5
  142. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/rootTryToEscapeSlug.md +0 -5
  143. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/absoluteSlug.md +0 -5
  144. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/relativeSlug.md +0 -5
  145. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/resolvedSlug.md +0 -5
  146. package/src/__tests__/__fixtures__/versioned-site/versioned_docs/version-withSlugs/slugs/tryToEscapeSlug.md +0 -5
  147. package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-1.0.0-sidebars.json +0 -11
  148. package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-1.0.1-sidebars.json +0 -10
  149. package/src/__tests__/__fixtures__/versioned-site/versioned_sidebars/version-withSlugs-sidebars.json +0 -5
  150. package/src/__tests__/__fixtures__/versioned-site/versions.json +0 -5
  151. package/src/__tests__/__snapshots__/cli.test.ts.snap +0 -65
  152. package/src/__tests__/__snapshots__/docs.test.ts.snap +0 -140
  153. package/src/__tests__/__snapshots__/index.test.ts.snap +0 -2550
  154. package/src/__tests__/__snapshots__/translations.test.ts.snap +0 -514
  155. package/src/__tests__/cli.test.ts +0 -337
  156. package/src/__tests__/docFrontMatter.test.ts +0 -359
  157. package/src/__tests__/docs.test.ts +0 -1039
  158. package/src/__tests__/index.test.ts +0 -1910
  159. package/src/__tests__/lastUpdate.test.ts +0 -69
  160. package/src/__tests__/numberPrefix.test.ts +0 -199
  161. package/src/__tests__/options.test.ts +0 -276
  162. package/src/__tests__/props.test.ts +0 -62
  163. package/src/__tests__/slug.test.ts +0 -216
  164. package/src/__tests__/translations.test.ts +0 -164
  165. package/src/__tests__/versions.test.ts +0 -744
  166. package/src/client/__tests__/docsClientUtils.test.ts +0 -371
  167. package/src/markdown/__tests__/__fixtures__/docs/doc-localized.md +0 -1
  168. package/src/markdown/__tests__/__fixtures__/docs/doc1.md +0 -13
  169. package/src/markdown/__tests__/__fixtures__/docs/doc2.md +0 -12
  170. package/src/markdown/__tests__/__fixtures__/docs/doc4.md +0 -19
  171. package/src/markdown/__tests__/__fixtures__/docs/doc5.md +0 -6
  172. package/src/markdown/__tests__/__fixtures__/docs/subdir/doc3.md +0 -3
  173. package/src/markdown/__tests__/__fixtures__/versioned_docs/version-1.0.0/doc2.md +0 -7
  174. package/src/markdown/__tests__/__fixtures__/versioned_docs/version-1.0.0/subdir/doc1.md +0 -3
  175. package/src/markdown/__tests__/__snapshots__/linkify.test.ts.snap +0 -82
  176. package/src/markdown/__tests__/linkify.test.ts +0 -190
  177. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-category-shorthand.js +0 -34
  178. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-category-wrong-items.json +0 -11
  179. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-category-wrong-label.json +0 -11
  180. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-category.js +0 -44
  181. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-collapsed-first-level.json +0 -20
  182. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-collapsed.json +0 -21
  183. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-doc-id-not-string.json +0 -10
  184. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-first-level-not-category.js +0 -20
  185. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-link-wrong-href.json +0 -11
  186. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-link-wrong-label.json +0 -11
  187. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-link.json +0 -11
  188. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-unknown-type.json +0 -14
  189. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars-wrong-field.json +0 -20
  190. package/src/sidebars/__tests__/__fixtures__/sidebars/sidebars.json +0 -20
  191. package/src/sidebars/__tests__/__snapshots__/index.test.ts.snap +0 -248
  192. package/src/sidebars/__tests__/generator.test.ts +0 -461
  193. package/src/sidebars/__tests__/index.test.ts +0 -204
  194. package/src/sidebars/__tests__/processor.test.ts +0 -237
  195. package/src/sidebars/__tests__/utils.test.ts +0 -695
  196. package/src/sidebars/__tests__/validation.test.ts +0 -105
  197. package/tsconfig.json +0 -9
@@ -1,1039 +0,0 @@
1
- /**
2
- * Copyright (c) Facebook, Inc. and its affiliates.
3
- *
4
- * This source code is licensed under the MIT license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- */
7
-
8
- import path from 'path';
9
- import {loadContext} from '@docusaurus/core/src/server/index';
10
- import {
11
- processDocMetadata,
12
- readVersionDocs,
13
- readDocFile,
14
- addDocNavigation,
15
- isConventionalDocIndex,
16
- } from '../docs';
17
- import {loadSidebars} from '../sidebars';
18
- import {readVersionsMetadata} from '../versions';
19
- import type {
20
- DocFile,
21
- DocMetadataBase,
22
- MetadataOptions,
23
- VersionMetadata,
24
- PluginOptions,
25
- EditUrlFunction,
26
- DocNavLink,
27
- } from '../types';
28
- import type {LoadContext} from '@docusaurus/types';
29
- import {DEFAULT_OPTIONS} from '../options';
30
- import {Optional} from 'utility-types';
31
- import {createSlugger, posixPath, DEFAULT_PLUGIN_ID} from '@docusaurus/utils';
32
- import {createSidebarsUtils} from '../sidebars/utils';
33
-
34
- const fixtureDir = path.join(__dirname, '__fixtures__');
35
-
36
- const createFakeDocFile = ({
37
- source,
38
- frontmatter = {},
39
- markdown = 'some markdown content',
40
- }: {
41
- source: string;
42
- frontmatter?: Record<string, string>;
43
- markdown?: string;
44
- }): DocFile => {
45
- const content = `---
46
- ${Object.entries(frontmatter)
47
- .map(([key, value]) => `${key}: ${value}`)
48
- .join('\n')}
49
- ---
50
- ${markdown}
51
- `;
52
- return {
53
- source,
54
- content,
55
- lastUpdate: {},
56
- contentPath: 'docs',
57
- filePath: source,
58
- };
59
- };
60
-
61
- function createTestUtils({
62
- siteDir,
63
- context,
64
- versionMetadata,
65
- options,
66
- }: {
67
- siteDir: string;
68
- context: LoadContext;
69
- versionMetadata: VersionMetadata;
70
- options: MetadataOptions;
71
- }) {
72
- async function readDoc(docFileSource: string) {
73
- return readDocFile(versionMetadata, docFileSource, options);
74
- }
75
- function processDocFile(docFile: DocFile) {
76
- return processDocMetadata({
77
- docFile,
78
- versionMetadata,
79
- options,
80
- context,
81
- });
82
- }
83
- async function testMeta(
84
- docFileSource: string,
85
- expectedMetadata: Optional<
86
- DocMetadataBase,
87
- 'source' | 'lastUpdatedBy' | 'lastUpdatedAt' | 'editUrl'
88
- >,
89
- ) {
90
- const docFile = await readDoc(docFileSource);
91
- const metadata = await processDocMetadata({
92
- docFile,
93
- versionMetadata,
94
- context,
95
- options,
96
- });
97
- expect(metadata).toEqual({
98
- lastUpdatedBy: undefined,
99
- lastUpdatedAt: undefined,
100
- editUrl: undefined,
101
- source: path.posix.join(
102
- '@site',
103
- posixPath(path.relative(siteDir, versionMetadata.contentPath)),
104
- posixPath(docFileSource),
105
- ),
106
- ...expectedMetadata,
107
- });
108
- }
109
-
110
- async function testSlug(docFileSource: string, expectedPermalink: string) {
111
- const docFile = await readDoc(docFileSource);
112
- const metadata = await processDocMetadata({
113
- docFile,
114
- versionMetadata,
115
- context,
116
- options,
117
- });
118
- expect(metadata.permalink).toEqual(expectedPermalink);
119
- }
120
-
121
- async function generateNavigation(
122
- docFiles: DocFile[],
123
- ): Promise<[DocNavLink | undefined, DocNavLink | undefined][]> {
124
- const rawDocs = await Promise.all(
125
- docFiles.map((docFile) =>
126
- processDocMetadata({
127
- docFile,
128
- versionMetadata,
129
- context,
130
- options,
131
- }),
132
- ),
133
- );
134
- const sidebars = await loadSidebars(versionMetadata.sidebarFilePath, {
135
- sidebarItemsGenerator: ({defaultSidebarItemsGenerator, ...args}) =>
136
- defaultSidebarItemsGenerator({...args}),
137
- numberPrefixParser: options.numberPrefixParser,
138
- docs: rawDocs,
139
- version: versionMetadata,
140
- sidebarOptions: {
141
- sidebarCollapsed: false,
142
- sidebarCollapsible: true,
143
- },
144
- categoryLabelSlugger: createSlugger(),
145
- });
146
- const sidebarsUtils = createSidebarsUtils(sidebars);
147
-
148
- return addDocNavigation(
149
- rawDocs,
150
- sidebarsUtils,
151
- versionMetadata.sidebarFilePath as string,
152
- ).map((doc) => [doc.previous, doc.next]);
153
- }
154
-
155
- return {processDocFile, testMeta, testSlug, generateNavigation};
156
- }
157
-
158
- describe('simple site', () => {
159
- async function loadSite(
160
- loadSiteOptions: {options: Partial<PluginOptions>} = {options: {}},
161
- ) {
162
- const siteDir = path.join(fixtureDir, 'simple-site');
163
- const context = await loadContext(siteDir);
164
- const options = {
165
- id: DEFAULT_PLUGIN_ID,
166
- ...DEFAULT_OPTIONS,
167
- ...loadSiteOptions.options,
168
- };
169
- const versionsMetadata = readVersionsMetadata({
170
- context,
171
- options,
172
- });
173
- expect(versionsMetadata.length).toEqual(1);
174
- const [currentVersion] = versionsMetadata;
175
-
176
- const defaultTestUtils = createTestUtils({
177
- siteDir,
178
- context,
179
- options,
180
- versionMetadata: currentVersion,
181
- });
182
- return {
183
- siteDir,
184
- context,
185
- options,
186
- versionsMetadata,
187
- defaultTestUtils,
188
- currentVersion,
189
- };
190
- }
191
-
192
- test('readVersionDocs', async () => {
193
- const {options, currentVersion} = await loadSite();
194
- const docs = await readVersionDocs(currentVersion, options);
195
- expect(docs.map((doc) => doc.source).sort()).toEqual(
196
- [
197
- 'hello.md',
198
- 'ipsum.md',
199
- 'lorem.md',
200
- 'rootAbsoluteSlug.md',
201
- 'rootRelativeSlug.md',
202
- 'rootResolvedSlug.md',
203
- 'rootTryToEscapeSlug.md',
204
- 'headingAsTitle.md',
205
- 'foo/bar.md',
206
- 'foo/baz.md',
207
- 'slugs/absoluteSlug.md',
208
- 'slugs/relativeSlug.md',
209
- 'slugs/resolvedSlug.md',
210
- 'slugs/tryToEscapeSlug.md',
211
- ].sort(),
212
- );
213
- });
214
-
215
- test('normal docs', async () => {
216
- const {defaultTestUtils} = await loadSite();
217
- await defaultTestUtils.testMeta(path.join('foo', 'bar.md'), {
218
- version: 'current',
219
- id: 'foo/bar',
220
- unversionedId: 'foo/bar',
221
- sourceDirName: 'foo',
222
- permalink: '/docs/foo/bar',
223
- slug: '/foo/bar',
224
- title: 'Bar',
225
- description: 'This is custom description',
226
- frontMatter: {
227
- description: 'This is custom description',
228
- id: 'bar',
229
- title: 'Bar',
230
- },
231
- tags: [],
232
- });
233
- await defaultTestUtils.testMeta(path.join('hello.md'), {
234
- version: 'current',
235
- id: 'hello',
236
- unversionedId: 'hello',
237
- sourceDirName: '.',
238
- permalink: '/docs/',
239
- slug: '/',
240
- title: 'Hello, World !',
241
- description: `Hi, Endilie here :)`,
242
- frontMatter: {
243
- id: 'hello',
244
- title: 'Hello, World !',
245
- sidebar_label: 'Hello sidebar_label',
246
- slug: '/',
247
- tags: ['tag-1', 'tag 3'],
248
- },
249
- tags: [
250
- {
251
- label: 'tag-1',
252
- permalink: '/docs/tags/tag-1',
253
- },
254
- {
255
- label: 'tag 3',
256
- permalink: '/docs/tags/tag-3',
257
- },
258
- ],
259
- });
260
- });
261
-
262
- test('docs with editUrl', async () => {
263
- const {siteDir, context, options, currentVersion} = await loadSite({
264
- options: {
265
- editUrl: 'https://github.com/facebook/docusaurus/edit/main/website',
266
- },
267
- });
268
-
269
- const testUtilsLocal = createTestUtils({
270
- siteDir,
271
- context,
272
- options,
273
- versionMetadata: currentVersion,
274
- });
275
-
276
- await testUtilsLocal.testMeta(path.join('foo', 'baz.md'), {
277
- version: 'current',
278
- id: 'foo/baz',
279
- unversionedId: 'foo/baz',
280
- sourceDirName: 'foo',
281
- permalink: '/docs/foo/bazSlug.html',
282
- slug: '/foo/bazSlug.html',
283
- title: 'baz',
284
- editUrl:
285
- 'https://github.com/facebook/docusaurus/edit/main/website/docs/foo/baz.md',
286
- description: 'Images',
287
- frontMatter: {
288
- id: 'baz',
289
- slug: 'bazSlug.html',
290
- title: 'baz',
291
- pagination_label: 'baz pagination_label',
292
- tags: [
293
- 'tag 1',
294
- 'tag-1',
295
- {label: 'tag 2', permalink: 'tag2-custom-permalink'},
296
- ],
297
- },
298
- tags: [
299
- {
300
- label: 'tag 1',
301
- permalink: '/docs/tags/tag-1',
302
- },
303
- {
304
- label: 'tag 2',
305
- permalink: '/docs/tags/tag2-custom-permalink',
306
- },
307
- ],
308
- });
309
- });
310
-
311
- test('docs with custom editUrl & unrelated frontmatter', async () => {
312
- const {defaultTestUtils} = await loadSite();
313
-
314
- await defaultTestUtils.testMeta('lorem.md', {
315
- version: 'current',
316
- id: 'lorem',
317
- unversionedId: 'lorem',
318
- sourceDirName: '.',
319
- permalink: '/docs/lorem',
320
- slug: '/lorem',
321
- title: 'lorem',
322
- editUrl: 'https://github.com/customUrl/docs/lorem.md',
323
- description: 'Lorem ipsum.',
324
- frontMatter: {
325
- custom_edit_url: 'https://github.com/customUrl/docs/lorem.md',
326
- unrelated_frontmatter: "won't be part of metadata",
327
- },
328
- tags: [],
329
- });
330
- });
331
-
332
- test('docs with function editUrl', async () => {
333
- const hardcodedEditUrl = 'hardcoded-edit-url';
334
-
335
- const editUrlFunction: EditUrlFunction = jest.fn(() => hardcodedEditUrl);
336
-
337
- const {siteDir, context, options, currentVersion} = await loadSite({
338
- options: {
339
- editUrl: editUrlFunction,
340
- },
341
- });
342
-
343
- const testUtilsLocal = createTestUtils({
344
- siteDir,
345
- context,
346
- options,
347
- versionMetadata: currentVersion,
348
- });
349
-
350
- await testUtilsLocal.testMeta(path.join('foo', 'baz.md'), {
351
- version: 'current',
352
- id: 'foo/baz',
353
- unversionedId: 'foo/baz',
354
- sourceDirName: 'foo',
355
- permalink: '/docs/foo/bazSlug.html',
356
- slug: '/foo/bazSlug.html',
357
- title: 'baz',
358
- editUrl: hardcodedEditUrl,
359
- description: 'Images',
360
- frontMatter: {
361
- id: 'baz',
362
- slug: 'bazSlug.html',
363
- title: 'baz',
364
- pagination_label: 'baz pagination_label',
365
- tags: [
366
- 'tag 1',
367
- 'tag-1',
368
- {label: 'tag 2', permalink: 'tag2-custom-permalink'},
369
- ],
370
- },
371
- tags: [
372
- {
373
- label: 'tag 1',
374
- permalink: '/docs/tags/tag-1',
375
- },
376
- {
377
- label: 'tag 2',
378
- permalink: '/docs/tags/tag2-custom-permalink',
379
- },
380
- ],
381
- });
382
-
383
- expect(editUrlFunction).toHaveBeenCalledTimes(1);
384
- expect(editUrlFunction).toHaveBeenCalledWith({
385
- version: 'current',
386
- versionDocsDirPath: 'docs',
387
- docPath: path.posix.join('foo', 'baz.md'),
388
- permalink: '/docs/foo/bazSlug.html',
389
- locale: 'en',
390
- });
391
- });
392
-
393
- test('docs with last update time and author', async () => {
394
- const {siteDir, context, options, currentVersion} = await loadSite({
395
- options: {
396
- showLastUpdateAuthor: true,
397
- showLastUpdateTime: true,
398
- },
399
- });
400
-
401
- const testUtilsLocal = createTestUtils({
402
- siteDir,
403
- context,
404
- options,
405
- versionMetadata: currentVersion,
406
- });
407
-
408
- await testUtilsLocal.testMeta('lorem.md', {
409
- version: 'current',
410
- id: 'lorem',
411
- unversionedId: 'lorem',
412
- sourceDirName: '.',
413
- permalink: '/docs/lorem',
414
- slug: '/lorem',
415
- title: 'lorem',
416
- editUrl: 'https://github.com/customUrl/docs/lorem.md',
417
- description: 'Lorem ipsum.',
418
- frontMatter: {
419
- custom_edit_url: 'https://github.com/customUrl/docs/lorem.md',
420
- unrelated_frontmatter: "won't be part of metadata",
421
- },
422
- lastUpdatedAt: 1539502055,
423
- formattedLastUpdatedAt: '10/14/2018',
424
- lastUpdatedBy: 'Author',
425
- tags: [],
426
- });
427
- });
428
-
429
- test('docs with slugs', async () => {
430
- const {defaultTestUtils} = await loadSite();
431
-
432
- await defaultTestUtils.testSlug(
433
- path.join('rootRelativeSlug.md'),
434
- '/docs/rootRelativeSlug',
435
- );
436
- await defaultTestUtils.testSlug(
437
- path.join('rootAbsoluteSlug.md'),
438
- '/docs/rootAbsoluteSlug',
439
- );
440
- await defaultTestUtils.testSlug(
441
- path.join('rootResolvedSlug.md'),
442
- '/docs/hey/rootResolvedSlug',
443
- );
444
- await defaultTestUtils.testSlug(
445
- path.join('rootTryToEscapeSlug.md'),
446
- '/docs/rootTryToEscapeSlug',
447
- );
448
-
449
- await defaultTestUtils.testSlug(
450
- path.join('slugs', 'absoluteSlug.md'),
451
- '/docs/absoluteSlug',
452
- );
453
- await defaultTestUtils.testSlug(
454
- path.join('slugs', 'relativeSlug.md'),
455
- '/docs/slugs/relativeSlug',
456
- );
457
- await defaultTestUtils.testSlug(
458
- path.join('slugs', 'resolvedSlug.md'),
459
- '/docs/slugs/hey/resolvedSlug',
460
- );
461
- await defaultTestUtils.testSlug(
462
- path.join('slugs', 'tryToEscapeSlug.md'),
463
- '/docs/tryToEscapeSlug',
464
- );
465
- });
466
-
467
- test('docs with invalid id', async () => {
468
- const {defaultTestUtils} = await loadSite();
469
- expect(() => {
470
- defaultTestUtils.processDocFile(
471
- createFakeDocFile({
472
- source: 'some/fake/path',
473
- frontmatter: {
474
- id: 'Hello/world',
475
- },
476
- }),
477
- );
478
- }).toThrowErrorMatchingInlineSnapshot(
479
- `"Document id \\"Hello/world\\" cannot include slash."`,
480
- );
481
- });
482
-
483
- test('custom pagination', async () => {
484
- const {defaultTestUtils, options, versionsMetadata} = await loadSite();
485
- const docs = await readVersionDocs(versionsMetadata[0], options);
486
- expect(await defaultTestUtils.generateNavigation(docs)).toMatchSnapshot();
487
- });
488
-
489
- test('bad pagination', async () => {
490
- const {defaultTestUtils, options, versionsMetadata} = await loadSite();
491
- const docs = await readVersionDocs(versionsMetadata[0], options);
492
- docs.push(
493
- createFakeDocFile({
494
- source: 'hehe',
495
- frontmatter: {pagination_prev: 'nonexistent'},
496
- }),
497
- );
498
- await expect(async () => {
499
- await defaultTestUtils.generateNavigation(docs);
500
- }).rejects.toThrowErrorMatchingInlineSnapshot(
501
- `"Error when loading hehe in .: the pagination_prev front matter points to a non-existent ID nonexistent."`,
502
- );
503
- });
504
- });
505
-
506
- describe('versioned site', () => {
507
- async function loadSite(
508
- loadSiteOptions: {options: Partial<PluginOptions>; locale?: string} = {
509
- options: {},
510
- },
511
- ) {
512
- const siteDir = path.join(fixtureDir, 'versioned-site');
513
- const context = await loadContext(siteDir, {
514
- locale: loadSiteOptions.locale,
515
- });
516
- const options = {
517
- id: DEFAULT_PLUGIN_ID,
518
- ...DEFAULT_OPTIONS,
519
- ...loadSiteOptions.options,
520
- };
521
- const versionsMetadata = readVersionsMetadata({
522
- context,
523
- options,
524
- });
525
- expect(versionsMetadata.length).toEqual(4);
526
- const [currentVersion, version101, version100, versionWithSlugs] =
527
- versionsMetadata;
528
-
529
- const currentVersionTestUtils = createTestUtils({
530
- siteDir,
531
- context,
532
- options,
533
- versionMetadata: currentVersion,
534
- });
535
- const version101TestUtils = createTestUtils({
536
- siteDir,
537
- context,
538
- options,
539
- versionMetadata: version101,
540
- });
541
-
542
- const version100TestUtils = createTestUtils({
543
- siteDir,
544
- context,
545
- options,
546
- versionMetadata: version100,
547
- });
548
-
549
- const versionWithSlugsTestUtils = createTestUtils({
550
- siteDir,
551
- context,
552
- options,
553
- versionMetadata: versionWithSlugs,
554
- });
555
-
556
- return {
557
- siteDir,
558
- context,
559
- options,
560
- versionsMetadata,
561
- currentVersionTestUtils,
562
- version101TestUtils,
563
- version100,
564
- version100TestUtils,
565
- versionWithSlugsTestUtils,
566
- };
567
- }
568
-
569
- test('next docs', async () => {
570
- const {currentVersionTestUtils} = await loadSite();
571
-
572
- await currentVersionTestUtils.testMeta(path.join('foo', 'bar.md'), {
573
- id: 'foo/bar',
574
- version: 'current',
575
- unversionedId: 'foo/bar',
576
- sourceDirName: 'foo',
577
- permalink: '/docs/next/foo/barSlug',
578
- slug: '/foo/barSlug',
579
- title: 'bar',
580
- description: 'This is next version of bar.',
581
- frontMatter: {
582
- slug: 'barSlug',
583
- tags: [
584
- 'barTag 1',
585
- 'barTag-2',
586
- {
587
- label: 'barTag 3',
588
- permalink: 'barTag-3-permalink',
589
- },
590
- ],
591
- },
592
- tags: [
593
- {
594
- label: 'barTag 1',
595
- permalink: '/docs/next/tags/bar-tag-1',
596
- },
597
- {
598
- label: 'barTag-2',
599
- permalink: '/docs/next/tags/bar-tag-2',
600
- },
601
- {
602
- label: 'barTag 3',
603
- permalink: '/docs/next/tags/barTag-3-permalink',
604
- },
605
- ],
606
- });
607
- await currentVersionTestUtils.testMeta(path.join('hello.md'), {
608
- id: 'hello',
609
- version: 'current',
610
- unversionedId: 'hello',
611
- sourceDirName: '.',
612
- permalink: '/docs/next/',
613
- slug: '/',
614
- title: 'hello',
615
- description: 'Hello next !',
616
- frontMatter: {
617
- slug: '/',
618
- },
619
- tags: [],
620
- });
621
- });
622
-
623
- test('versioned docs', async () => {
624
- const {version101TestUtils, version100TestUtils} = await loadSite();
625
-
626
- await version100TestUtils.testMeta(path.join('foo', 'bar.md'), {
627
- id: 'version-1.0.0/foo/bar',
628
- unversionedId: 'foo/bar',
629
- sourceDirName: 'foo',
630
- permalink: '/docs/1.0.0/foo/barSlug',
631
- slug: '/foo/barSlug',
632
- title: 'bar',
633
- description: 'Bar 1.0.0 !',
634
- frontMatter: {slug: 'barSlug'},
635
- version: '1.0.0',
636
- tags: [],
637
- });
638
- await version100TestUtils.testMeta(path.join('hello.md'), {
639
- id: 'version-1.0.0/hello',
640
- unversionedId: 'hello',
641
- sourceDirName: '.',
642
- permalink: '/docs/1.0.0/',
643
- slug: '/',
644
- title: 'hello',
645
- description: 'Hello 1.0.0 ! (translated en)',
646
- frontMatter: {
647
- slug: '/',
648
- },
649
- version: '1.0.0',
650
- source:
651
- '@site/i18n/en/docusaurus-plugin-content-docs/version-1.0.0/hello.md',
652
- tags: [],
653
- });
654
- await version101TestUtils.testMeta(path.join('foo', 'bar.md'), {
655
- id: 'version-1.0.1/foo/bar',
656
- unversionedId: 'foo/bar',
657
- sourceDirName: 'foo',
658
- permalink: '/docs/foo/bar',
659
- slug: '/foo/bar',
660
- title: 'bar',
661
- description: 'Bar 1.0.1 !',
662
- version: '1.0.1',
663
- frontMatter: {},
664
- tags: [],
665
- });
666
- await version101TestUtils.testMeta(path.join('hello.md'), {
667
- id: 'version-1.0.1/hello',
668
- unversionedId: 'hello',
669
- sourceDirName: '.',
670
- permalink: '/docs/',
671
- slug: '/',
672
- title: 'hello',
673
- description: 'Hello 1.0.1 !',
674
- version: '1.0.1',
675
- frontMatter: {
676
- slug: '/',
677
- },
678
- tags: [],
679
- });
680
- });
681
-
682
- test('next doc slugs', async () => {
683
- const {currentVersionTestUtils} = await loadSite();
684
-
685
- await currentVersionTestUtils.testSlug(
686
- path.join('slugs', 'absoluteSlug.md'),
687
- '/docs/next/absoluteSlug',
688
- );
689
- await currentVersionTestUtils.testSlug(
690
- path.join('slugs', 'relativeSlug.md'),
691
- '/docs/next/slugs/relativeSlug',
692
- );
693
- await currentVersionTestUtils.testSlug(
694
- path.join('slugs', 'resolvedSlug.md'),
695
- '/docs/next/slugs/hey/resolvedSlug',
696
- );
697
- await currentVersionTestUtils.testSlug(
698
- path.join('slugs', 'tryToEscapeSlug.md'),
699
- '/docs/next/tryToEscapeSlug',
700
- );
701
- });
702
-
703
- test('versioned doc slugs', async () => {
704
- const {versionWithSlugsTestUtils} = await loadSite();
705
-
706
- await versionWithSlugsTestUtils.testSlug(
707
- path.join('rootAbsoluteSlug.md'),
708
- '/docs/withSlugs/rootAbsoluteSlug',
709
- );
710
- await versionWithSlugsTestUtils.testSlug(
711
- path.join('rootRelativeSlug.md'),
712
- '/docs/withSlugs/rootRelativeSlug',
713
- );
714
- await versionWithSlugsTestUtils.testSlug(
715
- path.join('rootResolvedSlug.md'),
716
- '/docs/withSlugs/hey/rootResolvedSlug',
717
- );
718
- await versionWithSlugsTestUtils.testSlug(
719
- path.join('rootTryToEscapeSlug.md'),
720
- '/docs/withSlugs/rootTryToEscapeSlug',
721
- );
722
-
723
- await versionWithSlugsTestUtils.testSlug(
724
- path.join('slugs', 'absoluteSlug.md'),
725
- '/docs/withSlugs/absoluteSlug',
726
- );
727
- await versionWithSlugsTestUtils.testSlug(
728
- path.join('slugs', 'relativeSlug.md'),
729
- '/docs/withSlugs/slugs/relativeSlug',
730
- );
731
- await versionWithSlugsTestUtils.testSlug(
732
- path.join('slugs', 'resolvedSlug.md'),
733
- '/docs/withSlugs/slugs/hey/resolvedSlug',
734
- );
735
- await versionWithSlugsTestUtils.testSlug(
736
- path.join('slugs', 'tryToEscapeSlug.md'),
737
- '/docs/withSlugs/tryToEscapeSlug',
738
- );
739
- });
740
-
741
- test('doc with editUrl function', async () => {
742
- const hardcodedEditUrl = 'hardcoded-edit-url';
743
-
744
- const editUrlFunction: EditUrlFunction = jest.fn(() => hardcodedEditUrl);
745
-
746
- const {siteDir, context, options, version100} = await loadSite({
747
- options: {
748
- editUrl: editUrlFunction,
749
- },
750
- });
751
-
752
- const testUtilsLocal = createTestUtils({
753
- siteDir,
754
- context,
755
- options,
756
- versionMetadata: version100,
757
- });
758
-
759
- await testUtilsLocal.testMeta(path.join('hello.md'), {
760
- id: 'version-1.0.0/hello',
761
- unversionedId: 'hello',
762
- sourceDirName: '.',
763
- permalink: '/docs/1.0.0/',
764
- slug: '/',
765
- title: 'hello',
766
- description: 'Hello 1.0.0 ! (translated en)',
767
- frontMatter: {
768
- slug: '/',
769
- },
770
- version: '1.0.0',
771
- source:
772
- '@site/i18n/en/docusaurus-plugin-content-docs/version-1.0.0/hello.md',
773
- editUrl: hardcodedEditUrl,
774
- tags: [],
775
- });
776
-
777
- expect(editUrlFunction).toHaveBeenCalledTimes(1);
778
- expect(editUrlFunction).toHaveBeenCalledWith({
779
- version: '1.0.0',
780
- versionDocsDirPath: 'versioned_docs/version-1.0.0',
781
- docPath: path.join('hello.md'),
782
- permalink: '/docs/1.0.0/',
783
- locale: 'en',
784
- });
785
- });
786
-
787
- test('translated doc with editUrl', async () => {
788
- const {siteDir, context, options, version100} = await loadSite({
789
- options: {
790
- editUrl: 'https://github.com/facebook/docusaurus/edit/main/website',
791
- // editCurrentVersion: true,
792
- },
793
- });
794
-
795
- const testUtilsLocal = createTestUtils({
796
- siteDir,
797
- context,
798
- options,
799
- versionMetadata: version100,
800
- });
801
-
802
- await testUtilsLocal.testMeta(path.join('hello.md'), {
803
- id: 'version-1.0.0/hello',
804
- unversionedId: 'hello',
805
- sourceDirName: '.',
806
- permalink: '/docs/1.0.0/',
807
- slug: '/',
808
- title: 'hello',
809
- description: 'Hello 1.0.0 ! (translated en)',
810
- frontMatter: {
811
- slug: '/',
812
- },
813
- version: '1.0.0',
814
- source:
815
- '@site/i18n/en/docusaurus-plugin-content-docs/version-1.0.0/hello.md',
816
- editUrl:
817
- 'https://github.com/facebook/docusaurus/edit/main/website/versioned_docs/version-1.0.0/hello.md',
818
- tags: [],
819
- });
820
- });
821
-
822
- test('translated en doc with editUrl and editCurrentVersion=true', async () => {
823
- const {siteDir, context, options, version100} = await loadSite({
824
- options: {
825
- editUrl: 'https://github.com/facebook/docusaurus/edit/main/website',
826
- editCurrentVersion: true,
827
- },
828
- });
829
-
830
- const testUtilsLocal = createTestUtils({
831
- siteDir,
832
- context,
833
- options,
834
- versionMetadata: version100,
835
- });
836
-
837
- await testUtilsLocal.testMeta(path.join('hello.md'), {
838
- id: 'version-1.0.0/hello',
839
- unversionedId: 'hello',
840
- sourceDirName: '.',
841
- permalink: '/docs/1.0.0/',
842
- slug: '/',
843
- title: 'hello',
844
- description: 'Hello 1.0.0 ! (translated en)',
845
- frontMatter: {
846
- slug: '/',
847
- },
848
- version: '1.0.0',
849
- source:
850
- '@site/i18n/en/docusaurus-plugin-content-docs/version-1.0.0/hello.md',
851
- editUrl:
852
- 'https://github.com/facebook/docusaurus/edit/main/website/docs/hello.md',
853
- tags: [],
854
- });
855
- });
856
-
857
- test('translated fr doc with editUrl and editLocalizedFiles=true', async () => {
858
- const {siteDir, context, options, version100} = await loadSite({
859
- options: {
860
- editUrl: 'https://github.com/facebook/docusaurus/edit/main/website',
861
- editLocalizedFiles: true,
862
- },
863
- locale: 'fr',
864
- });
865
-
866
- const testUtilsLocal = createTestUtils({
867
- siteDir,
868
- context,
869
- options,
870
- versionMetadata: version100,
871
- });
872
-
873
- await testUtilsLocal.testMeta(path.join('hello.md'), {
874
- id: 'version-1.0.0/hello',
875
- unversionedId: 'hello',
876
- sourceDirName: '.',
877
- permalink: '/fr/docs/1.0.0/',
878
- slug: '/',
879
- title: 'hello',
880
- description: 'Hello 1.0.0 ! (translated fr)',
881
- frontMatter: {
882
- slug: '/',
883
- },
884
- version: '1.0.0',
885
- source:
886
- '@site/i18n/fr/docusaurus-plugin-content-docs/version-1.0.0/hello.md',
887
- editUrl:
888
- 'https://github.com/facebook/docusaurus/edit/main/website/i18n/fr/docusaurus-plugin-content-docs/version-1.0.0/hello.md',
889
- tags: [],
890
- });
891
- });
892
-
893
- test('translated fr doc with editUrl and editLocalizedFiles=true + editCurrentVersion=true', async () => {
894
- const {siteDir, context, options, version100} = await loadSite({
895
- options: {
896
- editUrl: 'https://github.com/facebook/docusaurus/edit/main/website',
897
- editCurrentVersion: true,
898
- editLocalizedFiles: true,
899
- },
900
- locale: 'fr',
901
- });
902
-
903
- const testUtilsLocal = createTestUtils({
904
- siteDir,
905
- context,
906
- options,
907
- versionMetadata: version100,
908
- });
909
-
910
- await testUtilsLocal.testMeta(path.join('hello.md'), {
911
- id: 'version-1.0.0/hello',
912
- unversionedId: 'hello',
913
- sourceDirName: '.',
914
- permalink: '/fr/docs/1.0.0/',
915
- slug: '/',
916
- title: 'hello',
917
- description: 'Hello 1.0.0 ! (translated fr)',
918
- frontMatter: {
919
- slug: '/',
920
- },
921
- version: '1.0.0',
922
- source:
923
- '@site/i18n/fr/docusaurus-plugin-content-docs/version-1.0.0/hello.md',
924
- editUrl:
925
- 'https://github.com/facebook/docusaurus/edit/main/website/i18n/fr/docusaurus-plugin-content-docs/current/hello.md',
926
- tags: [],
927
- });
928
- });
929
- });
930
-
931
- describe('isConventionalDocIndex', () => {
932
- test('supports readme', () => {
933
- expect(
934
- isConventionalDocIndex({
935
- sourceDirName: 'doesNotMatter',
936
- source: 'readme.md',
937
- }),
938
- ).toEqual(true);
939
- expect(
940
- isConventionalDocIndex({
941
- sourceDirName: 'doesNotMatter',
942
- source: 'readme.mdx',
943
- }),
944
- ).toEqual(true);
945
- expect(
946
- isConventionalDocIndex({
947
- sourceDirName: 'doesNotMatter',
948
- source: 'README.md',
949
- }),
950
- ).toEqual(true);
951
- expect(
952
- isConventionalDocIndex({
953
- sourceDirName: 'doesNotMatter',
954
- source: 'parent/ReAdMe',
955
- }),
956
- ).toEqual(true);
957
- });
958
-
959
- test('supports index', () => {
960
- expect(
961
- isConventionalDocIndex({
962
- sourceDirName: 'doesNotMatter',
963
- source: 'index.md',
964
- }),
965
- ).toEqual(true);
966
- expect(
967
- isConventionalDocIndex({
968
- sourceDirName: 'doesNotMatter',
969
- source: 'index.mdx',
970
- }),
971
- ).toEqual(true);
972
- expect(
973
- isConventionalDocIndex({
974
- sourceDirName: 'doesNotMatter',
975
- source: 'INDEX.md',
976
- }),
977
- ).toEqual(true);
978
- expect(
979
- isConventionalDocIndex({
980
- sourceDirName: 'doesNotMatter',
981
- source: 'parent/InDeX',
982
- }),
983
- ).toEqual(true);
984
- });
985
-
986
- test('supports <categoryName>/<categoryName>.md', () => {
987
- expect(
988
- isConventionalDocIndex({
989
- sourceDirName: 'someCategory',
990
- source: 'someCategory',
991
- }),
992
- ).toEqual(true);
993
- expect(
994
- isConventionalDocIndex({
995
- sourceDirName: 'someCategory',
996
- source: 'someCategory.md',
997
- }),
998
- ).toEqual(true);
999
- expect(
1000
- isConventionalDocIndex({
1001
- sourceDirName: 'someCategory',
1002
- source: 'someCategory.mdx',
1003
- }),
1004
- ).toEqual(true);
1005
- expect(
1006
- isConventionalDocIndex({
1007
- sourceDirName: 'some_category',
1008
- source: 'SOME_CATEGORY.md',
1009
- }),
1010
- ).toEqual(true);
1011
- expect(
1012
- isConventionalDocIndex({
1013
- sourceDirName: 'some_category',
1014
- source: 'parent/some_category',
1015
- }),
1016
- ).toEqual(true);
1017
- });
1018
-
1019
- test('reject other cases', () => {
1020
- expect(
1021
- isConventionalDocIndex({
1022
- sourceDirName: 'someCategory',
1023
- source: 'some_Category',
1024
- }),
1025
- ).toEqual(false);
1026
- expect(
1027
- isConventionalDocIndex({
1028
- sourceDirName: 'doesNotMatter',
1029
- source: 'read_me',
1030
- }),
1031
- ).toEqual(false);
1032
- expect(
1033
- isConventionalDocIndex({
1034
- sourceDirName: 'doesNotMatter',
1035
- source: 'the index',
1036
- }),
1037
- ).toEqual(false);
1038
- });
1039
- });