@jxsuite/starters 3.3.1 → 3.4.0

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 (40) hide show
  1. package/package.json +5 -5
  2. package/sites/blog/package.json +3 -3
  3. package/sites/blog/project.jxn +86 -0
  4. package/sites/course/package.json +3 -3
  5. package/sites/course/project.jxn +94 -0
  6. package/sites/event/package.json +3 -3
  7. package/sites/event/project.jxn +114 -0
  8. package/sites/fitness-studio/package.json +3 -3
  9. package/sites/fitness-studio/project.jxn +124 -0
  10. package/sites/home-services/package.json +3 -3
  11. package/sites/home-services/project.jxn +113 -0
  12. package/sites/museum/package.json +3 -3
  13. package/sites/museum/project.jxn +130 -0
  14. package/sites/nonprofit/package.json +3 -3
  15. package/sites/nonprofit/project.jxn +99 -0
  16. package/sites/portfolio/package.json +3 -3
  17. package/sites/portfolio/project.jxn +85 -0
  18. package/sites/professional-firm/package.json +3 -3
  19. package/sites/professional-firm/project.jxn +94 -0
  20. package/sites/real-estate/package.json +3 -3
  21. package/sites/real-estate/project.jxn +103 -0
  22. package/sites/restaurant/package.json +3 -3
  23. package/sites/restaurant/project.jxn +93 -0
  24. package/sites/saas/package.json +3 -3
  25. package/sites/saas/project.jxn +119 -0
  26. package/sites/shop/package.json +3 -3
  27. package/sites/shop/project.jxn +100 -0
  28. package/sites/blog/project.json +0 -140
  29. package/sites/course/project.json +0 -141
  30. package/sites/event/project.json +0 -163
  31. package/sites/fitness-studio/project.json +0 -175
  32. package/sites/home-services/project.json +0 -160
  33. package/sites/museum/project.json +0 -179
  34. package/sites/nonprofit/project.json +0 -147
  35. package/sites/portfolio/project.json +0 -137
  36. package/sites/professional-firm/project.json +0 -145
  37. package/sites/real-estate/project.json +0 -163
  38. package/sites/restaurant/project.json +0 -145
  39. package/sites/saas/project.json +0 -166
  40. package/sites/shop/project.json +0 -156
