-
-
Notifications
You must be signed in to change notification settings - Fork 263
/
Copy pathindex.page.tsx
115 lines (113 loc) · 4.43 KB
/
index.page.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import React from 'react';
import { getLayout } from '~/components/Sidebar';
import Head from 'next/head';
import { Headline1 } from '~/components/Headlines';
import { SectionContext } from '~/context';
import Card from '~/components/Card';
import { DocsHelp } from '~/components/DocsHelp';
import NextPrevButton from '~/components/NavigationButtons';
export default function Welcome() {
const fileRenderType = 'tsx';
const newTitle = 'JSON Schema reference';
return (
<SectionContext.Provider value='learn'>
<Head>
<title>{newTitle}</title>
</Head>
<Headline1>{newTitle}</Headline1>
<p>
Master the full power of JSON Schema with our reference documentation.
<br />
<br />
From basic data types to advanced techniques like conditional validation
and schema composition, you will learn everything about JSON Schema
keywords through clear explanations and examples. By learning best
practices for building clear, scalable, and easy-to-maintain schemas,
you will ensure that your JSON data is both robust and flexible.
<br />
</p>
<div className='w-full lg:w-full grid grid-cols-1 sm:grid-cols-2 gap-6 my-[10px] mx-auto mt-8'>
<Card
title='Keywords'
body='Browse our comprehensive index of JSON Schema keywords, each linking to detailed documentation.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='/understanding-json-schema/keywords'
/>
<Card
title='Type-specific Keywords'
body='Become profficient at using the type keyword to validate your data.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='./reference/type'
/>
<Card
title='Dialect and vocabulary declaration'
body='Learn how to declare the JSON Schema dialect and vocabulary your schema uses, ensuring compatibility and proper validation.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='./reference/schema'
/>
<Card
title='Enumerated and Constant Values'
body='Ensure data consistency and accuracy, by defining value sets and fixed values for your JSON properties.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='./reference/generic'
/>
<Card
title='Annotations and comments'
body='Enhance your JSON Schemas with annotations and comments. Learn how to add descriptions, defaults, examples, and more to improve readability and maintainability.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='./reference/metadata'
/>
<Card
title='Conditional schema validation'
body='Control validation based on property presence and values using conditional subschemas.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='./reference/conditionals'
/>
<Card
title='Schema composition'
body='Learn how to combine JSON Schemas using modular and boolean techniques to create flexible and maintainable data models.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='./reference/composition'
/>
<Card
title='String-encoding non-JSON data'
body='Describe and handle non-JSON data within JSON strings using media type and encoding information.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='./reference/non_json_data'
/>
<Card
title='Learn JSON Schema'
body='Improve your JSON Schema skills with this reference, crafted by our TSC members, offering practical examples, best practices, and common pitfalls.'
headerSize='medium'
bodyTextSize='small'
extended={true}
link='https://www.learnjsonschema.com/2020-12/'
/>
</div>
<NextPrevButton
prevLabel='Understanding common interfaces'
prevURL='/implementers/interfaces'
nextLabel='JSON Schema keywords'
nextURL='/understanding-json-schema/keywords'
/>
<DocsHelp fileRenderType={fileRenderType} />
</SectionContext.Provider>
);
}
Welcome.getLayout = getLayout;