@docusaurus/plugin-content-docs 2.0.0-beta.8e9b829d9 → 2.0.0-beta.9
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/.tsbuildinfo +1 -1
- package/lib/cli.d.ts +1 -1
- package/lib/cli.js +18 -23
- package/lib/client/docsClientUtils.d.ts +0 -3
- package/lib/client/docsClientUtils.js +10 -7
- package/lib/docFrontMatter.js +6 -2
- package/lib/docs.d.ts +3 -1
- package/lib/docs.js +76 -25
- package/lib/index.js +70 -77
- package/lib/lastUpdate.js +4 -4
- package/lib/markdown/index.d.ts +3 -6
- package/lib/markdown/index.js +3 -3
- package/lib/markdown/linkify.js +2 -2
- package/lib/options.js +12 -4
- package/lib/props.d.ts +7 -2
- package/lib/props.js +26 -3
- package/lib/{sidebarItemsGenerator.d.ts → sidebars/generator.d.ts} +2 -1
- package/lib/sidebars/generator.js +174 -0
- package/lib/sidebars/index.d.ts +14 -0
- package/lib/sidebars/index.js +64 -0
- package/lib/sidebars/normalization.d.ts +9 -0
- package/lib/sidebars/normalization.js +58 -0
- package/lib/sidebars/processor.d.ts +16 -0
- package/lib/sidebars/processor.js +70 -0
- package/lib/sidebars/types.d.ts +87 -0
- package/lib/sidebars/types.js +13 -0
- package/lib/sidebars/utils.d.ts +22 -0
- package/lib/sidebars/utils.js +101 -0
- package/lib/sidebars/validation.d.ts +8 -0
- package/lib/sidebars/validation.js +102 -0
- package/lib/slug.js +4 -4
- package/lib/tags.d.ts +8 -0
- package/lib/tags.js +22 -0
- package/lib/theme/hooks/useDocs.js +21 -21
- package/lib/translations.d.ts +1 -1
- package/lib/translations.js +13 -13
- package/lib/types.d.ts +29 -61
- package/lib/versions.d.ts +1 -1
- package/lib/versions.js +40 -20
- package/package.json +15 -14
- package/src/__tests__/__fixtures__/simple-site/docs/foo/baz.md +5 -0
- package/src/__tests__/__fixtures__/simple-site/docs/hello.md +1 -0
- package/src/__tests__/__fixtures__/simple-site/docs/rootAbsoluteSlug.md +2 -0
- package/src/__tests__/__fixtures__/simple-site/docs/rootRelativeSlug.md +2 -0
- package/src/__tests__/__fixtures__/simple-site/docs/rootResolvedSlug.md +2 -0
- package/src/__tests__/__fixtures__/simple-site/docs/rootTryToEscapeSlug.md +2 -0
- package/src/__tests__/__fixtures__/simple-site/sidebars.json +15 -1
- package/src/__tests__/__fixtures__/versioned-site/docs/foo/bar.md +6 -0
- package/src/__tests__/__snapshots__/cli.test.ts.snap +28 -0
- package/src/__tests__/__snapshots__/docs.test.ts.snap +140 -0
- package/src/__tests__/__snapshots__/index.test.ts.snap +426 -25
- package/src/__tests__/docFrontMatter.test.ts +160 -45
- package/src/__tests__/docs.test.ts +167 -21
- package/src/__tests__/index.test.ts +53 -27
- package/src/__tests__/options.test.ts +4 -1
- package/src/__tests__/props.test.ts +62 -0
- package/src/__tests__/versions.test.ts +68 -63
- package/src/cli.ts +23 -30
- package/src/client/docsClientUtils.ts +1 -12
- package/src/docFrontMatter.ts +7 -2
- package/src/docs.ts +88 -9
- package/src/index.ts +77 -91
- package/src/markdown/index.ts +8 -12
- package/src/numberPrefix.ts +4 -2
- package/src/options.ts +13 -1
- package/src/plugin-content-docs.d.ts +107 -32
- package/src/props.ts +41 -5
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-category-shorthand.js +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-category-wrong-items.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-category-wrong-label.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-category.js +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-collapsed-first-level.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-collapsed.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-doc-id-not-string.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-first-level-not-category.js +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-link-wrong-href.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-link-wrong-label.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-link.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-unknown-type.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars-wrong-field.json +0 -0
- package/src/{__tests__ → sidebars/__tests__}/__fixtures__/sidebars/sidebars.json +0 -0
- package/src/{__tests__/__snapshots__/sidebars.test.ts.snap → sidebars/__tests__/__snapshots__/index.test.ts.snap} +6 -6
- package/src/{__tests__/sidebarItemsGenerator.test.ts → sidebars/__tests__/generator.test.ts} +2 -2
- package/src/sidebars/__tests__/index.test.ts +202 -0
- package/src/sidebars/__tests__/processor.test.ts +148 -0
- package/src/sidebars/__tests__/utils.test.ts +395 -0
- package/src/sidebars/generator.ts +253 -0
- package/src/sidebars/index.ts +84 -0
- package/src/sidebars/normalization.ts +88 -0
- package/src/sidebars/processor.ts +124 -0
- package/src/sidebars/types.ts +156 -0
- package/src/sidebars/utils.ts +146 -0
- package/src/sidebars/validation.ts +124 -0
- package/src/tags.ts +21 -0
- package/src/translations.ts +26 -36
- package/src/types.ts +35 -101
- package/src/versions.ts +51 -21
- package/lib/sidebarItemsGenerator.js +0 -215
- package/lib/sidebars.d.ts +0 -45
- package/lib/sidebars.js +0 -354
- package/src/__tests__/sidebars.test.ts +0 -746
- package/src/sidebarItemsGenerator.ts +0 -315
- package/src/sidebars.ts +0 -589
|
@@ -10,7 +10,7 @@ import {DocFrontMatter} from '../types';
|
|
|
10
10
|
import escapeStringRegexp from 'escape-string-regexp';
|
|
11
11
|
|
|
12
12
|
function testField(params: {
|
|
13
|
-
|
|
13
|
+
prefix: string;
|
|
14
14
|
validFrontMatters: DocFrontMatter[];
|
|
15
15
|
convertibleFrontMatter?: [
|
|
16
16
|
ConvertableFrontMatter: Record<string, unknown>,
|
|
@@ -21,40 +21,38 @@ function testField(params: {
|
|
|
21
21
|
ErrorMessage: string,
|
|
22
22
|
][];
|
|
23
23
|
}) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
expect(validateDocFrontMatter(frontMatter)).toEqual(frontMatter);
|
|
28
|
-
});
|
|
24
|
+
test(`[${params.prefix}] accept valid values`, () => {
|
|
25
|
+
params.validFrontMatters.forEach((frontMatter) => {
|
|
26
|
+
expect(validateDocFrontMatter(frontMatter)).toEqual(frontMatter);
|
|
29
27
|
});
|
|
28
|
+
});
|
|
30
29
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
test(`[${params.prefix}] convert valid values`, () => {
|
|
31
|
+
params.convertibleFrontMatter?.forEach(
|
|
32
|
+
([convertibleFrontMatter, convertedFrontMatter]) => {
|
|
33
|
+
expect(validateDocFrontMatter(convertibleFrontMatter)).toEqual(
|
|
34
|
+
convertedFrontMatter,
|
|
35
|
+
);
|
|
36
|
+
},
|
|
37
|
+
);
|
|
38
|
+
});
|
|
40
39
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
});
|
|
40
|
+
test(`[${params.prefix}] throw error for values`, () => {
|
|
41
|
+
params.invalidFrontMatters?.forEach(([frontMatter, message]) => {
|
|
42
|
+
try {
|
|
43
|
+
validateDocFrontMatter(frontMatter);
|
|
44
|
+
fail(
|
|
45
|
+
new Error(
|
|
46
|
+
`Doc frontmatter is expected to be rejected, but was accepted successfully:\n ${JSON.stringify(
|
|
47
|
+
frontMatter,
|
|
48
|
+
null,
|
|
49
|
+
2,
|
|
50
|
+
)}`,
|
|
51
|
+
),
|
|
52
|
+
);
|
|
53
|
+
} catch (e) {
|
|
54
|
+
expect(e.message).toMatch(new RegExp(escapeStringRegexp(message)));
|
|
55
|
+
}
|
|
58
56
|
});
|
|
59
57
|
});
|
|
60
58
|
}
|
|
@@ -73,7 +71,7 @@ describe('validateDocFrontMatter', () => {
|
|
|
73
71
|
|
|
74
72
|
describe('validateDocFrontMatter id', () => {
|
|
75
73
|
testField({
|
|
76
|
-
|
|
74
|
+
prefix: 'id',
|
|
77
75
|
validFrontMatters: [{id: '123'}, {id: 'unique_id'}],
|
|
78
76
|
invalidFrontMatters: [[{id: ''}, 'is not allowed to be empty']],
|
|
79
77
|
});
|
|
@@ -81,7 +79,7 @@ describe('validateDocFrontMatter id', () => {
|
|
|
81
79
|
|
|
82
80
|
describe('validateDocFrontMatter title', () => {
|
|
83
81
|
testField({
|
|
84
|
-
|
|
82
|
+
prefix: 'title',
|
|
85
83
|
validFrontMatters: [
|
|
86
84
|
// See https://github.com/facebook/docusaurus/issues/4591#issuecomment-822372398
|
|
87
85
|
{title: ''},
|
|
@@ -92,7 +90,7 @@ describe('validateDocFrontMatter title', () => {
|
|
|
92
90
|
|
|
93
91
|
describe('validateDocFrontMatter hide_title', () => {
|
|
94
92
|
testField({
|
|
95
|
-
|
|
93
|
+
prefix: 'hide_title',
|
|
96
94
|
validFrontMatters: [{hide_title: true}, {hide_title: false}],
|
|
97
95
|
convertibleFrontMatter: [
|
|
98
96
|
[{hide_title: 'true'}, {hide_title: true}],
|
|
@@ -108,7 +106,7 @@ describe('validateDocFrontMatter hide_title', () => {
|
|
|
108
106
|
|
|
109
107
|
describe('validateDocFrontMatter hide_table_of_contents', () => {
|
|
110
108
|
testField({
|
|
111
|
-
|
|
109
|
+
prefix: 'hide_table_of_contents',
|
|
112
110
|
validFrontMatters: [
|
|
113
111
|
{hide_table_of_contents: true},
|
|
114
112
|
{hide_table_of_contents: false},
|
|
@@ -127,7 +125,7 @@ describe('validateDocFrontMatter hide_table_of_contents', () => {
|
|
|
127
125
|
|
|
128
126
|
describe('validateDocFrontMatter keywords', () => {
|
|
129
127
|
testField({
|
|
130
|
-
|
|
128
|
+
prefix: 'keywords',
|
|
131
129
|
validFrontMatters: [
|
|
132
130
|
{keywords: ['hello']},
|
|
133
131
|
{keywords: ['hello', 'world']},
|
|
@@ -144,21 +142,21 @@ describe('validateDocFrontMatter keywords', () => {
|
|
|
144
142
|
|
|
145
143
|
describe('validateDocFrontMatter image', () => {
|
|
146
144
|
testField({
|
|
147
|
-
|
|
145
|
+
prefix: 'image',
|
|
148
146
|
validFrontMatters: [
|
|
149
147
|
{image: 'https://docusaurus.io/blog/image.png'},
|
|
150
148
|
{image: '/absolute/image.png'},
|
|
151
149
|
{image: '../relative/image.png'},
|
|
152
150
|
],
|
|
153
151
|
invalidFrontMatters: [
|
|
154
|
-
[{image: ''}, 'does not
|
|
152
|
+
[{image: ''}, '"image" does not look like a valid url (value=\'\')'],
|
|
155
153
|
],
|
|
156
154
|
});
|
|
157
155
|
});
|
|
158
156
|
|
|
159
157
|
describe('validateDocFrontMatter description', () => {
|
|
160
158
|
testField({
|
|
161
|
-
|
|
159
|
+
prefix: 'description',
|
|
162
160
|
validFrontMatters: [
|
|
163
161
|
// See https://github.com/facebook/docusaurus/issues/4591#issuecomment-822372398
|
|
164
162
|
{description: ''},
|
|
@@ -169,7 +167,7 @@ describe('validateDocFrontMatter description', () => {
|
|
|
169
167
|
|
|
170
168
|
describe('validateDocFrontMatter slug', () => {
|
|
171
169
|
testField({
|
|
172
|
-
|
|
170
|
+
prefix: 'slug',
|
|
173
171
|
validFrontMatters: [
|
|
174
172
|
{slug: '/'},
|
|
175
173
|
{slug: 'slug'},
|
|
@@ -186,7 +184,7 @@ describe('validateDocFrontMatter slug', () => {
|
|
|
186
184
|
|
|
187
185
|
describe('validateDocFrontMatter sidebar_label', () => {
|
|
188
186
|
testField({
|
|
189
|
-
|
|
187
|
+
prefix: 'sidebar_label',
|
|
190
188
|
validFrontMatters: [{sidebar_label: 'Awesome docs'}],
|
|
191
189
|
invalidFrontMatters: [[{sidebar_label: ''}, 'is not allowed to be empty']],
|
|
192
190
|
});
|
|
@@ -194,7 +192,7 @@ describe('validateDocFrontMatter sidebar_label', () => {
|
|
|
194
192
|
|
|
195
193
|
describe('validateDocFrontMatter sidebar_position', () => {
|
|
196
194
|
testField({
|
|
197
|
-
|
|
195
|
+
prefix: 'sidebar_position',
|
|
198
196
|
validFrontMatters: [
|
|
199
197
|
{sidebar_position: -5},
|
|
200
198
|
{sidebar_position: -3.5},
|
|
@@ -212,7 +210,7 @@ describe('validateDocFrontMatter sidebar_position', () => {
|
|
|
212
210
|
|
|
213
211
|
describe('validateDocFrontMatter custom_edit_url', () => {
|
|
214
212
|
testField({
|
|
215
|
-
|
|
213
|
+
prefix: 'custom_edit_url',
|
|
216
214
|
validFrontMatters: [
|
|
217
215
|
// See https://github.com/demisto/content-docs/pull/616#issuecomment-827087566
|
|
218
216
|
{custom_edit_url: ''},
|
|
@@ -226,7 +224,7 @@ describe('validateDocFrontMatter custom_edit_url', () => {
|
|
|
226
224
|
|
|
227
225
|
describe('validateDocFrontMatter parse_number_prefixes', () => {
|
|
228
226
|
testField({
|
|
229
|
-
|
|
227
|
+
prefix: 'parse_number_prefixes',
|
|
230
228
|
validFrontMatters: [
|
|
231
229
|
{parse_number_prefixes: true},
|
|
232
230
|
{parse_number_prefixes: false},
|
|
@@ -242,3 +240,120 @@ describe('validateDocFrontMatter parse_number_prefixes', () => {
|
|
|
242
240
|
],
|
|
243
241
|
});
|
|
244
242
|
});
|
|
243
|
+
|
|
244
|
+
describe('validateDocFrontMatter tags', () => {
|
|
245
|
+
testField({
|
|
246
|
+
prefix: 'tags',
|
|
247
|
+
validFrontMatters: [{}, {tags: undefined}, {tags: ['tag1', 'tag2']}],
|
|
248
|
+
convertibleFrontMatter: [[{tags: ['tag1', 42]}, {tags: ['tag1', '42']}]],
|
|
249
|
+
invalidFrontMatters: [
|
|
250
|
+
[{tags: 42}, '"tags" does not look like a valid FrontMatter Yaml array.'],
|
|
251
|
+
[
|
|
252
|
+
{tags: 'tag1, tag2'},
|
|
253
|
+
'"tags" does not look like a valid FrontMatter Yaml array.',
|
|
254
|
+
],
|
|
255
|
+
[{tags: [{}]}, '"tags[0]" does not look like a valid tag'],
|
|
256
|
+
[{tags: [true]}, '"tags[0]" does not look like a valid tag'],
|
|
257
|
+
[
|
|
258
|
+
{tags: ['tag1', {hey: 'test'}]},
|
|
259
|
+
'"tags[1]" does not look like a valid tag',
|
|
260
|
+
],
|
|
261
|
+
],
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
describe('validateDocFrontMatter toc_min_heading_level', () => {
|
|
266
|
+
testField({
|
|
267
|
+
prefix: 'toc_min_heading_level',
|
|
268
|
+
validFrontMatters: [
|
|
269
|
+
{},
|
|
270
|
+
{toc_min_heading_level: undefined},
|
|
271
|
+
{toc_min_heading_level: 2},
|
|
272
|
+
{toc_min_heading_level: 3},
|
|
273
|
+
{toc_min_heading_level: 4},
|
|
274
|
+
{toc_min_heading_level: 5},
|
|
275
|
+
{toc_min_heading_level: 6},
|
|
276
|
+
],
|
|
277
|
+
convertibleFrontMatter: [
|
|
278
|
+
[{toc_min_heading_level: '2'}, {toc_min_heading_level: 2}],
|
|
279
|
+
],
|
|
280
|
+
invalidFrontMatters: [
|
|
281
|
+
[
|
|
282
|
+
{toc_min_heading_level: 1},
|
|
283
|
+
'"toc_min_heading_level" must be greater than or equal to 2',
|
|
284
|
+
],
|
|
285
|
+
[
|
|
286
|
+
{toc_min_heading_level: 7},
|
|
287
|
+
'"toc_min_heading_level" must be less than or equal to 6',
|
|
288
|
+
],
|
|
289
|
+
[
|
|
290
|
+
{toc_min_heading_level: 'hello'},
|
|
291
|
+
'"toc_min_heading_level" must be a number',
|
|
292
|
+
],
|
|
293
|
+
[
|
|
294
|
+
{toc_min_heading_level: true},
|
|
295
|
+
'"toc_min_heading_level" must be a number',
|
|
296
|
+
],
|
|
297
|
+
],
|
|
298
|
+
});
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
describe('validateDocFrontMatter toc_max_heading_level', () => {
|
|
302
|
+
testField({
|
|
303
|
+
prefix: 'toc_max_heading_level',
|
|
304
|
+
validFrontMatters: [
|
|
305
|
+
{},
|
|
306
|
+
{toc_max_heading_level: undefined},
|
|
307
|
+
{toc_max_heading_level: 2},
|
|
308
|
+
{toc_max_heading_level: 3},
|
|
309
|
+
{toc_max_heading_level: 4},
|
|
310
|
+
{toc_max_heading_level: 5},
|
|
311
|
+
{toc_max_heading_level: 6},
|
|
312
|
+
],
|
|
313
|
+
convertibleFrontMatter: [
|
|
314
|
+
[{toc_max_heading_level: '2'}, {toc_max_heading_level: 2}],
|
|
315
|
+
],
|
|
316
|
+
invalidFrontMatters: [
|
|
317
|
+
[
|
|
318
|
+
{toc_max_heading_level: 1},
|
|
319
|
+
'"toc_max_heading_level" must be greater than or equal to 2',
|
|
320
|
+
],
|
|
321
|
+
[
|
|
322
|
+
{toc_max_heading_level: 7},
|
|
323
|
+
'"toc_max_heading_level" must be less than or equal to 6',
|
|
324
|
+
],
|
|
325
|
+
[
|
|
326
|
+
{toc_max_heading_level: 'hello'},
|
|
327
|
+
'"toc_max_heading_level" must be a number',
|
|
328
|
+
],
|
|
329
|
+
[
|
|
330
|
+
{toc_max_heading_level: true},
|
|
331
|
+
'"toc_max_heading_level" must be a number',
|
|
332
|
+
],
|
|
333
|
+
],
|
|
334
|
+
});
|
|
335
|
+
});
|
|
336
|
+
|
|
337
|
+
describe('validateDocFrontMatter toc min/max consistency', () => {
|
|
338
|
+
testField({
|
|
339
|
+
prefix: 'toc min/max',
|
|
340
|
+
validFrontMatters: [
|
|
341
|
+
{},
|
|
342
|
+
{toc_min_heading_level: undefined, toc_max_heading_level: undefined},
|
|
343
|
+
{toc_min_heading_level: 2, toc_max_heading_level: 2},
|
|
344
|
+
{toc_min_heading_level: 2, toc_max_heading_level: 6},
|
|
345
|
+
{toc_min_heading_level: 2, toc_max_heading_level: 3},
|
|
346
|
+
{toc_min_heading_level: 3, toc_max_heading_level: 3},
|
|
347
|
+
],
|
|
348
|
+
invalidFrontMatters: [
|
|
349
|
+
[
|
|
350
|
+
{toc_min_heading_level: 4, toc_max_heading_level: 3},
|
|
351
|
+
'"toc_min_heading_level" must be less than or equal to ref:toc_max_heading_level',
|
|
352
|
+
],
|
|
353
|
+
[
|
|
354
|
+
{toc_min_heading_level: 6, toc_max_heading_level: 2},
|
|
355
|
+
'"toc_min_heading_level" must be less than or equal to ref:toc_max_heading_level',
|
|
356
|
+
],
|
|
357
|
+
],
|
|
358
|
+
});
|
|
359
|
+
});
|