@@ -1,175 +0,0 @@
1
- {
2
- "$schema": "./project.schema.json",
3
- "name": "Ember Yoga & Fitness",
4
- "url": "https://example.com",
5
- "defaults": {
6
- "layout": "./layouts/base.json",
7
- "lang": "en"
8
- },
9
- "$head": [
10
- {
11
- "tagName": "meta",
12
- "attributes": {
13
- "name": "viewport",
14
- "content": "width=device-width, initial-scale=1"
15
- }
16
- },
17
- {
18
- "tagName": "meta",
19
- "attributes": {
20
- "name": "description",
21
- "content": "Ember is a boutique yoga & fitness studio — vinyasa, pilates, HIIT and strength in small, all-levels classes. See the weekly schedule and book a class."
22
- }
23
- },
24
- {
25
- "tagName": "link",
26
- "attributes": {
27
- "rel": "icon",
28
- "href": "/favicon.svg"
29
- }
30
- },
31
- {
32
- "tagName": "link",
33
- "attributes": {
34
- "rel": "preconnect",
35
- "href": "https://fonts.googleapis.com"
36
- }
37
- },
38
- {
39
- "tagName": "link",
40
- "attributes": {
41
- "rel": "preconnect",
42
- "href": "https://fonts.gstatic.com",
43
- "crossorigin": ""
44
- }
45
- },
46
- {
47
- "tagName": "link",
48
- "attributes": {
49
- "rel": "stylesheet",
50
- "href": "https://fonts.googleapis.com/css2?family=Anton&family=Archivo:wght@500;600;700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap"
51
- }
52
- }
53
- ],
54
- "$media": {
55
- "--": "1200px",
56
- "--lg": "(max-width: 1024px)",
57
- "--md": "(max-width: 768px)",
58
- "--sm": "(max-width: 640px)"
59
- },
60
- "style": {
61
- "--color-primary": "#ff2e63",
62
- "--color-primary-hover": "#e01152",
63
- "--color-ember": "#ff8c42",
64
- "--color-magenta": "#d6157a",
65
- "--color-ink": "#1a0f18",
66
- "--color-ink-band": "#20111c",
67
- "--color-bg-dark": "#20111c",
68
- "--color-bg-white": "#ffffff",
69
- "--color-bg-blush": "#fff4ef",
70
- "--color-bg-peach": "#ffe7dc",
71
- "--color-bg-cream": "#fff4ef",
72
- "--color-text-primary": "#1a0f18",
73
- "--color-text-white": "#ffffff",
74
- "--color-text-muted": "#7c6a74",
75
- "--color-border": "#f3ded4",
76
- "--color-border-dark": "rgba(255,255,255,0.14)",
77
- "--color-accent": "#ff8c42",
78
- "--color-yoga": "#ff2e63",
79
- "--color-strength": "#7b2ff7",
80
- "--color-pilates": "#ff8c42",
81
- "--color-hiit": "#d6157a",
82
- "--grad": "linear-gradient(103deg, #ff2e63 0%, #ff6a3d 52%, #ffb03a 100%)",
83
- "--grad-hot": "linear-gradient(120deg, #d6157a 0%, #ff2e63 55%, #ff8c42 100%)",
84
- "--duo-shadow": "#280a22",
85
- "--font-display": "'Anton', 'Archivo', system-ui, -apple-system, sans-serif",
86
- "--font-heading": "'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif",
87
- "--font-body": "'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
88
- "--max-width": "1200px",
89
- "--max-width-narrow": "820px",
90
- "--radius": "1.1rem",
91
- "--radius-sm": "0.7rem",
92
- "margin": "0",
93
- "padding": "0",
94
- "fontFamily": "var(--font-body)",
95
- "lineHeight": "1.6",
96
- "color": "var(--color-text-primary)",
97
- "backgroundColor": "var(--color-bg-white)",
98
- "h1": {
99
- "fontFamily": "var(--font-heading)",
100
- "color": "var(--color-text-primary)"
101
- },
102
- "h2": {
103
- "fontFamily": "var(--font-heading)",
104
- "color": "var(--color-text-primary)"
105
- },
106
- "h3": {
107
- "fontFamily": "var(--font-heading)",
108
- "color": "var(--color-text-primary)"
109
- },
110
- "h4": {
111
- "fontFamily": "var(--font-heading)",
112
- "color": "var(--color-text-primary)"
113
- },
114
- "strong": {
115
- "color": "var(--color-text-primary)",
116
- "fontWeight": "700"
117
- },
118
- "a": {
119
- "color": "var(--color-primary)"
120
- },
121
- "::selection": {
122
- "backgroundColor": "var(--color-primary)",
123
- "color": "#ffffff"
124
- }
125
- },
126
- "images": {
127
- "optimize": true,
128
- "widths": [320, 640, 960, 1280, 1920],
129
- "formats": ["webp", "avif"],
130
- "quality": {
131
- "webp": 80,
132
- "avif": 65,
133
- "jpeg": 80,
134
- "png": 80
135
- },
136
- "sizes": "(max-width: 768px) 100vw, 50vw",
137
- "lazyLoad": true
138
- },
139
- "content": {
140
- "classes": {
141
- "source": "./content/classes/",
142
- "format": "Markdown",
143
- "schema": {
144
- "type": "object",
145
- "properties": {
146
- "name": {
147
- "type": "string"
148
- },
149
- "level": {
150
- "type": "string"
151
- },
152
- "time": {
153
- "type": "string"
154
- },
155
- "instructor": {
156
- "type": "string"
157
- },
158
- "focus": {
159
- "type": "string"
160
- },
161
- "order": {
162
- "type": "number"
163
- }
164
- },
165
- "required": ["name", "level", "time", "instructor"]
166
- }
167
- }
168
- },
169
- "build": {
170
- "outDir": "./dist",
171
- "format": "directory",
172
- "trailingSlash": "always"
173
- },
174
- "extensions": ["@jxsuite/parser"]
175
- }
@@ -1,160 +0,0 @@
1
- {
2
- "$schema": "./project.schema.json",
3
- "name": "Summit Heating & Cooling",
4
- "url": "https://example.com",
5
- "defaults": {
6
- "layout": "./layouts/base.json",
7
- "lang": "en"
8
- },
9
- "$head": [
10
- {
11
- "tagName": "meta",
12
- "attributes": {
13
- "name": "viewport",
14
- "content": "width=device-width, initial-scale=1"
15
- }
16
- },
17
- {
18
- "tagName": "meta",
19
- "attributes": {
20
- "name": "description",
21
- "content": "Summit Heating & Cooling — licensed, insured HVAC contractor serving Northern Colorado with AC and furnace installation, repair, heat pumps, and 24/7 emergency service."
22
- }
23
- },
24
- {
25
- "tagName": "link",
26
- "attributes": {
27
- "rel": "icon",
28
- "href": "/favicon.svg"
29
- }
30
- },
31
- {
32
- "tagName": "link",
33
- "attributes": {
34
- "rel": "preconnect",
35
- "href": "https://fonts.googleapis.com"
36
- }
37
- },
38
- {
39
- "tagName": "link",
40
- "attributes": {
41
- "rel": "preconnect",
42
- "href": "https://fonts.gstatic.com",
43
- "crossorigin": ""
44
- }
45
- },
46
- {
47
- "tagName": "link",
48
- "attributes": {
49
- "rel": "stylesheet",
50
- "href": "https://fonts.googleapis.com/css2?family=Oswald:wght@400;500;600;700&family=Barlow:wght@400;500;600;700&display=swap"
51
- }
52
- }
53
- ],
54
- "$media": {
55
- "--": "1200px",
56
- "--lg": "(max-width: 1024px)",
57
- "--md": "(max-width: 768px)",
58
- "--sm": "(max-width: 640px)"
59
- },
60
- "style": {
61
- "--color-primary": "#f4511e",
62
- "--color-primary-hover": "#d84315",
63
- "--color-primary-soft": "rgba(244, 81, 30, 0.12)",
64
- "--color-ink": "#0e1a23",
65
- "--color-steel": "#122430",
66
- "--color-steel-2": "#1a3341",
67
- "--color-steel-line": "#28414f",
68
- "--color-bg-dark": "#0e1a23",
69
- "--color-bg-steel": "#122430",
70
- "--color-bg-cream": "#eef1f4",
71
- "--color-bg-concrete": "#e5eaee",
72
- "--color-bg-white": "#ffffff",
73
- "--color-text-primary": "#14212b",
74
- "--color-text-white": "#ffffff",
75
- "--color-text-muted": "#5c6b77",
76
- "--color-text-steel-muted": "#9fb2be",
77
- "--color-border": "#d9e0e6",
78
- "--color-border-strong": "#c1cbd3",
79
- "--color-accent": "#f4511e",
80
- "--hazard": "repeating-linear-gradient(-45deg, #f4511e 0 16px, #0e1a23 16px 32px)",
81
- "--font-heading": "'Oswald', 'Arial Narrow', 'Segoe UI', system-ui, sans-serif",
82
- "--font-body": "'Barlow', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
83
- "--max-width": "1200px",
84
- "--max-width-narrow": "820px",
85
- "--radius": "0.5rem",
86
- "--radius-sm": "0.35rem",
87
- "--shadow-card": "0 2px 4px rgba(14,26,35,0.05), 0 16px 40px -22px rgba(14,26,35,0.35)",
88
- "--shadow-float": "0 34px 70px -30px rgba(14,26,35,0.5)",
89
- "margin": "0",
90
- "padding": "0",
91
- "fontFamily": "var(--font-body)",
92
- "fontSize": "17px",
93
- "lineHeight": "1.6",
94
- "color": "var(--color-text-primary)",
95
- "backgroundColor": "var(--color-bg-white)",
96
- "WebkitFontSmoothing": "antialiased",
97
- "h1": {
98
- "fontFamily": "var(--font-heading)"
99
- },
100
- "h2": {
101
- "fontFamily": "var(--font-heading)"
102
- },
103
- "h3": {
104
- "fontFamily": "var(--font-heading)"
105
- },
106
- "h4": {
107
- "fontFamily": "var(--font-heading)"
108
- },
109
- "strong": {
110
- "color": "var(--color-text-primary)"
111
- },
112
- "a": {
113
- "color": "var(--color-primary)",
114
- "fontWeight": "600"
115
- }
116
- },
117
- "images": {
118
- "optimize": true,
119
- "widths": [320, 640, 960, 1280, 1920],
120
- "formats": ["webp", "avif"],
121
- "quality": {
122
- "webp": 80,
123
- "avif": 65,
124
- "jpeg": 80,
125
- "png": 80
126
- },
127
- "sizes": "(max-width: 768px) 100vw, 50vw",
128
- "lazyLoad": true
129
- },
130
- "content": {
131
- "services": {
132
- "source": "./content/services/",
133
- "format": "Markdown",
134
- "schema": {
135
- "type": "object",
136
- "properties": {
137
- "name": {
138
- "type": "string"
139
- },
140
- "summary": {
141
- "type": "string"
142
- },
143
- "icon": {
144
- "type": "string"
145
- },
146
- "order": {
147
- "type": "number"
148
- }
149
- },
150
- "required": ["name", "summary"]
151
- }
152
- }
153
- },
154
- "build": {
155
- "outDir": "./dist",
156
- "format": "directory",
157
- "trailingSlash": "always"
158
- },
159
- "extensions": ["@jxsuite/parser"]
160
- }
@@ -1,179 +0,0 @@
1
- {
2
- "$schema": "./project.schema.json",
3
- "name": "Atrium",
4
- "url": "https://example.com",
5
- "defaults": {
6
- "layout": "./layouts/base.json",
7
- "lang": "en"
8
- },
9
- "i18n": {
10
- "defaultLocale": "en",
11
- "locales": ["en", "fr-CA", "ar"],
12
- "routing": "prefix-except-default"
13
- },
14
- "$head": [
15
- {
16
- "tagName": "meta",
17
- "attributes": {
18
- "name": "viewport",
19
- "content": "width=device-width, initial-scale=1"
20
- }
21
- },
22
- {
23
- "tagName": "meta",
24
- "attributes": {
25
- "name": "description",
26
- "content": "Atrium is the city museum of art and history — four centuries of the harbour, its makers and its maps, in a glass hall open to everyone, in English, French and Arabic."
27
- }
28
- },
29
- {
30
- "tagName": "link",
31
- "attributes": {
32
- "rel": "icon",
33
- "href": "/favicon.svg",
34
- "type": "image/svg+xml"
35
- }
36
- },
37
- {
38
- "tagName": "link",
39
- "attributes": {
40
- "rel": "preconnect",
41
- "href": "https://fonts.googleapis.com"
42
- }
43
- },
44
- {
45
- "tagName": "link",
46
- "attributes": {
47
- "rel": "preconnect",
48
- "href": "https://fonts.gstatic.com",
49
- "crossorigin": ""
50
- }
51
- },
52
- {
53
- "tagName": "link",
54
- "attributes": {
55
- "rel": "stylesheet",
56
- "href": "https://fonts.googleapis.com/css2?family=Noto+Sans+Display:wght@400;500;700&family=Noto+Sans+Mono:wght@400;500&family=Noto+Serif:wght@400;500;600&family=Noto+Kufi+Arabic:wght@400;500;700&family=Noto+Naskh+Arabic:wght@400;500;600&display=swap"
57
- }
58
- }
59
- ],
60
- "$media": {
61
- "--lg": "(max-width: 1080px)",
62
- "--md": "(max-width: 840px)",
63
- "--sm": "(max-width: 600px)"
64
- },
65
- "style": {
66
- "--color-ink": "#17181d",
67
- "--color-ink-deep": "#0b0c10",
68
- "--color-chalk": "#e7e3da",
69
- "--color-chalk-deep": "#d8d3c6",
70
- "--color-card": "#f7f5f0",
71
- "--color-pigment": "#2438c8",
72
- "--color-pigment-deep": "#182a9c",
73
- "--color-pigment-tint": "rgba(36, 56, 200, 0.09)",
74
- "--color-clay": "#ad4529",
75
- "--color-muted": "#5c5a66",
76
- "--color-hairline": "#cbc5b8",
77
- "--font-display": "'Noto Sans Display', 'Noto Kufi Arabic', system-ui, -apple-system, sans-serif",
78
- "--font-text": "'Noto Serif', 'Noto Naskh Arabic', Georgia, 'Times New Roman', serif",
79
- "--font-label": "'Noto Sans Mono', 'Noto Kufi Arabic', ui-monospace, SFMono-Regular, Menlo, monospace",
80
- "--label-tracking": "0.16em",
81
- "--label-case": "uppercase",
82
- "--display-tracking": "-0.035em",
83
- "--radius": "0",
84
- "--max-width": "1240px",
85
- "--measure": "62ch",
86
- "--label-column": "9.5rem",
87
- "--gutter": "clamp(1.25rem, 4vw, 3rem)",
88
- "--band-space": "clamp(3.25rem, 7vw, 6rem)",
89
- "--flip-inline": "1",
90
- "--leading-scale": "1",
91
- "margin": "0",
92
- "padding": "0",
93
- "fontFamily": "var(--font-text)",
94
- "fontSize": "17px",
95
- "lineHeight": "1.7",
96
- "color": "var(--color-ink)",
97
- "backgroundColor": "var(--color-chalk)",
98
- "WebkitFontSmoothing": "antialiased",
99
- ":lang(ar)": {
100
- "--label-tracking": "0",
101
- "--label-case": "none",
102
- "--display-tracking": "0",
103
- "--flip-inline": "-1",
104
- "--leading-scale": "1.35"
105
- },
106
- ":dir(rtl)": {
107
- "--flip-inline": "-1"
108
- },
109
- ":lang(ar) h1, :lang(ar) h2, :lang(ar) h3": {
110
- "textWrap": "balance"
111
- }
112
- },
113
- "images": {
114
- "optimize": false,
115
- "lazyLoad": true
116
- },
117
- "content": {
118
- "exhibitions": {
119
- "source": "./content/exhibitions/{locale}/",
120
- "format": "Markdown",
121
- "schema": {
122
- "type": "object",
123
- "properties": {
124
- "title": {
125
- "type": "string",
126
- "description": "Exhibition title, as it appears on the wall."
127
- },
128
- "description": {
129
- "type": "string",
130
- "description": "One-sentence standfirst for cards and search results."
131
- },
132
- "date": {
133
- "type": "string",
134
- "description": "Opening date, ISO 8601 (YYYY-MM-DD) — Intl/formatDate renders it in each page's own language."
135
- },
136
- "until": {
137
- "type": "string",
138
- "description": "Closing date, ISO 8601 (YYYY-MM-DD)."
139
- },
140
- "gallery": {
141
- "type": "string",
142
- "description": "Where in the building it hangs."
143
- },
144
- "curator": {
145
- "type": "string",
146
- "description": "Curator's name — a proper noun, so it stays the same in every language."
147
- },
148
- "works": {
149
- "type": "number",
150
- "description": "Number of objects on show; formatted with Intl/formatNumber, so Arabic pages get Arabic-Indic digits."
151
- },
152
- "hue": {
153
- "type": "number",
154
- "description": "Hue (0–360) of this exhibition's drawn plate. The starter ships no photographs; each card's art is CSS, generated from this one number."
155
- },
156
- "enKey": {
157
- "type": "string",
158
- "description": "This entry's id, repeated as a field only the English entries carry. Three translations share one id, and ContentEntry matches a field value across the whole collection — so each locale's detail route matches its own key field, and the value being the id is what keeps the three URLs parallel."
159
- },
160
- "lang": {
161
- "type": "string",
162
- "description": "BCP 47 tag of the directory this entry came from. One collection holds every language at once, so a locale's index filters on this to list only its own."
163
- },
164
- "order": {
165
- "type": "number",
166
- "description": "Running order on the exhibitions index."
167
- }
168
- },
169
- "required": ["title", "description", "date", "until", "gallery", "lang"]
170
- }
171
- }
172
- },
173
- "build": {
174
- "outDir": "./dist",
175
- "format": "directory",
176
- "trailingSlash": "always"
177
- },
178
- "extensions": ["@jxsuite/parser"]
179
- }
@@ -1,147 +0,0 @@
1
- {
2
- "$schema": "./project.schema.json",
3
- "name": "Rivertown Foundation",
4
- "url": "https://example.com",
5
- "defaults": {
6
- "layout": "./layouts/base.json",
7
- "lang": "en"
8
- },
9
- "$head": [
10
- {
11
- "tagName": "meta",
12
- "attributes": {
13
- "name": "viewport",
14
- "content": "width=device-width, initial-scale=1"
15
- }
16
- },
17
- {
18
- "tagName": "meta",
19
- "attributes": {
20
- "name": "description",
21
- "content": "Rivertown Foundation is a community nonprofit running local programs in food security, youth mentoring, housing, and job training — powered by neighbors helping neighbors."
22
- }
23
- },
24
- {
25
- "tagName": "link",
26
- "attributes": {
27
- "rel": "icon",
28
- "href": "/favicon.svg"
29
- }
30
- },
31
- {
32
- "tagName": "link",
33
- "attributes": {
34
- "rel": "preconnect",
35
- "href": "https://fonts.googleapis.com"
36
- }
37
- },
38
- {
39
- "tagName": "link",
40
- "attributes": {
41
- "rel": "preconnect",
42
- "href": "https://fonts.gstatic.com",
43
- "crossorigin": ""
44
- }
45
- },
46
- {
47
- "tagName": "link",
48
- "attributes": {
49
- "rel": "stylesheet",
50
- "href": "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..700;1,9..144,400..600&family=Nunito:wght@400;500;600;700;800&display=swap"
51
- }
52
- }
53
- ],
54
- "$media": {
55
- "--": "1200px",
56
- "--lg": "(max-width: 1024px)",
57
- "--md": "(max-width: 768px)",
58
- "--sm": "(max-width: 560px)"
59
- },
60
- "style": {
61
- "--color-primary": "#2f7d55",
62
- "--color-primary-hover": "#256845",
63
- "--color-primary-deep": "#173a2b",
64
- "--color-primary-soft": "#e3efe6",
65
- "--color-accent": "#f26a3d",
66
- "--color-accent-hover": "#e0552b",
67
- "--color-accent-soft": "#ffe6da",
68
- "--color-gold": "#e9a63d",
69
- "--color-gold-soft": "#fbeccf",
70
- "--color-ink": "#22332a",
71
- "--color-bg-dark": "#173a2b",
72
- "--color-bg-cream": "#fbf5ec",
73
- "--color-bg-cream-deep": "#f6ecda",
74
- "--color-bg-mint": "#eef6ef",
75
- "--color-bg-white": "#ffffff",
76
- "--color-text-primary": "#23342b",
77
- "--color-text-secondary": "#3f5147",
78
- "--color-text-muted": "#61715f",
79
- "--color-text-white": "#ffffff",
80
- "--color-border": "#eadfce",
81
- "--color-border-strong": "#dccdb4",
82
- "--font-display": "'Fraunces', Georgia, 'Times New Roman', serif",
83
- "--font-heading": "'Fraunces', Georgia, 'Times New Roman', serif",
84
- "--font-body": "'Nunito', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif",
85
- "--max-width": "1180px",
86
- "--max-width-wide": "1300px",
87
- "--max-width-narrow": "760px",
88
- "--radius": "1.25rem",
89
- "--radius-sm": "0.75rem",
90
- "--radius-lg": "2rem",
91
- "--radius-pill": "999px",
92
- "--shadow-card": "0 2px 6px rgba(23,58,43,0.05), 0 20px 44px -26px rgba(23,58,43,0.3)",
93
- "--shadow-float": "0 34px 74px -32px rgba(23,58,43,0.4)",
94
- "margin": "0",
95
- "padding": "0",
96
- "fontFamily": "var(--font-body)",
97
- "fontSize": "17px",
98
- "lineHeight": "1.7",
99
- "color": "var(--color-text-primary)",
100
- "backgroundColor": "var(--color-bg-white)",
101
- "WebkitFontSmoothing": "antialiased"
102
- },
103
- "images": {
104
- "optimize": true,
105
- "widths": [320, 640, 960, 1280, 1920],
106
- "formats": ["webp", "avif"],
107
- "quality": {
108
- "webp": 80,
109
- "avif": 65,
110
- "jpeg": 80,
111
- "png": 80
112
- },
113
- "sizes": "(max-width: 768px) 100vw, 50vw",
114
- "lazyLoad": true
115
- },
116
- "content": {
117
- "programs": {
118
- "source": "./content/programs/",
119
- "format": "Markdown",
120
- "schema": {
121
- "type": "object",
122
- "properties": {
123
- "title": {
124
- "type": "string"
125
- },
126
- "summary": {
127
- "type": "string"
128
- },
129
- "image": {
130
- "type": "string",
131
- "format": "image"
132
- },
133
- "order": {
134
- "type": "number"
135
- }
136
- },
137
- "required": ["title", "summary"]
138
- }
139
- }
140
- },
141
- "build": {
142
- "outDir": "./dist",
143
- "format": "directory",
144
- "trailingSlash": "always"
145
- },
146
- "extensions": ["@jxsuite/parser"]
147
- }