@lupinum/ginko 0.6.2 → 0.6.4
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/CHANGELOG.md +20 -0
- package/dist/basics.d.mts +16 -16
- package/dist/basics.d.ts +16 -16
- package/dist/basics.mjs +3 -3
- package/dist/cli/index.mjs +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +1 -1
- package/dist/internal.d.mts +4 -4
- package/dist/internal.d.ts +4 -4
- package/dist/internal.mjs +7 -7
- package/dist/nuxt/module.mjs +7 -4
- package/dist/nuxt/runtime/GinkoMarkdown.d.mts +11 -0
- package/dist/nuxt/runtime/GinkoMarkdown.mjs +4 -2
- package/dist/nuxt/runtime/composables.mjs +4 -1
- package/dist/nuxt/runtime/server/headers.mjs +2 -2
- package/dist/nuxt/runtime/server/robots.mjs +2 -2
- package/dist/nuxt/runtime/server/sitemap-source.mjs +1 -1
- package/dist/nuxt/runtime/server/sitemap-xml.d.mts +4 -3
- package/dist/nuxt/runtime/server/sitemap-xml.d.ts +4 -3
- package/dist/nuxt/runtime/server/sitemap-xml.mjs +6 -6
- package/dist/nuxt/runtime/server/sitemap.mjs +1 -1
- package/dist/nuxt/runtime/shared.d.mts +3 -0
- package/dist/shared/{ginko.BaFweQcB.d.mts → ginko.B32fU6_I.d.mts} +1 -1
- package/dist/shared/{ginko.WAfoMhv1.mjs → ginko.BsikHfwf.mjs} +1 -1
- package/dist/shared/{ginko.BiDXgjLy.d.ts → ginko.CYJj42Uq.d.ts} +1 -1
- package/dist/shared/{ginko.DCHGkQ7P.mjs → ginko.CvlgoIVE.mjs} +2 -0
- package/dist/shared/{ginko.t-gbwzxh.mjs → ginko.Ds72ycGB.mjs} +1 -1
- package/dist/shared/{ginko.CUcI9Lbz.d.mts → ginko.ONWi7rUd.d.mts} +9 -9
- package/dist/shared/{ginko.DkIc0ZZk.d.mts → ginko._jCtw78j.d.mts} +5 -0
- package/dist/shared/{ginko.CLzVaDi4.d.ts → ginko.aO1CUf2O.d.ts} +5 -0
- package/dist/shared/{ginko.B1-DoOea.mjs → ginko.uQuitouw.mjs} +1 -0
- package/dist/shared/{ginko.0IgV8t8b.d.ts → ginko.ysvhlZqN.d.ts} +9 -9
- package/dist/vue.d.mts +11 -0
- package/dist/vue.d.ts +11 -0
- package/dist/vue.mjs +13 -2
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,25 @@
|
|
|
1
1
|
# @lupinum/ginko
|
|
2
2
|
|
|
3
|
+
## 0.6.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#36](https://github.com/lupinum-dev/ginko/pull/36) [`02628b2`](https://github.com/lupinum-dev/ginko/commit/02628b2b2329bc769d9dfd0c358837afdb4d2af6) Thanks [@Mat4m0](https://github.com/Mat4m0)! - Add `seo.noindex` to the site config: the pages it names leave the sitemap and answer with `X-Robots-Tag: noindex`.
|
|
8
|
+
- Updated dependencies []:
|
|
9
|
+
- @lupinum/ginko-i18n@0.6.4
|
|
10
|
+
|
|
11
|
+
## 0.6.3
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- [#34](https://github.com/lupinum-dev/ginko/pull/34) [`d451a07`](https://github.com/lupinum-dev/ginko/commit/d451a0764427989ad4abfb346c390a28d2955dd6) Thanks [@Mat4m0](https://github.com/Mat4m0)! - Add `idPrefix` to `GinkoMarkdown`: it puts a prefix before every id and `#` link of one body, so a page that shows several bodies has no duplicate ids. The docs changelog uses it with each release's anchor.
|
|
16
|
+
|
|
17
|
+
- [#34](https://github.com/lupinum-dev/ginko/pull/34) [`d451a07`](https://github.com/lupinum-dev/ginko/commit/d451a0764427989ad4abfb346c390a28d2955dd6) Thanks [@Mat4m0](https://github.com/Mat4m0)! - Add `NUXT_PUBLIC_GINKO_NOINDEX=true`, which keeps a whole deployment out of search, its own address included. Use it for demos and for a site that runs on a preview address before its domain switch: robots.txt then disallows everything and every response sends `X-Robots-Tag: noindex`. Site responses now also send `Permissions-Policy: camera=(), geolocation=(), microphone=()`.
|
|
18
|
+
|
|
19
|
+
- [#34](https://github.com/lupinum-dev/ginko/pull/34) [`d451a07`](https://github.com/lupinum-dev/ginko/commit/d451a0764427989ad4abfb346c390a28d2955dd6) Thanks [@Mat4m0](https://github.com/Mat4m0)! - Change the generated share card of a page with an image to JPEG. As PNG such a card weighed 400-700 KB, and WhatsApp drops preview images over about 300 KB. Cards without an image stay PNG.
|
|
20
|
+
- Updated dependencies []:
|
|
21
|
+
- @lupinum/ginko-i18n@0.6.3
|
|
22
|
+
|
|
3
23
|
## 0.6.2
|
|
4
24
|
|
|
5
25
|
### Patch Changes
|
package/dist/basics.d.mts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { B as BasicsOptions, H as HoursContext } from './shared/ginko.
|
|
2
|
-
export { D as DayHours, a as DayRule, E as EventJsonLdInput, b as EventsOptions, c as Exception, d as HolidayClosure, e as HolidayNames, f as HolidaySetting, g as HourPlan, h as HoursData, i as HoursLine, j as HoursLineContext, k as HoursOptions, l as HoursSource, S as SessionJsonLdInput, m as SessionStatus, n as Span, T as Times, o as TodayState, W as Weekday, p as austrianHolidays, q as calendarIn, r as calendarOf, s as closedOnClosure, t as eventJsonLd, u as events, v as germanHolidays, w as holidayOn, x as hourPlans, y as hours, z as hoursLine, A as hoursOn, C as notices, F as noticesOn, G as offerJsonLd, I as planOn, J as sessions, K as sessionsInOrder, L as singaporeHolidays, M as spansOf, N as spansText, O as timesOf, P as todayState, Q as upcomingClosures, R as upcomingHolidayClosures, U as upcomingPlans, V as weekFor, X as weekOf, Y as weekdayOf } from './shared/ginko.
|
|
1
|
+
import { B as BasicsOptions, H as HoursContext } from './shared/ginko.ONWi7rUd.mjs';
|
|
2
|
+
export { D as DayHours, a as DayRule, E as EventJsonLdInput, b as EventsOptions, c as Exception, d as HolidayClosure, e as HolidayNames, f as HolidaySetting, g as HourPlan, h as HoursData, i as HoursLine, j as HoursLineContext, k as HoursOptions, l as HoursSource, S as SessionJsonLdInput, m as SessionStatus, n as Span, T as Times, o as TodayState, W as Weekday, p as austrianHolidays, q as calendarIn, r as calendarOf, s as closedOnClosure, t as eventJsonLd, u as events, v as germanHolidays, w as holidayOn, x as hourPlans, y as hours, z as hoursLine, A as hoursOn, C as notices, F as noticesOn, G as offerJsonLd, I as planOn, J as sessions, K as sessionsInOrder, L as singaporeHolidays, M as spansOf, N as spansText, O as timesOf, P as todayState, Q as upcomingClosures, R as upcomingHolidayClosures, U as upcomingPlans, V as weekFor, X as weekOf, Y as weekdayOf } from './shared/ginko.ONWi7rUd.mjs';
|
|
3
3
|
import { SingleBrick, Locale, CollectionBrick } from './index.mjs';
|
|
4
4
|
import { TextField, LongTextField, SlugField, ChoiceField, DateField, MarkdownField, ImageField, RefField, ListField, FileField } from './internal.mjs';
|
|
5
5
|
export { s as Holiday, t as HolidayCalendar, y as HolidayCalendarName, H as HolidaysOption, u as StoredHolidays, z as calendarOfCountry } from './shared/ginko.DrkUeYFP.mjs';
|
|
6
6
|
import { OrganizationLdInput } from './internal.mjs';
|
|
7
7
|
import { RouteTemplate } from './index.mjs';
|
|
8
|
-
export { w as withoutFiles } from './shared/ginko.
|
|
8
|
+
export { w as withoutFiles } from './shared/ginko._jCtw78j.mjs';
|
|
9
9
|
import '@lupinum/ginko-i18n/core';
|
|
10
10
|
import 'comark';
|
|
11
11
|
import './shared/ginko.6cI8KXZP.mjs';
|
|
@@ -98,7 +98,7 @@ interface LegalOptions<R extends Record<Locale, RouteTemplate> | undefined> exte
|
|
|
98
98
|
route?: R;
|
|
99
99
|
}
|
|
100
100
|
declare function legal<const R extends Record<Locale, RouteTemplate> | undefined = undefined>(o?: LegalOptions<R>): CollectionBrick<{
|
|
101
|
-
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
101
|
+
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
102
102
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
103
103
|
};
|
|
104
104
|
readonly description: LongTextField & {
|
|
@@ -128,7 +128,7 @@ declare function legal<const R extends Record<Locale, RouteTemplate> | undefined
|
|
|
128
128
|
readonly label: Record<string, string>;
|
|
129
129
|
}];
|
|
130
130
|
}, "options">;
|
|
131
|
-
readonly updatedAt: DateField & Omit<DateField, "type" | "label" | "pos" | "
|
|
131
|
+
readonly updatedAt: DateField & Omit<DateField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
132
132
|
default?: string | undefined;
|
|
133
133
|
};
|
|
134
134
|
readonly body: MarkdownField & {
|
|
@@ -213,13 +213,13 @@ interface PostsOptions<R extends Record<Locale, RouteTemplate> | undefined> exte
|
|
|
213
213
|
* Files: `content/posts/<name>[.<locale>].md`.
|
|
214
214
|
*/
|
|
215
215
|
declare function posts<const R extends Record<Locale, RouteTemplate> | undefined = undefined>(o?: PostsOptions<R>): CollectionBrick<{
|
|
216
|
-
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
216
|
+
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
217
217
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
218
218
|
};
|
|
219
219
|
readonly description: LongTextField & {
|
|
220
220
|
readonly optional: true;
|
|
221
221
|
};
|
|
222
|
-
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "
|
|
222
|
+
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
223
223
|
default?: string | undefined;
|
|
224
224
|
};
|
|
225
225
|
readonly authors: RefField & {
|
|
@@ -254,7 +254,7 @@ declare function posts<const R extends Record<Locale, RouteTemplate> | undefined
|
|
|
254
254
|
}, R>;
|
|
255
255
|
/** The people who write posts; a post names them in `authors`. Files: `content/authors/<name>[.<locale>].yml`. */
|
|
256
256
|
declare function authors(o?: BasicsOptions): CollectionBrick<{
|
|
257
|
-
readonly name: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
257
|
+
readonly name: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
258
258
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
259
259
|
};
|
|
260
260
|
readonly role: TextField & {
|
|
@@ -282,7 +282,7 @@ declare function changelog(o?: ChangelogOptions): CollectionBrick<{
|
|
|
282
282
|
readonly max: 40;
|
|
283
283
|
readonly translate: false;
|
|
284
284
|
};
|
|
285
|
-
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "
|
|
285
|
+
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
286
286
|
default?: string | undefined;
|
|
287
287
|
};
|
|
288
288
|
readonly body: MarkdownField & {
|
|
@@ -322,16 +322,16 @@ interface JobsOptions<R extends Record<Locale, RouteTemplate> | undefined> exten
|
|
|
322
322
|
route?: R;
|
|
323
323
|
}
|
|
324
324
|
declare function jobs<const R extends Record<Locale, RouteTemplate> | undefined = undefined>(o?: JobsOptions<R>): CollectionBrick<{
|
|
325
|
-
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
325
|
+
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
326
326
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
327
327
|
};
|
|
328
|
-
readonly description: LongTextField & Omit<LongTextField, "type" | "label" | "pos" | "
|
|
328
|
+
readonly description: LongTextField & Omit<LongTextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
329
329
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
330
330
|
};
|
|
331
331
|
readonly slug: SlugField & {
|
|
332
332
|
readonly from: "title";
|
|
333
333
|
};
|
|
334
|
-
readonly location: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
334
|
+
readonly location: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
335
335
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
336
336
|
};
|
|
337
337
|
readonly employmentType: ChoiceField<"fullTime" | "partTime" | "freelance" | "internship" | "apprenticeship"> & Omit<{
|
|
@@ -409,10 +409,10 @@ interface JobJsonLdInput {
|
|
|
409
409
|
declare function jobJsonLd(j: JobJsonLdInput): Record<string, unknown>;
|
|
410
410
|
|
|
411
411
|
declare function faq(o?: BasicsOptions): CollectionBrick<{
|
|
412
|
-
readonly question: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
412
|
+
readonly question: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
413
413
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
414
414
|
};
|
|
415
|
-
readonly answer: LongTextField & Omit<LongTextField, "type" | "label" | "pos" | "
|
|
415
|
+
readonly answer: LongTextField & Omit<LongTextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
416
416
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
417
417
|
};
|
|
418
418
|
}, undefined>;
|
|
@@ -423,13 +423,13 @@ declare function faqJsonLd(items: readonly {
|
|
|
423
423
|
}[]): Record<string, unknown>;
|
|
424
424
|
|
|
425
425
|
declare function downloads(o?: BasicsOptions): CollectionBrick<{
|
|
426
|
-
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
426
|
+
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
427
427
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
428
428
|
};
|
|
429
429
|
readonly summary: LongTextField & {
|
|
430
430
|
readonly optional: true;
|
|
431
431
|
};
|
|
432
|
-
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "
|
|
432
|
+
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
433
433
|
default?: string | undefined;
|
|
434
434
|
};
|
|
435
435
|
readonly file: FileField & {
|
package/dist/basics.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { B as BasicsOptions, H as HoursContext } from './shared/ginko.
|
|
2
|
-
export { D as DayHours, a as DayRule, E as EventJsonLdInput, b as EventsOptions, c as Exception, d as HolidayClosure, e as HolidayNames, f as HolidaySetting, g as HourPlan, h as HoursData, i as HoursLine, j as HoursLineContext, k as HoursOptions, l as HoursSource, S as SessionJsonLdInput, m as SessionStatus, n as Span, T as Times, o as TodayState, W as Weekday, p as austrianHolidays, q as calendarIn, r as calendarOf, s as closedOnClosure, t as eventJsonLd, u as events, v as germanHolidays, w as holidayOn, x as hourPlans, y as hours, z as hoursLine, A as hoursOn, C as notices, F as noticesOn, G as offerJsonLd, I as planOn, J as sessions, K as sessionsInOrder, L as singaporeHolidays, M as spansOf, N as spansText, O as timesOf, P as todayState, Q as upcomingClosures, R as upcomingHolidayClosures, U as upcomingPlans, V as weekFor, X as weekOf, Y as weekdayOf } from './shared/ginko.
|
|
1
|
+
import { B as BasicsOptions, H as HoursContext } from './shared/ginko.ysvhlZqN.js';
|
|
2
|
+
export { D as DayHours, a as DayRule, E as EventJsonLdInput, b as EventsOptions, c as Exception, d as HolidayClosure, e as HolidayNames, f as HolidaySetting, g as HourPlan, h as HoursData, i as HoursLine, j as HoursLineContext, k as HoursOptions, l as HoursSource, S as SessionJsonLdInput, m as SessionStatus, n as Span, T as Times, o as TodayState, W as Weekday, p as austrianHolidays, q as calendarIn, r as calendarOf, s as closedOnClosure, t as eventJsonLd, u as events, v as germanHolidays, w as holidayOn, x as hourPlans, y as hours, z as hoursLine, A as hoursOn, C as notices, F as noticesOn, G as offerJsonLd, I as planOn, J as sessions, K as sessionsInOrder, L as singaporeHolidays, M as spansOf, N as spansText, O as timesOf, P as todayState, Q as upcomingClosures, R as upcomingHolidayClosures, U as upcomingPlans, V as weekFor, X as weekOf, Y as weekdayOf } from './shared/ginko.ysvhlZqN.js';
|
|
3
3
|
import { SingleBrick, Locale, CollectionBrick } from './index.js';
|
|
4
4
|
import { TextField, LongTextField, SlugField, ChoiceField, DateField, MarkdownField, ImageField, RefField, ListField, FileField } from './internal.js';
|
|
5
5
|
export { s as Holiday, t as HolidayCalendar, y as HolidayCalendarName, H as HolidaysOption, u as StoredHolidays, z as calendarOfCountry } from './shared/ginko.DrkUeYFP.js';
|
|
6
6
|
import { OrganizationLdInput } from './internal.js';
|
|
7
7
|
import { RouteTemplate } from './index.js';
|
|
8
|
-
export { w as withoutFiles } from './shared/ginko.
|
|
8
|
+
export { w as withoutFiles } from './shared/ginko.aO1CUf2O.js';
|
|
9
9
|
import '@lupinum/ginko-i18n/core';
|
|
10
10
|
import 'comark';
|
|
11
11
|
import './shared/ginko.B_pACpVU.js';
|
|
@@ -98,7 +98,7 @@ interface LegalOptions<R extends Record<Locale, RouteTemplate> | undefined> exte
|
|
|
98
98
|
route?: R;
|
|
99
99
|
}
|
|
100
100
|
declare function legal<const R extends Record<Locale, RouteTemplate> | undefined = undefined>(o?: LegalOptions<R>): CollectionBrick<{
|
|
101
|
-
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
101
|
+
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
102
102
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
103
103
|
};
|
|
104
104
|
readonly description: LongTextField & {
|
|
@@ -128,7 +128,7 @@ declare function legal<const R extends Record<Locale, RouteTemplate> | undefined
|
|
|
128
128
|
readonly label: Record<string, string>;
|
|
129
129
|
}];
|
|
130
130
|
}, "options">;
|
|
131
|
-
readonly updatedAt: DateField & Omit<DateField, "type" | "label" | "pos" | "
|
|
131
|
+
readonly updatedAt: DateField & Omit<DateField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
132
132
|
default?: string | undefined;
|
|
133
133
|
};
|
|
134
134
|
readonly body: MarkdownField & {
|
|
@@ -213,13 +213,13 @@ interface PostsOptions<R extends Record<Locale, RouteTemplate> | undefined> exte
|
|
|
213
213
|
* Files: `content/posts/<name>[.<locale>].md`.
|
|
214
214
|
*/
|
|
215
215
|
declare function posts<const R extends Record<Locale, RouteTemplate> | undefined = undefined>(o?: PostsOptions<R>): CollectionBrick<{
|
|
216
|
-
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
216
|
+
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
217
217
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
218
218
|
};
|
|
219
219
|
readonly description: LongTextField & {
|
|
220
220
|
readonly optional: true;
|
|
221
221
|
};
|
|
222
|
-
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "
|
|
222
|
+
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
223
223
|
default?: string | undefined;
|
|
224
224
|
};
|
|
225
225
|
readonly authors: RefField & {
|
|
@@ -254,7 +254,7 @@ declare function posts<const R extends Record<Locale, RouteTemplate> | undefined
|
|
|
254
254
|
}, R>;
|
|
255
255
|
/** The people who write posts; a post names them in `authors`. Files: `content/authors/<name>[.<locale>].yml`. */
|
|
256
256
|
declare function authors(o?: BasicsOptions): CollectionBrick<{
|
|
257
|
-
readonly name: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
257
|
+
readonly name: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
258
258
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
259
259
|
};
|
|
260
260
|
readonly role: TextField & {
|
|
@@ -282,7 +282,7 @@ declare function changelog(o?: ChangelogOptions): CollectionBrick<{
|
|
|
282
282
|
readonly max: 40;
|
|
283
283
|
readonly translate: false;
|
|
284
284
|
};
|
|
285
|
-
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "
|
|
285
|
+
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
286
286
|
default?: string | undefined;
|
|
287
287
|
};
|
|
288
288
|
readonly body: MarkdownField & {
|
|
@@ -322,16 +322,16 @@ interface JobsOptions<R extends Record<Locale, RouteTemplate> | undefined> exten
|
|
|
322
322
|
route?: R;
|
|
323
323
|
}
|
|
324
324
|
declare function jobs<const R extends Record<Locale, RouteTemplate> | undefined = undefined>(o?: JobsOptions<R>): CollectionBrick<{
|
|
325
|
-
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
325
|
+
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
326
326
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
327
327
|
};
|
|
328
|
-
readonly description: LongTextField & Omit<LongTextField, "type" | "label" | "pos" | "
|
|
328
|
+
readonly description: LongTextField & Omit<LongTextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
329
329
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
330
330
|
};
|
|
331
331
|
readonly slug: SlugField & {
|
|
332
332
|
readonly from: "title";
|
|
333
333
|
};
|
|
334
|
-
readonly location: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
334
|
+
readonly location: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
335
335
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
336
336
|
};
|
|
337
337
|
readonly employmentType: ChoiceField<"fullTime" | "partTime" | "freelance" | "internship" | "apprenticeship"> & Omit<{
|
|
@@ -409,10 +409,10 @@ interface JobJsonLdInput {
|
|
|
409
409
|
declare function jobJsonLd(j: JobJsonLdInput): Record<string, unknown>;
|
|
410
410
|
|
|
411
411
|
declare function faq(o?: BasicsOptions): CollectionBrick<{
|
|
412
|
-
readonly question: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
412
|
+
readonly question: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
413
413
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
414
414
|
};
|
|
415
|
-
readonly answer: LongTextField & Omit<LongTextField, "type" | "label" | "pos" | "
|
|
415
|
+
readonly answer: LongTextField & Omit<LongTextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
416
416
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
417
417
|
};
|
|
418
418
|
}, undefined>;
|
|
@@ -423,13 +423,13 @@ declare function faqJsonLd(items: readonly {
|
|
|
423
423
|
}[]): Record<string, unknown>;
|
|
424
424
|
|
|
425
425
|
declare function downloads(o?: BasicsOptions): CollectionBrick<{
|
|
426
|
-
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "
|
|
426
|
+
readonly title: TextField & Omit<TextField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
427
427
|
default?: (string | Partial<Record<string, string>>) | undefined;
|
|
428
428
|
};
|
|
429
429
|
readonly summary: LongTextField & {
|
|
430
430
|
readonly optional: true;
|
|
431
431
|
};
|
|
432
|
-
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "
|
|
432
|
+
readonly date: DateField & Omit<DateField, "type" | "label" | "pos" | "retired" | "default"> & {
|
|
433
433
|
default?: string | undefined;
|
|
434
434
|
};
|
|
435
435
|
readonly file: FileField & {
|
package/dist/basics.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { f, O as studioLabel } from './shared/ginko.BNVC-g9n.mjs';
|
|
2
2
|
import { s as single, c as collection } from './shared/ginko.C-oz8wwI.mjs';
|
|
3
3
|
export { h as withoutFiles } from './shared/ginko.C-oz8wwI.mjs';
|
|
4
|
-
import { o as organizationLd, c as compact, a as articleLd, p as postalAddressLd, d as faqLd } from './shared/ginko.
|
|
5
|
-
import { s as sourceOf, w as weekFor, a as addDays, h as hoursOn, b as weekdayOf, c as spansOf, d as weekdayKeys, e as both } from './shared/ginko.
|
|
6
|
-
export { f as austrianHolidays, g as calendarIn, i as calendarOf, j as closedOnClosure, k as eventJsonLd, l as events, m as germanHolidays, n as holidayOn, o as hourPlans, p as hours, q as hoursLine, r as notices, t as noticesOn, u as offerJsonLd, v as planOn, x as sessions, y as sessionsInOrder, z as singaporeHolidays, A as spansText, B as timesOf, C as todayState, D as upcomingClosures, E as upcomingHolidayClosures, F as upcomingPlans, G as weekOf } from './shared/ginko.
|
|
4
|
+
import { o as organizationLd, c as compact, a as articleLd, p as postalAddressLd, d as faqLd } from './shared/ginko.CvlgoIVE.mjs';
|
|
5
|
+
import { s as sourceOf, w as weekFor, a as addDays, h as hoursOn, b as weekdayOf, c as spansOf, d as weekdayKeys, e as both } from './shared/ginko.BsikHfwf.mjs';
|
|
6
|
+
export { f as austrianHolidays, g as calendarIn, i as calendarOf, j as closedOnClosure, k as eventJsonLd, l as events, m as germanHolidays, n as holidayOn, o as hourPlans, p as hours, q as hoursLine, r as notices, t as noticesOn, u as offerJsonLd, v as planOn, x as sessions, y as sessionsInOrder, z as singaporeHolidays, A as spansText, B as timesOf, C as todayState, D as upcomingClosures, E as upcomingHolidayClosures, F as upcomingPlans, G as weekOf } from './shared/ginko.BsikHfwf.mjs';
|
|
7
7
|
import { l as limitOf } from './shared/ginko.D1PeQ3ds.mjs';
|
|
8
8
|
export { c as calendarOfCountry } from './shared/ginko.D1PeQ3ds.mjs';
|
|
9
9
|
import 'comark';
|
package/dist/cli/index.mjs
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
import { existsSync, realpathSync, readFileSync } from 'node:fs';
|
|
3
3
|
import { join, dirname, resolve } from 'node:path';
|
|
4
4
|
import { pathToFileURL, fileURLToPath } from 'node:url';
|
|
5
|
-
import { C as CliError, i as isObject, d as defaultsFor, f as fieldsChanged, r as releaseData, S as SITE_BUDGET, e as entryBytes, a as fitsBudget, b as diffSchema, l as largestEntryBytes, c as largestFieldBytes, p as parseExport, g as parseReleaseState, h as pathOf, j as defaultDir } from '../shared/ginko.
|
|
5
|
+
import { C as CliError, i as isObject, d as defaultsFor, f as fieldsChanged, r as releaseData, S as SITE_BUDGET, e as entryBytes, a as fitsBudget, b as diffSchema, l as largestEntryBytes, c as largestFieldBytes, p as parseExport, g as parseReleaseState, h as pathOf, j as defaultDir } from '../shared/ginko.Ds72ycGB.mjs';
|
|
6
6
|
import { g as siteForContent } from '../shared/ginko.C-oz8wwI.mjs';
|
|
7
7
|
import { f as fileLinkIssues } from '../shared/ginko.raCzOPYC.mjs';
|
|
8
8
|
import { F as coreMessage, i as isTranslatable, g as effectiveMax } from '../shared/ginko.BNVC-g9n.mjs';
|
|
9
|
-
import { s as serializeSchema, c as checkSite, v as validate, p as platformSchema, a as checkSchema } from '../shared/ginko.
|
|
9
|
+
import { s as serializeSchema, c as checkSite, v as validate, p as platformSchema, a as checkSchema } from '../shared/ginko.uQuitouw.mjs';
|
|
10
10
|
import { c as calendarOfCountry } from '../shared/ginko.D1PeQ3ds.mjs';
|
|
11
11
|
import { mkdir, writeFile, rm, readdir } from 'node:fs/promises';
|
|
12
12
|
import { execFile } from 'node:child_process';
|
package/dist/index.d.mts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { L as LinkConfig, M as Migration, b as MigrationContext, c as Redirect, R as RouteTemplate, S as SiteInput, e as collection, f as defineSite, s as single } from './shared/ginko.
|
|
1
|
+
export { L as LinkConfig, M as Migration, b as MigrationContext, c as Redirect, R as RouteTemplate, S as SiteInput, e as collection, f as defineSite, s as single } from './shared/ginko._jCtw78j.mjs';
|
|
2
2
|
export { B as Brick, d as BrickSource, Q as BrickStatus, Y as ChoiceOption, f as CollectionBrick, e as CollectionStatus, _ as ComponentDef, b as ComponentRegistry, C as Currency, a2 as DataOf, p as Field, F as Fields, a4 as FileValue, a7 as ImageValue, a8 as ItemOf, J as Json, c as Label, L as Locale, ab as MarkdownProfile, ac as MarkdownToc, M as MarkdownTree, ad as MarkdownValue, af as Money, h as SingleBrick, g as SingleStatus, T as Task, al as TocLink, ao as UnknownChoice, V as Visibility, W as WeekInfo, aw as defineComponents, aB as f, aJ as plainText, aM as startOfWeek, aQ as wordsOf } from './shared/ginko.DrkUeYFP.mjs';
|
|
3
3
|
export { N as NavNode, b as SeoImage, e as breadcrumbJsonLd } from './shared/ginko.o1yIKlgj.mjs';
|
|
4
|
-
export { C as Condition, F as FormatMoneyOptions, Q as Query, f as formatMoney, s as safeHref } from './shared/ginko.
|
|
4
|
+
export { C as Condition, F as FormatMoneyOptions, Q as Query, f as formatMoney, s as safeHref } from './shared/ginko.B32fU6_I.mjs';
|
|
5
5
|
import './shared/ginko.6cI8KXZP.mjs';
|
|
6
6
|
import '@lupinum/ginko-i18n/core';
|
|
7
7
|
import 'comark';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { L as LinkConfig, M as Migration, b as MigrationContext, c as Redirect, R as RouteTemplate, S as SiteInput, e as collection, f as defineSite, s as single } from './shared/ginko.
|
|
1
|
+
export { L as LinkConfig, M as Migration, b as MigrationContext, c as Redirect, R as RouteTemplate, S as SiteInput, e as collection, f as defineSite, s as single } from './shared/ginko.aO1CUf2O.js';
|
|
2
2
|
export { B as Brick, d as BrickSource, Q as BrickStatus, Y as ChoiceOption, f as CollectionBrick, e as CollectionStatus, _ as ComponentDef, b as ComponentRegistry, C as Currency, a2 as DataOf, p as Field, F as Fields, a4 as FileValue, a7 as ImageValue, a8 as ItemOf, J as Json, c as Label, L as Locale, ab as MarkdownProfile, ac as MarkdownToc, M as MarkdownTree, ad as MarkdownValue, af as Money, h as SingleBrick, g as SingleStatus, T as Task, al as TocLink, ao as UnknownChoice, V as Visibility, W as WeekInfo, aw as defineComponents, aB as f, aJ as plainText, aM as startOfWeek, aQ as wordsOf } from './shared/ginko.DrkUeYFP.js';
|
|
3
3
|
export { N as NavNode, b as SeoImage, e as breadcrumbJsonLd } from './shared/ginko.CjWB8N7f.js';
|
|
4
|
-
export { C as Condition, F as FormatMoneyOptions, Q as Query, f as formatMoney, s as safeHref } from './shared/ginko.
|
|
4
|
+
export { C as Condition, F as FormatMoneyOptions, Q as Query, f as formatMoney, s as safeHref } from './shared/ginko.CYJj42Uq.js';
|
|
5
5
|
import './shared/ginko.B_pACpVU.js';
|
|
6
6
|
import '@lupinum/ginko-i18n/core';
|
|
7
7
|
import 'comark';
|
package/dist/index.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { c as collection, d as defineSite, s as single, a as startOfWeek } from './shared/ginko.C-oz8wwI.mjs';
|
|
2
2
|
export { d as defineComponents, f, p as plainText, s as safeHref, w as wordsOf } from './shared/ginko.BNVC-g9n.mjs';
|
|
3
|
-
export { b as breadcrumbJsonLd, f as formatMoney } from './shared/ginko.
|
|
3
|
+
export { b as breadcrumbJsonLd, f as formatMoney } from './shared/ginko.CvlgoIVE.mjs';
|
|
4
4
|
import 'comark';
|
|
5
5
|
import 'comark/plugins/alert';
|
|
6
6
|
import 'comark/plugins/attributes';
|
package/dist/internal.d.mts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { C as Currency, L as Locale, c as Label, B as Brick, S as Schema, F as Fields, p as Field, J as Json, P as ParseOptions, E as Issue, x as FileField, G as Described, a as Msg, f as CollectionBrick, M as MarkdownTree, T as Task, W as WeekInfo, b as ComponentRegistry } from './shared/ginko.DrkUeYFP.mjs';
|
|
2
2
|
export { K as ALT_INVISIBLE, O as ALT_MAX, A as AttributeRegistry, o as BooleanField, d as BrickSource, Q as BrickStatus, U as BrickValue, X as CALENDAR_NAMES, r as ChoiceField, Y as ChoiceOption, Z as ChoicesField, e as CollectionStatus, _ as ComponentDef, $ as ComponentSlot, a0 as CoreKey, a1 as DEFAULT_WEEK, a2 as DataOf, D as DateField, k as DateRangeField, a3 as FieldType, a4 as FileValue, a5 as GINKO_COMPONENTS_KEY, a6 as GINKO_TOC_KEY, s as Holiday, t as HolidayCalendar, y as HolidayCalendarName, H as HolidaysOption, I as ImageField, a7 as ImageValue, a8 as ItemOf, v as ListField, a9 as Localized, w as LongTextField, aa as MARKDOWN_PROFILES, m as MarkdownField, ab as MarkdownProfile, ac as MarkdownToc, ad as MarkdownValue, ae as MigrationDescriptor, af as Money, n as MoneyField, N as NumberField, ag as PREFILL_TOKENS, ah as ParsedMarkdown, ai as PrefillToken, q as RefField, R as RetiredRule, aj as STORED_HOLIDAYS, h as SingleBrick, g as SingleStatus, j as SlugField, u as StoredHolidays, ak as TextBlock, i as TextField, l as TimeField, al as TocLink, am as UNSAFE_LINK, an as URL_PROPS, ao as UnknownChoice, ap as ValueOf, V as Visibility, aq as addDays, z as calendarOfCountry, ar as componentProblems, as as componentPropMessage, at as componentPropProblem, au as coreCatalogs, av as coreMessage, aw as defineComponents, ax as describeProfile, ay as effectiveAlt, az as effectiveMax, aA as effectiveProfile, aB as f, aC as firstDayShown, aD as holidaysOf, aE as isPrefillToken, aF as isShown, aG as isTranslatable, aH as msg, aI as parseMarkdown, aJ as plainText, aK as profileCovers, aL as resolveToken, aM as startOfWeek, aN as textBlocks, aO as todayIn, aP as weekInfoOf, aQ as wordsOf, aR as workWeekOf, aS as zoneOffset, aT as zonedDateTime } from './shared/ginko.DrkUeYFP.mjs';
|
|
3
|
-
import { S as SiteInput } from './shared/ginko.
|
|
4
|
-
export { C as CheckLinksOptions, E as ExternalLink, L as LinkConfig, a as LinkIssue, M as Migration, b as MigrationContext, c as Redirect, R as RouteTemplate, W as WithoutFiles, d as checkLinks, e as collection, f as defineSite, g as entryRedirects, h as externalLinks, i as findRedirect, l as linkTargets, m as matchRedirect, r as redirectProblems, j as resolveRouteLinks, s as single, k as siteForContent, w as withoutFiles } from './shared/ginko.
|
|
3
|
+
import { S as SiteInput } from './shared/ginko._jCtw78j.mjs';
|
|
4
|
+
export { C as CheckLinksOptions, E as ExternalLink, L as LinkConfig, a as LinkIssue, M as Migration, b as MigrationContext, c as Redirect, R as RouteTemplate, W as WithoutFiles, d as checkLinks, e as collection, f as defineSite, g as entryRedirects, h as externalLinks, i as findRedirect, l as linkTargets, m as matchRedirect, r as redirectProblems, j as resolveRouteLinks, s as single, k as siteForContent, w as withoutFiles } from './shared/ginko._jCtw78j.mjs';
|
|
5
5
|
import { M as MarkdownTrees, B as Bundle, a as BundleItem } from './shared/ginko.6cI8KXZP.mjs';
|
|
6
6
|
export { b as BUNDLE_FORMAT, c as BundleBrick, d as bundleFits, i as isBundle, k as knownBricks, m as markdownTrees, w as withFileBricks } from './shared/ginko.6cI8KXZP.mjs';
|
|
7
|
-
export { C as Condition, Q as Query, a as QueryOrder, b as QueryResult, c as QuerySchema, f as formatMoney, i as isSafeHref, m as minorDigits, n as neighbors, q as query, s as safeHref } from './shared/ginko.
|
|
7
|
+
export { C as Condition, Q as Query, a as QueryOrder, b as QueryResult, c as QuerySchema, f as formatMoney, i as isSafeHref, m as minorDigits, n as neighbors, q as query, s as safeHref } from './shared/ginko.B32fU6_I.mjs';
|
|
8
8
|
export { A as ArticleLdInput, N as NavNode, a as ORGANIZATION_TYPES, O as OrganizationLdInput, S as SeoHead, b as SeoImage, c as SeoInput, d as articleLd, e as breadcrumbJsonLd, f as breadcrumbs, g as faqLd, i as isPreviewHost, n as navTree, o as organizationLd, r as robotsTxt, s as seoHead, h as siteHeaders, w as websiteLd, j as withCountry } from './shared/ginko.o1yIKlgj.mjs';
|
|
9
|
-
export { g as HourPlan, i as HoursLine, j as HoursLineContext, Z as HoursTexts, _ as NoticeTask, $ as PostalAddressInput, a0 as WeekRow, a1 as eventsBrick, a2 as hourPlansBrick, a3 as hoursBrick, z as hoursLine, a4 as noticesBrick, a5 as offerPrice, a6 as postalAddress, a7 as weekdays } from './shared/ginko.
|
|
9
|
+
export { g as HourPlan, i as HoursLine, j as HoursLineContext, Z as HoursTexts, _ as NoticeTask, $ as PostalAddressInput, a0 as WeekRow, a1 as eventsBrick, a2 as hourPlansBrick, a3 as hoursBrick, z as hoursLine, a4 as noticesBrick, a5 as offerPrice, a6 as postalAddress, a7 as weekdays } from './shared/ginko.ONWi7rUd.mjs';
|
|
10
10
|
import '@lupinum/ginko-i18n/core';
|
|
11
11
|
import 'comark';
|
|
12
12
|
|
package/dist/internal.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { C as Currency, L as Locale, c as Label, B as Brick, S as Schema, F as Fields, p as Field, J as Json, P as ParseOptions, E as Issue, x as FileField, G as Described, a as Msg, f as CollectionBrick, M as MarkdownTree, T as Task, W as WeekInfo, b as ComponentRegistry } from './shared/ginko.DrkUeYFP.js';
|
|
2
2
|
export { K as ALT_INVISIBLE, O as ALT_MAX, A as AttributeRegistry, o as BooleanField, d as BrickSource, Q as BrickStatus, U as BrickValue, X as CALENDAR_NAMES, r as ChoiceField, Y as ChoiceOption, Z as ChoicesField, e as CollectionStatus, _ as ComponentDef, $ as ComponentSlot, a0 as CoreKey, a1 as DEFAULT_WEEK, a2 as DataOf, D as DateField, k as DateRangeField, a3 as FieldType, a4 as FileValue, a5 as GINKO_COMPONENTS_KEY, a6 as GINKO_TOC_KEY, s as Holiday, t as HolidayCalendar, y as HolidayCalendarName, H as HolidaysOption, I as ImageField, a7 as ImageValue, a8 as ItemOf, v as ListField, a9 as Localized, w as LongTextField, aa as MARKDOWN_PROFILES, m as MarkdownField, ab as MarkdownProfile, ac as MarkdownToc, ad as MarkdownValue, ae as MigrationDescriptor, af as Money, n as MoneyField, N as NumberField, ag as PREFILL_TOKENS, ah as ParsedMarkdown, ai as PrefillToken, q as RefField, R as RetiredRule, aj as STORED_HOLIDAYS, h as SingleBrick, g as SingleStatus, j as SlugField, u as StoredHolidays, ak as TextBlock, i as TextField, l as TimeField, al as TocLink, am as UNSAFE_LINK, an as URL_PROPS, ao as UnknownChoice, ap as ValueOf, V as Visibility, aq as addDays, z as calendarOfCountry, ar as componentProblems, as as componentPropMessage, at as componentPropProblem, au as coreCatalogs, av as coreMessage, aw as defineComponents, ax as describeProfile, ay as effectiveAlt, az as effectiveMax, aA as effectiveProfile, aB as f, aC as firstDayShown, aD as holidaysOf, aE as isPrefillToken, aF as isShown, aG as isTranslatable, aH as msg, aI as parseMarkdown, aJ as plainText, aK as profileCovers, aL as resolveToken, aM as startOfWeek, aN as textBlocks, aO as todayIn, aP as weekInfoOf, aQ as wordsOf, aR as workWeekOf, aS as zoneOffset, aT as zonedDateTime } from './shared/ginko.DrkUeYFP.js';
|
|
3
|
-
import { S as SiteInput } from './shared/ginko.
|
|
4
|
-
export { C as CheckLinksOptions, E as ExternalLink, L as LinkConfig, a as LinkIssue, M as Migration, b as MigrationContext, c as Redirect, R as RouteTemplate, W as WithoutFiles, d as checkLinks, e as collection, f as defineSite, g as entryRedirects, h as externalLinks, i as findRedirect, l as linkTargets, m as matchRedirect, r as redirectProblems, j as resolveRouteLinks, s as single, k as siteForContent, w as withoutFiles } from './shared/ginko.
|
|
3
|
+
import { S as SiteInput } from './shared/ginko.aO1CUf2O.js';
|
|
4
|
+
export { C as CheckLinksOptions, E as ExternalLink, L as LinkConfig, a as LinkIssue, M as Migration, b as MigrationContext, c as Redirect, R as RouteTemplate, W as WithoutFiles, d as checkLinks, e as collection, f as defineSite, g as entryRedirects, h as externalLinks, i as findRedirect, l as linkTargets, m as matchRedirect, r as redirectProblems, j as resolveRouteLinks, s as single, k as siteForContent, w as withoutFiles } from './shared/ginko.aO1CUf2O.js';
|
|
5
5
|
import { M as MarkdownTrees, B as Bundle, a as BundleItem } from './shared/ginko.B_pACpVU.js';
|
|
6
6
|
export { b as BUNDLE_FORMAT, c as BundleBrick, d as bundleFits, i as isBundle, k as knownBricks, m as markdownTrees, w as withFileBricks } from './shared/ginko.B_pACpVU.js';
|
|
7
|
-
export { C as Condition, Q as Query, a as QueryOrder, b as QueryResult, c as QuerySchema, f as formatMoney, i as isSafeHref, m as minorDigits, n as neighbors, q as query, s as safeHref } from './shared/ginko.
|
|
7
|
+
export { C as Condition, Q as Query, a as QueryOrder, b as QueryResult, c as QuerySchema, f as formatMoney, i as isSafeHref, m as minorDigits, n as neighbors, q as query, s as safeHref } from './shared/ginko.CYJj42Uq.js';
|
|
8
8
|
export { A as ArticleLdInput, N as NavNode, a as ORGANIZATION_TYPES, O as OrganizationLdInput, S as SeoHead, b as SeoImage, c as SeoInput, d as articleLd, e as breadcrumbJsonLd, f as breadcrumbs, g as faqLd, i as isPreviewHost, n as navTree, o as organizationLd, r as robotsTxt, s as seoHead, h as siteHeaders, w as websiteLd, j as withCountry } from './shared/ginko.CjWB8N7f.js';
|
|
9
|
-
export { g as HourPlan, i as HoursLine, j as HoursLineContext, Z as HoursTexts, _ as NoticeTask, $ as PostalAddressInput, a0 as WeekRow, a1 as eventsBrick, a2 as hourPlansBrick, a3 as hoursBrick, z as hoursLine, a4 as noticesBrick, a5 as offerPrice, a6 as postalAddress, a7 as weekdays } from './shared/ginko.
|
|
9
|
+
export { g as HourPlan, i as HoursLine, j as HoursLineContext, Z as HoursTexts, _ as NoticeTask, $ as PostalAddressInput, a0 as WeekRow, a1 as eventsBrick, a2 as hourPlansBrick, a3 as hoursBrick, z as hoursLine, a4 as noticesBrick, a5 as offerPrice, a6 as postalAddress, a7 as weekdays } from './shared/ginko.ysvhlZqN.js';
|
|
10
10
|
import '@lupinum/ginko-i18n/core';
|
|
11
11
|
import 'comark';
|
|
12
12
|
|
package/dist/internal.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { k as isVisible, v as visibleUntil, m as printOf } from './shared/ginko.
|
|
2
|
-
export { S as SITE_BUDGET, n as applyDefaults, o as blockedSlugs, q as buildBundle, s as byteSize, j as defaultDir, d as defaultsFor, t as deletesExpired, b as diffSchema, e as entryBytes, f as fieldsChanged, a as fitsBudget, l as largestEntryBytes, c as largestFieldBytes, h as pathOf, r as releaseData, u as resolveEntry, w as routeUrls, x as servedBundle, y as sortEntries, z as untranslatedMode, A as urlClashes, B as urlsFor } from './shared/ginko.
|
|
3
|
-
export { H as eventsBrick, I as hourPlansBrick, J as hoursBrick, q as hoursLine, K as noticesBrick, L as offerPrice, M as postalAddress, N as weekdays } from './shared/ginko.
|
|
1
|
+
import { k as isVisible, v as visibleUntil, m as printOf } from './shared/ginko.Ds72ycGB.mjs';
|
|
2
|
+
export { S as SITE_BUDGET, n as applyDefaults, o as blockedSlugs, q as buildBundle, s as byteSize, j as defaultDir, d as defaultsFor, t as deletesExpired, b as diffSchema, e as entryBytes, f as fieldsChanged, a as fitsBudget, l as largestEntryBytes, c as largestFieldBytes, h as pathOf, r as releaseData, u as resolveEntry, w as routeUrls, x as servedBundle, y as sortEntries, z as untranslatedMode, A as urlClashes, B as urlsFor } from './shared/ginko.Ds72ycGB.mjs';
|
|
3
|
+
export { H as eventsBrick, I as hourPlansBrick, J as hoursBrick, q as hoursLine, K as noticesBrick, L as offerPrice, M as postalAddress, N as weekdays } from './shared/ginko.BsikHfwf.mjs';
|
|
4
4
|
import { b as addDays } from './shared/ginko.C-oz8wwI.mjs';
|
|
5
5
|
export { D as DEFAULT_WEEK, c as collection, d as defineSite, f as firstDayShown, r as resolveToken, s as single, g as siteForContent, a as startOfWeek, t as todayIn, e as weekInfoOf, h as withoutFiles, w as workWeekOf, i as zoneOffset, z as zonedDateTime } from './shared/ginko.C-oz8wwI.mjs';
|
|
6
6
|
import { a as parseMarkdown, h as stableJson, u as labelOf, i as isTranslatable, g as effectiveMax, P as describeProfile, y as effectiveProfile } from './shared/ginko.BNVC-g9n.mjs';
|
|
@@ -8,10 +8,10 @@ export { v as ALT_INVISIBLE, A as ALT_MAX, Q as FILE_REF, R as GINKO_COMPONENTS_
|
|
|
8
8
|
import { e as entryTitle$1 } from './shared/ginko.yKMIjJ68.mjs';
|
|
9
9
|
export { B as BUNDLE_FORMAT, b as bundleFits, i as isBundle, k as knownBricks, m as markdownTrees, a as withFileBricks } from './shared/ginko.yKMIjJ68.mjs';
|
|
10
10
|
export { C as CALENDAR_NAMES, S as STORED_HOLIDAYS, U as UPLOAD_TYPES, a as acceptOf, c as calendarOfCountry, f as formatMb, h as holidaysOf, l as limitOf } from './shared/ginko.D1PeQ3ds.mjs';
|
|
11
|
-
import { m as minorDigits } from './shared/ginko.
|
|
12
|
-
export { O as ORGANIZATION_TYPES, a as articleLd, b as breadcrumbJsonLd, d as faqLd, f as formatMoney, i as isPreviewHost, o as organizationLd, r as robotsTxt, s as seoHead, e as siteHeaders, w as websiteLd, g as withCountry } from './shared/ginko.
|
|
13
|
-
import { o as ordered, b as createAsks } from './shared/ginko.
|
|
14
|
-
export { P as PREFILL_TOKENS, d as SCHEMA_LIMITS, e as SHAPE_CODES, f as SLUG_PATTERN, a as checkSchema, c as checkSite, g as duePlan, h as fileProblem, i as grantGroups, j as isDate, k as isHourPlans, l as isPrefillToken, m as isTimeZone, n as liveFrom, q as mainLocale, r as migrationFingerprint, t as plannedWeeks, u as plansThisWeek, p as platformSchema, s as serializeSchema, w as slugBases, x as slugify, y as staleOf, z as uniqueSlug, v as validate, A as weekStartField, C as weeklyTask } from './shared/ginko.
|
|
11
|
+
import { m as minorDigits } from './shared/ginko.CvlgoIVE.mjs';
|
|
12
|
+
export { O as ORGANIZATION_TYPES, a as articleLd, b as breadcrumbJsonLd, d as faqLd, f as formatMoney, i as isPreviewHost, o as organizationLd, r as robotsTxt, s as seoHead, e as siteHeaders, w as websiteLd, g as withCountry } from './shared/ginko.CvlgoIVE.mjs';
|
|
13
|
+
import { o as ordered, b as createAsks } from './shared/ginko.uQuitouw.mjs';
|
|
14
|
+
export { P as PREFILL_TOKENS, d as SCHEMA_LIMITS, e as SHAPE_CODES, f as SLUG_PATTERN, a as checkSchema, c as checkSite, g as duePlan, h as fileProblem, i as grantGroups, j as isDate, k as isHourPlans, l as isPrefillToken, m as isTimeZone, n as liveFrom, q as mainLocale, r as migrationFingerprint, t as plannedWeeks, u as plansThisWeek, p as platformSchema, s as serializeSchema, w as slugBases, x as slugify, y as staleOf, z as uniqueSlug, v as validate, A as weekStartField, C as weeklyTask } from './shared/ginko.uQuitouw.mjs';
|
|
15
15
|
import { renderMarkdown } from 'comark/render';
|
|
16
16
|
export { f as fileMarkdownRef, p as platformMarkdownRef, w as withMarkdownRefs } from './shared/ginko.DIl7l-75.mjs';
|
|
17
17
|
import 'comark';
|
package/dist/nuxt/module.mjs
CHANGED
|
@@ -4,7 +4,7 @@ import { join, relative, resolve, basename } from 'node:path';
|
|
|
4
4
|
import { pathToFileURL } from 'node:url';
|
|
5
5
|
import { f as fileLinkIssues } from '../shared/ginko.raCzOPYC.mjs';
|
|
6
6
|
import { createHash, randomUUID } from 'node:crypto';
|
|
7
|
-
import { c as checkSite, s as serializeSchema } from '../shared/ginko.
|
|
7
|
+
import { c as checkSite, s as serializeSchema } from '../shared/ginko.uQuitouw.mjs';
|
|
8
8
|
import { g as siteForContent } from '../shared/ginko.C-oz8wwI.mjs';
|
|
9
9
|
import { L as redirectProblems, N as entryRedirects, F as coreMessage } from '../shared/ginko.BNVC-g9n.mjs';
|
|
10
10
|
import { w as withMarkdownRefs, f as fileMarkdownRef } from '../shared/ginko.DIl7l-75.mjs';
|
|
@@ -165,8 +165,9 @@ function ginkoVercelConfig(site, token) {
|
|
|
165
165
|
return { ...site, config: { ...site?.config, bypassToken: site?.config?.bypassToken ?? token } };
|
|
166
166
|
}
|
|
167
167
|
const ISR_SECONDS = 60;
|
|
168
|
-
function ginkoRouteRules(site) {
|
|
168
|
+
function ginkoRouteRules(site, noindex = []) {
|
|
169
169
|
const rules = { ...site };
|
|
170
|
+
for (const path of noindex) rules[path] = { ...rules[path], headers: { "x-robots-tag": "noindex", ...rules[path]?.headers } };
|
|
170
171
|
rules["/**"] = { ...rules["/**"], isr: rules["/**"]?.isr ?? { expiration: ISR_SECONDS, allowQuery: [] } };
|
|
171
172
|
rules["/api/**"] = { isr: false, ...rules["/api/**"] };
|
|
172
173
|
for (const path of ["/__ginko", "/__ginko/**"]) {
|
|
@@ -268,7 +269,8 @@ const module$1 = defineNuxtModule({
|
|
|
268
269
|
holidays: schema.holidays ?? "",
|
|
269
270
|
seo: site.seo ?? {},
|
|
270
271
|
agents: site.agents ?? {},
|
|
271
|
-
sources
|
|
272
|
+
sources,
|
|
273
|
+
noindex: false
|
|
272
274
|
} });
|
|
273
275
|
checkI18nOptions(nuxt.options.i18n);
|
|
274
276
|
const i18n = await tryResolveModule("@lupinum/ginko-i18n", import.meta.url);
|
|
@@ -288,7 +290,8 @@ const module$1 = defineNuxtModule({
|
|
|
288
290
|
nuxt.options.runtimeConfig.ginkoRevalidateToken ??= "";
|
|
289
291
|
nuxt.options.nitro.vercel = ginkoVercelConfig(nuxt.options.nitro.vercel, process.env.NUXT_GINKO_REVALIDATE_TOKEN);
|
|
290
292
|
nuxt.options.experimental.payloadExtraction = false;
|
|
291
|
-
|
|
293
|
+
const noindex = (site.seo?.noindex ?? []).flatMap((key) => Object.values(schema.pages[key] ?? {}).filter((path) => path !== void 0));
|
|
294
|
+
nuxt.options.routeRules = ginkoRouteRules(nuxt.options.routeRules ?? {}, noindex);
|
|
292
295
|
const ogImage = await listsNuxtSeo("nuxt-og-image", nuxt);
|
|
293
296
|
const renderer = ogImage ? await ogRenderer(nuxt.options.rootDir) : void 0;
|
|
294
297
|
if (renderer) {
|
|
@@ -14,6 +14,11 @@ export declare const GinkoMarkdown: import("vue").DefineComponent<import("vue").
|
|
|
14
14
|
type: PropType<Record<string, Component | string>>;
|
|
15
15
|
default: () => {};
|
|
16
16
|
};
|
|
17
|
+
/** Puts `idPrefix-` before every id and `#` link of this body, for a page that shows several bodies (a changelog). */
|
|
18
|
+
idPrefix: {
|
|
19
|
+
type: StringConstructor;
|
|
20
|
+
default: string;
|
|
21
|
+
};
|
|
17
22
|
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
18
23
|
[key: string]: any;
|
|
19
24
|
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
@@ -30,7 +35,13 @@ export declare const GinkoMarkdown: import("vue").DefineComponent<import("vue").
|
|
|
30
35
|
type: PropType<Record<string, Component | string>>;
|
|
31
36
|
default: () => {};
|
|
32
37
|
};
|
|
38
|
+
/** Puts `idPrefix-` before every id and `#` link of this body, for a page that shows several bodies (a changelog). */
|
|
39
|
+
idPrefix: {
|
|
40
|
+
type: StringConstructor;
|
|
41
|
+
default: string;
|
|
42
|
+
};
|
|
33
43
|
}>> & Readonly<{}>, {
|
|
34
44
|
value: MarkdownValue | undefined;
|
|
35
45
|
components: Record<string, string | Component>;
|
|
46
|
+
idPrefix: string;
|
|
36
47
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -12,13 +12,15 @@ export const GinkoMarkdown = defineComponent({
|
|
|
12
12
|
* provides under `ginko:components` (e.g. by `@lupinum/ginko-components`), so a tag given here wins.
|
|
13
13
|
* Other tags use a global component of that name (PascalCase), else a plain element.
|
|
14
14
|
*/
|
|
15
|
-
components: { type: Object, default: () => ({}) }
|
|
15
|
+
components: { type: Object, default: () => ({}) },
|
|
16
|
+
/** Puts `idPrefix-` before every id and `#` link of this body, for a page that shows several bodies (a changelog). */
|
|
17
|
+
idPrefix: { type: String, default: "" }
|
|
16
18
|
},
|
|
17
19
|
async setup(props) {
|
|
18
20
|
const provided = inject(GINKO_COMPONENTS_KEY, {});
|
|
19
21
|
let tree;
|
|
20
22
|
provide(GINKO_TOC_KEY, computed(() => tree?.value?.toc ?? null));
|
|
21
23
|
tree = await useGinkoMarkdown(() => props.value);
|
|
22
|
-
return () => h(GinkoMarkdownTree, { value: tree.value, components: { ...provided, ...props.components }, registry: components });
|
|
24
|
+
return () => h(GinkoMarkdownTree, { value: tree.value, components: { ...provided, ...props.components }, registry: components, idPrefix: props.idPrefix });
|
|
23
25
|
}
|
|
24
26
|
});
|
|
@@ -152,7 +152,10 @@ export function useGinkoSeo(input) {
|
|
|
152
152
|
alt: () => {
|
|
153
153
|
const image = toValue(input).image;
|
|
154
154
|
return (typeof image === "object" ? image.alt : void 0) ?? toValue(input).title ?? config.name;
|
|
155
|
-
}
|
|
155
|
+
},
|
|
156
|
+
// A card with a photo is a JPEG: as PNG it weighs 400-700 KB, and WhatsApp drops preview images over about 300 KB.
|
|
157
|
+
// A card of text and colour stays PNG, which keeps it sharp and small.
|
|
158
|
+
extension: cardImage(toValue(input).image) ? "jpeg" : "png"
|
|
156
159
|
});
|
|
157
160
|
}
|
|
158
161
|
const pageLd = () => (toValue(input).jsonLd ?? []).map((node) => withCountry(node, config.country));
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { defineEventHandler, getRequestHost, getRequestURL, useRuntimeConfig } from "nuxt/server";
|
|
2
2
|
import { isPreviewHost, siteHeaders } from "../../../internal.mjs";
|
|
3
3
|
export default defineEventHandler((event) => {
|
|
4
|
-
const { platform, url } = useRuntimeConfig().public.ginko;
|
|
4
|
+
const { platform, url, noindex } = useRuntimeConfig().public.ginko;
|
|
5
5
|
const preview = /^\/__ginko(\/|$)/.test(getRequestURL(event).pathname);
|
|
6
6
|
const origin = platform ? new URL(platform).origin : "";
|
|
7
|
-
const headers = siteHeaders({ preview, platformOrigin: origin, noindex: isPreviewHost(getRequestHost(event), url) });
|
|
7
|
+
const headers = siteHeaders({ preview, platformOrigin: origin, noindex: noindex || isPreviewHost(getRequestHost(event), url) });
|
|
8
8
|
for (const [name, value] of Object.entries(headers)) event.res.headers.set(name, value);
|
|
9
9
|
});
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { defineEventHandler, getRequestHost, useRuntimeConfig } from "nuxt/server";
|
|
2
2
|
import { isPreviewHost, robotsTxt } from "../../../internal.mjs";
|
|
3
3
|
export default defineEventHandler((event) => {
|
|
4
|
-
const { url } = useRuntimeConfig().public.ginko;
|
|
4
|
+
const { url, noindex: always } = useRuntimeConfig().public.ginko;
|
|
5
5
|
event.res.headers.set("content-type", "text/plain; charset=utf-8");
|
|
6
|
-
const noindex = !import.meta.prerender && isPreviewHost(getRequestHost(event), url);
|
|
6
|
+
const noindex = always || !import.meta.prerender && isPreviewHost(getRequestHost(event), url);
|
|
7
7
|
return robotsTxt({ noindex, sitemap: new URL("/sitemap.xml", url).href });
|
|
8
8
|
});
|
|
@@ -10,5 +10,5 @@ export default defineEventHandler(async (event) => {
|
|
|
10
10
|
const main = bundles[config.mainLocale];
|
|
11
11
|
if (!main) throw createError({ statusCode: 503, statusMessage: "Content unavailable", fatal: true });
|
|
12
12
|
event.res.headers.set("x-ginko-rev", `${main.schemaRev}.${main.contentRev}`);
|
|
13
|
-
return sitemapUrls(schema, bundles, todayIn(config.timeZone), locales);
|
|
13
|
+
return sitemapUrls(schema, bundles, todayIn(config.timeZone), locales, config.seo.noindex);
|
|
14
14
|
});
|
|
@@ -17,8 +17,9 @@ export interface SitemapUrl {
|
|
|
17
17
|
/**
|
|
18
18
|
* `bundles` must hold every locale of the site for routed entries; `today` is the site's date
|
|
19
19
|
* (todayIn of its time zone), so the visibility rule matches the pages. `locales` is ginko-i18n's
|
|
20
|
-
* config: hreflang uses its languages and `x-default`, exactly as the page head does.
|
|
20
|
+
* config: hreflang uses its languages and `x-default`, exactly as the page head does. `noindex` names
|
|
21
|
+
* the pages that stay out (`seo.noindex` of the site config).
|
|
21
22
|
*/
|
|
22
|
-
export declare function sitemapUrls(site: Schema, bundles: Partial<Record<Locale, Bundle>>, today: string, locales: Pick<LocaleConfig, 'locales' | 'defaultLocale'
|
|
23
|
+
export declare function sitemapUrls(site: Schema, bundles: Partial<Record<Locale, Bundle>>, today: string, locales: Pick<LocaleConfig, 'locales' | 'defaultLocale'>, noindex?: readonly string[]): SitemapUrl[];
|
|
23
24
|
/** The sitemap document of `sitemapUrls`. */
|
|
24
|
-
export declare function sitemapXml(site: Schema, bundles: Partial<Record<Locale, Bundle>>, today: string, locales: Pick<LocaleConfig, 'locales' | 'defaultLocale'
|
|
25
|
+
export declare function sitemapXml(site: Schema, bundles: Partial<Record<Locale, Bundle>>, today: string, locales: Pick<LocaleConfig, 'locales' | 'defaultLocale'>, noindex?: readonly string[]): string;
|
|
@@ -17,8 +17,9 @@ export interface SitemapUrl {
|
|
|
17
17
|
/**
|
|
18
18
|
* `bundles` must hold every locale of the site for routed entries; `today` is the site's date
|
|
19
19
|
* (todayIn of its time zone), so the visibility rule matches the pages. `locales` is ginko-i18n's
|
|
20
|
-
* config: hreflang uses its languages and `x-default`, exactly as the page head does.
|
|
20
|
+
* config: hreflang uses its languages and `x-default`, exactly as the page head does. `noindex` names
|
|
21
|
+
* the pages that stay out (`seo.noindex` of the site config).
|
|
21
22
|
*/
|
|
22
|
-
export declare function sitemapUrls(site: Schema, bundles: Partial<Record<Locale, Bundle>>, today: string, locales: Pick<LocaleConfig, 'locales' | 'defaultLocale'
|
|
23
|
+
export declare function sitemapUrls(site: Schema, bundles: Partial<Record<Locale, Bundle>>, today: string, locales: Pick<LocaleConfig, 'locales' | 'defaultLocale'>, noindex?: readonly string[]): SitemapUrl[];
|
|
23
24
|
/** The sitemap document of `sitemapUrls`. */
|
|
24
|
-
export declare function sitemapXml(site: Schema, bundles: Partial<Record<Locale, Bundle>>, today: string, locales: Pick<LocaleConfig, 'locales' | 'defaultLocale'
|
|
25
|
+
export declare function sitemapXml(site: Schema, bundles: Partial<Record<Locale, Bundle>>, today: string, locales: Pick<LocaleConfig, 'locales' | 'defaultLocale'>, noindex?: readonly string[]): string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { alternatesOf } from "@lupinum/ginko-i18n/core";
|
|
2
2
|
import { isVisible } from "../../../internal.mjs";
|
|
3
3
|
const MAX_IMAGES = 20;
|
|
4
|
-
export function sitemapUrls(site, bundles, today, locales) {
|
|
4
|
+
export function sitemapUrls(site, bundles, today, locales, noindex = []) {
|
|
5
5
|
const base = site.url.replace(/\/$/, "");
|
|
6
6
|
const seen = /* @__PURE__ */ new Set();
|
|
7
7
|
const urls = [];
|
|
8
|
-
for (const group of [...staticGroups(site, base), ...entryGroups(site, bundles, today, base)]) {
|
|
8
|
+
for (const group of [...staticGroups(site, base, noindex), ...entryGroups(site, bundles, today, base)]) {
|
|
9
9
|
const alternatives = group.alternates ? alternatesOf(group.urls, locales).map((a) => ({ hreflang: a.hreflang, href: a.path })) : [];
|
|
10
10
|
for (const [locale, loc] of Object.entries(group.urls)) {
|
|
11
11
|
if (seen.has(loc)) continue;
|
|
@@ -16,8 +16,8 @@ export function sitemapUrls(site, bundles, today, locales) {
|
|
|
16
16
|
}
|
|
17
17
|
return urls;
|
|
18
18
|
}
|
|
19
|
-
export function sitemapXml(site, bundles, today, locales) {
|
|
20
|
-
const urls = sitemapUrls(site, bundles, today, locales);
|
|
19
|
+
export function sitemapXml(site, bundles, today, locales, noindex = []) {
|
|
20
|
+
const urls = sitemapUrls(site, bundles, today, locales, noindex);
|
|
21
21
|
const element = (url) => [
|
|
22
22
|
` <url><loc>${escapeXml(url.loc)}</loc>`,
|
|
23
23
|
url.lastmod ? `<lastmod>${escapeXml(url.lastmod)}</lastmod>` : "",
|
|
@@ -33,8 +33,8 @@ export function sitemapXml(site, bundles, today, locales) {
|
|
|
33
33
|
"</urlset>"
|
|
34
34
|
].join("\n");
|
|
35
35
|
}
|
|
36
|
-
function staticGroups(site, base) {
|
|
37
|
-
return Object.
|
|
36
|
+
function staticGroups(site, base, noindex) {
|
|
37
|
+
return Object.entries(site.pages).filter(([key]) => !noindex.includes(key)).map(([, paths]) => ({
|
|
38
38
|
urls: Object.fromEntries(Object.entries(paths).map(([locale, path]) => [locale, `${base}${path}`])),
|
|
39
39
|
alternates: Object.keys(paths).length > 1
|
|
40
40
|
}));
|
|
@@ -11,5 +11,5 @@ export default defineEventHandler(async (event) => {
|
|
|
11
11
|
if (!main) throw createError({ statusCode: 503, statusMessage: "Content unavailable", fatal: true });
|
|
12
12
|
event.res.headers.set("content-type", "application/xml; charset=utf-8");
|
|
13
13
|
event.res.headers.set("x-ginko-rev", `${main.schemaRev}.${main.contentRev}`);
|
|
14
|
-
return sitemapXml(schema, bundles, todayIn(config.timeZone), locales);
|
|
14
|
+
return sitemapXml(schema, bundles, todayIn(config.timeZone), locales, config.seo.noindex);
|
|
15
15
|
});
|
|
@@ -20,6 +20,9 @@ export interface GinkoPublicConfig {
|
|
|
20
20
|
platform: boolean;
|
|
21
21
|
files: boolean;
|
|
22
22
|
};
|
|
23
|
+
/** True keeps every host of this deployment out of search, its own address included: a demo, or a site served on a
|
|
24
|
+
* preview address before its domain switch. Set per deployment with NUXT_PUBLIC_GINKO_NOINDEX=true. */
|
|
25
|
+
noindex: boolean;
|
|
23
26
|
}
|
|
24
27
|
/**
|
|
25
28
|
* The page a request may ask Markdown for (docs: 10.seo-und-agenten "Addresses and headers"): `<page>.md` always
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as calendarOfCountry } from './ginko.D1PeQ3ds.mjs';
|
|
2
2
|
import { c as collection, s as single, t as todayIn, z as zonedDateTime } from './ginko.C-oz8wwI.mjs';
|
|
3
3
|
import { f, p as plainText } from './ginko.BNVC-g9n.mjs';
|
|
4
|
-
import { m as minorDigits } from './ginko.
|
|
4
|
+
import { m as minorDigits } from './ginko.CvlgoIVE.mjs';
|
|
5
5
|
|
|
6
6
|
const sourceOf = (o) => o.source ? { source: o.source } : {};
|
|
7
7
|
|
|
@@ -99,6 +99,8 @@ function siteHeaders(input) {
|
|
|
99
99
|
"content-security-policy": input.preview && input.platformOrigin ? `frame-ancestors ${input.platformOrigin}` : `frame-ancestors 'self'`,
|
|
100
100
|
"x-content-type-options": "nosniff",
|
|
101
101
|
"referrer-policy": "strict-origin-when-cross-origin",
|
|
102
|
+
// No site template uses camera, location or microphone; a page that needs one sets its own header.
|
|
103
|
+
"permissions-policy": "camera=(), geolocation=(), microphone=()",
|
|
102
104
|
...input.noindex ? { "x-robots-tag": "noindex" } : {}
|
|
103
105
|
};
|
|
104
106
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { i as isTranslatable, A as ALT_MAX, g as effectiveMax, m as msg, h as stableJson, j as bare, k as sameLabel, l as effectiveMin, n as sha256, r as resolveRouteLinks, o as resolveFileRefs, q as effectiveAlt } from './ginko.BNVC-g9n.mjs';
|
|
2
|
-
import { B as BRICK_KEYS, F as FIELD_KEYS, S as SCHEMA_KEYS } from './ginko.
|
|
2
|
+
import { B as BRICK_KEYS, F as FIELD_KEYS, S as SCHEMA_KEYS } from './ginko.uQuitouw.mjs';
|
|
3
3
|
import { b as addDays } from './ginko.C-oz8wwI.mjs';
|
|
4
4
|
import { B as BUNDLE_FORMAT, w as withMarkdownTrees } from './ginko.yKMIjJ68.mjs';
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as BrickSource, c as Label, f as CollectionBrick, i as TextField, D as DateField, T as Task, M as MarkdownTree, L as Locale, j as SlugField, k as DateRangeField, l as TimeField, m as MarkdownField, n as MoneyField, I as ImageField, o as BooleanField, p as Field, q as RefField, r as ChoiceField, F as Fields, s as Holiday, H as HolidaysOption, t as HolidayCalendar, u as StoredHolidays, v as ListField, h as SingleBrick, N as NumberField } from './ginko.DrkUeYFP.mjs';
|
|
2
|
-
import { R as RouteTemplate } from './ginko.
|
|
2
|
+
import { R as RouteTemplate } from './ginko._jCtw78j.mjs';
|
|
3
3
|
|
|
4
4
|
/** Options every basics factory takes. */
|
|
5
5
|
interface BasicsOptions {
|
|
@@ -708,7 +708,7 @@ declare function hoursBrick(t: HoursTexts, week: readonly WeekRow[], opts: Hours
|
|
|
708
708
|
readonly not: true;
|
|
709
709
|
};
|
|
710
710
|
};
|
|
711
|
-
readonly day: ChoiceField<"fr" | "
|
|
711
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
712
712
|
readonly options: readonly [{
|
|
713
713
|
readonly value: "mo";
|
|
714
714
|
readonly label: {
|
|
@@ -788,7 +788,7 @@ declare function hoursBrick(t: HoursTexts, week: readonly WeekRow[], opts: Hours
|
|
|
788
788
|
readonly not: true;
|
|
789
789
|
};
|
|
790
790
|
};
|
|
791
|
-
readonly day: ChoiceField<"fr" | "
|
|
791
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
792
792
|
readonly options: readonly [{
|
|
793
793
|
readonly value: "mo";
|
|
794
794
|
readonly label: {
|
|
@@ -1010,7 +1010,7 @@ declare function hourPlansBrick(t: HoursTexts, week: readonly WeekRow[], opts: B
|
|
|
1010
1010
|
readonly not: true;
|
|
1011
1011
|
};
|
|
1012
1012
|
};
|
|
1013
|
-
readonly day: ChoiceField<"fr" | "
|
|
1013
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1014
1014
|
readonly options: readonly [{
|
|
1015
1015
|
readonly value: "mo";
|
|
1016
1016
|
readonly label: {
|
|
@@ -1090,7 +1090,7 @@ declare function hourPlansBrick(t: HoursTexts, week: readonly WeekRow[], opts: B
|
|
|
1090
1090
|
readonly not: true;
|
|
1091
1091
|
};
|
|
1092
1092
|
};
|
|
1093
|
-
readonly day: ChoiceField<"fr" | "
|
|
1093
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1094
1094
|
readonly options: readonly [{
|
|
1095
1095
|
readonly value: "mo";
|
|
1096
1096
|
readonly label: {
|
|
@@ -1180,7 +1180,7 @@ declare function hours(opts?: HoursOptions): SingleBrick<{
|
|
|
1180
1180
|
readonly not: true;
|
|
1181
1181
|
};
|
|
1182
1182
|
};
|
|
1183
|
-
readonly day: ChoiceField<"fr" | "
|
|
1183
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1184
1184
|
readonly options: readonly [{
|
|
1185
1185
|
readonly value: "mo";
|
|
1186
1186
|
readonly label: {
|
|
@@ -1260,7 +1260,7 @@ declare function hours(opts?: HoursOptions): SingleBrick<{
|
|
|
1260
1260
|
readonly not: true;
|
|
1261
1261
|
};
|
|
1262
1262
|
};
|
|
1263
|
-
readonly day: ChoiceField<"fr" | "
|
|
1263
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1264
1264
|
readonly options: readonly [{
|
|
1265
1265
|
readonly value: "mo";
|
|
1266
1266
|
readonly label: {
|
|
@@ -1482,7 +1482,7 @@ declare function hourPlans(opts?: BasicsOptions): CollectionBrick<{
|
|
|
1482
1482
|
readonly not: true;
|
|
1483
1483
|
};
|
|
1484
1484
|
};
|
|
1485
|
-
readonly day: ChoiceField<"fr" | "
|
|
1485
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1486
1486
|
readonly options: readonly [{
|
|
1487
1487
|
readonly value: "mo";
|
|
1488
1488
|
readonly label: {
|
|
@@ -1562,7 +1562,7 @@ declare function hourPlans(opts?: BasicsOptions): CollectionBrick<{
|
|
|
1562
1562
|
readonly not: true;
|
|
1563
1563
|
};
|
|
1564
1564
|
};
|
|
1565
|
-
readonly day: ChoiceField<"fr" | "
|
|
1565
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1566
1566
|
readonly options: readonly [{
|
|
1567
1567
|
readonly value: "mo";
|
|
1568
1568
|
readonly label: {
|
|
@@ -153,6 +153,11 @@ interface SiteInput {
|
|
|
153
153
|
logo?: string;
|
|
154
154
|
sameAs?: string[];
|
|
155
155
|
};
|
|
156
|
+
/**
|
|
157
|
+
* Keys of `pages` that stay out of search, such as a thank-you page after a form: they leave the sitemap and
|
|
158
|
+
* answer with `X-Robots-Tag: noindex` in every locale.
|
|
159
|
+
*/
|
|
160
|
+
noindex?: string[];
|
|
156
161
|
};
|
|
157
162
|
/** Text for AI agents (`/llms.txt`, `<page>.md`) and the agent door's default. Only `review` is part of the schema contract. */
|
|
158
163
|
agents?: {
|
|
@@ -153,6 +153,11 @@ interface SiteInput {
|
|
|
153
153
|
logo?: string;
|
|
154
154
|
sameAs?: string[];
|
|
155
155
|
};
|
|
156
|
+
/**
|
|
157
|
+
* Keys of `pages` that stay out of search, such as a thank-you page after a form: they leave the sitemap and
|
|
158
|
+
* answer with `X-Robots-Tag: noindex` in every locale.
|
|
159
|
+
*/
|
|
160
|
+
noindex?: string[];
|
|
156
161
|
};
|
|
157
162
|
/** Text for AI agents (`/llms.txt`, `<page>.md`) and the agent door's default. Only `review` is part of the schema contract. */
|
|
158
163
|
agents?: {
|
|
@@ -536,6 +536,7 @@ function checkSite(site, schema = serializeSchema(site)) {
|
|
|
536
536
|
}
|
|
537
537
|
const color = site.seo?.color;
|
|
538
538
|
if (color !== void 0 && !/^#(?:[\da-f]{3}|[\da-f]{6})$/i.test(color)) problems.push(`seo.color: invalid colour \u201C${String(color)}\u201D (expected \u201C#rrggbb\u201D or \u201C#rgb\u201D).`);
|
|
539
|
+
for (const key of site.seo?.noindex ?? []) if (!Object.hasOwn(site.pages, key)) problems.push(`seo.noindex: \u201C${key}\u201D is not a key of pages.`);
|
|
539
540
|
return [...problems, ...checkSchema(schema)];
|
|
540
541
|
}
|
|
541
542
|
function checkSchema(schema) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { d as BrickSource, c as Label, f as CollectionBrick, i as TextField, D as DateField, T as Task, M as MarkdownTree, L as Locale, j as SlugField, k as DateRangeField, l as TimeField, m as MarkdownField, n as MoneyField, I as ImageField, o as BooleanField, p as Field, q as RefField, r as ChoiceField, F as Fields, s as Holiday, H as HolidaysOption, t as HolidayCalendar, u as StoredHolidays, v as ListField, h as SingleBrick, N as NumberField } from './ginko.DrkUeYFP.js';
|
|
2
|
-
import { R as RouteTemplate } from './ginko.
|
|
2
|
+
import { R as RouteTemplate } from './ginko.aO1CUf2O.js';
|
|
3
3
|
|
|
4
4
|
/** Options every basics factory takes. */
|
|
5
5
|
interface BasicsOptions {
|
|
@@ -708,7 +708,7 @@ declare function hoursBrick(t: HoursTexts, week: readonly WeekRow[], opts: Hours
|
|
|
708
708
|
readonly not: true;
|
|
709
709
|
};
|
|
710
710
|
};
|
|
711
|
-
readonly day: ChoiceField<"fr" | "
|
|
711
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
712
712
|
readonly options: readonly [{
|
|
713
713
|
readonly value: "mo";
|
|
714
714
|
readonly label: {
|
|
@@ -788,7 +788,7 @@ declare function hoursBrick(t: HoursTexts, week: readonly WeekRow[], opts: Hours
|
|
|
788
788
|
readonly not: true;
|
|
789
789
|
};
|
|
790
790
|
};
|
|
791
|
-
readonly day: ChoiceField<"fr" | "
|
|
791
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
792
792
|
readonly options: readonly [{
|
|
793
793
|
readonly value: "mo";
|
|
794
794
|
readonly label: {
|
|
@@ -1010,7 +1010,7 @@ declare function hourPlansBrick(t: HoursTexts, week: readonly WeekRow[], opts: B
|
|
|
1010
1010
|
readonly not: true;
|
|
1011
1011
|
};
|
|
1012
1012
|
};
|
|
1013
|
-
readonly day: ChoiceField<"fr" | "
|
|
1013
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1014
1014
|
readonly options: readonly [{
|
|
1015
1015
|
readonly value: "mo";
|
|
1016
1016
|
readonly label: {
|
|
@@ -1090,7 +1090,7 @@ declare function hourPlansBrick(t: HoursTexts, week: readonly WeekRow[], opts: B
|
|
|
1090
1090
|
readonly not: true;
|
|
1091
1091
|
};
|
|
1092
1092
|
};
|
|
1093
|
-
readonly day: ChoiceField<"fr" | "
|
|
1093
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1094
1094
|
readonly options: readonly [{
|
|
1095
1095
|
readonly value: "mo";
|
|
1096
1096
|
readonly label: {
|
|
@@ -1180,7 +1180,7 @@ declare function hours(opts?: HoursOptions): SingleBrick<{
|
|
|
1180
1180
|
readonly not: true;
|
|
1181
1181
|
};
|
|
1182
1182
|
};
|
|
1183
|
-
readonly day: ChoiceField<"fr" | "
|
|
1183
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1184
1184
|
readonly options: readonly [{
|
|
1185
1185
|
readonly value: "mo";
|
|
1186
1186
|
readonly label: {
|
|
@@ -1260,7 +1260,7 @@ declare function hours(opts?: HoursOptions): SingleBrick<{
|
|
|
1260
1260
|
readonly not: true;
|
|
1261
1261
|
};
|
|
1262
1262
|
};
|
|
1263
|
-
readonly day: ChoiceField<"fr" | "
|
|
1263
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1264
1264
|
readonly options: readonly [{
|
|
1265
1265
|
readonly value: "mo";
|
|
1266
1266
|
readonly label: {
|
|
@@ -1482,7 +1482,7 @@ declare function hourPlans(opts?: BasicsOptions): CollectionBrick<{
|
|
|
1482
1482
|
readonly not: true;
|
|
1483
1483
|
};
|
|
1484
1484
|
};
|
|
1485
|
-
readonly day: ChoiceField<"fr" | "
|
|
1485
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1486
1486
|
readonly options: readonly [{
|
|
1487
1487
|
readonly value: "mo";
|
|
1488
1488
|
readonly label: {
|
|
@@ -1562,7 +1562,7 @@ declare function hourPlans(opts?: BasicsOptions): CollectionBrick<{
|
|
|
1562
1562
|
readonly not: true;
|
|
1563
1563
|
};
|
|
1564
1564
|
};
|
|
1565
|
-
readonly day: ChoiceField<"fr" | "
|
|
1565
|
+
readonly day: ChoiceField<"fr" | "mo" | "tu" | "we" | "th" | "sa" | "su"> & Omit<{
|
|
1566
1566
|
readonly options: readonly [{
|
|
1567
1567
|
readonly value: "mo";
|
|
1568
1568
|
readonly label: {
|
package/dist/vue.d.mts
CHANGED
|
@@ -20,6 +20,11 @@ declare const GinkoMarkdown: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
20
20
|
type: PropType<AttributeRegistry>;
|
|
21
21
|
default: undefined;
|
|
22
22
|
};
|
|
23
|
+
/** Puts `idPrefix-` before every id and `#` link of this body, for a page that shows several bodies. The tree's table of contents keeps the plain ids. */
|
|
24
|
+
idPrefix: {
|
|
25
|
+
type: StringConstructor;
|
|
26
|
+
default: string;
|
|
27
|
+
};
|
|
23
28
|
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
24
29
|
[key: string]: any;
|
|
25
30
|
}> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
@@ -37,10 +42,16 @@ declare const GinkoMarkdown: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
37
42
|
type: PropType<AttributeRegistry>;
|
|
38
43
|
default: undefined;
|
|
39
44
|
};
|
|
45
|
+
/** Puts `idPrefix-` before every id and `#` link of this body, for a page that shows several bodies. The tree's table of contents keeps the plain ids. */
|
|
46
|
+
idPrefix: {
|
|
47
|
+
type: StringConstructor;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
40
50
|
}>> & Readonly<{}>, {
|
|
41
51
|
value: MarkdownTree | null | undefined;
|
|
42
52
|
components: Record<string, string | Component>;
|
|
43
53
|
registry: AttributeRegistry;
|
|
54
|
+
idPrefix: string;
|
|
44
55
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
45
56
|
|
|
46
57
|
export { GinkoMarkdown };
|
package/dist/vue.d.ts
CHANGED
|
@@ -20,6 +20,11 @@ declare const GinkoMarkdown: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
20
20
|
type: PropType<AttributeRegistry>;
|
|
21
21
|
default: undefined;
|
|
22
22
|
};
|
|
23
|
+
/** Puts `idPrefix-` before every id and `#` link of this body, for a page that shows several bodies. The tree's table of contents keeps the plain ids. */
|
|
24
|
+
idPrefix: {
|
|
25
|
+
type: StringConstructor;
|
|
26
|
+
default: string;
|
|
27
|
+
};
|
|
23
28
|
}>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
24
29
|
[key: string]: any;
|
|
25
30
|
}> | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
@@ -37,10 +42,16 @@ declare const GinkoMarkdown: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
37
42
|
type: PropType<AttributeRegistry>;
|
|
38
43
|
default: undefined;
|
|
39
44
|
};
|
|
45
|
+
/** Puts `idPrefix-` before every id and `#` link of this body, for a page that shows several bodies. The tree's table of contents keeps the plain ids. */
|
|
46
|
+
idPrefix: {
|
|
47
|
+
type: StringConstructor;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
40
50
|
}>> & Readonly<{}>, {
|
|
41
51
|
value: MarkdownTree | null | undefined;
|
|
42
52
|
components: Record<string, string | Component>;
|
|
43
53
|
registry: AttributeRegistry;
|
|
54
|
+
idPrefix: string;
|
|
44
55
|
}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
45
56
|
|
|
46
57
|
export { GinkoMarkdown };
|
package/dist/vue.mjs
CHANGED
|
@@ -62,6 +62,14 @@ function dropUnsafe(node, components, registry) {
|
|
|
62
62
|
const safe = Object.fromEntries(Object.entries(props ?? {}).filter(([name, value]) => !attributeProblem(tag ?? "", name, value, registry)));
|
|
63
63
|
return [[tag, safe, ...children.flatMap((child) => dropUnsafe(child, components, registry))]];
|
|
64
64
|
}
|
|
65
|
+
function prefixIds(node, prefix) {
|
|
66
|
+
if (!Array.isArray(node)) return node;
|
|
67
|
+
const [tag, props, ...children] = node;
|
|
68
|
+
const next = { ...props };
|
|
69
|
+
if (typeof next.id === "string" && next.id) next.id = `${prefix}-${next.id}`;
|
|
70
|
+
if (typeof next.href === "string" && next.href.length > 1 && next.href.startsWith("#")) next.href = `#${prefix}-${next.href.slice(1)}`;
|
|
71
|
+
return [tag, next, ...children.map((child) => prefixIds(child, prefix))];
|
|
72
|
+
}
|
|
65
73
|
const GinkoMarkdown = defineComponent({
|
|
66
74
|
name: "GinkoMarkdown",
|
|
67
75
|
props: {
|
|
@@ -69,13 +77,16 @@ const GinkoMarkdown = defineComponent({
|
|
|
69
77
|
/** Tag → component (or another tag name), e.g. `{ callout: Callout }`. Other tags use a global component of that name (PascalCase), else a plain element. */
|
|
70
78
|
components: { type: Object, default: () => ({}) },
|
|
71
79
|
/** The site's component registry (`components` in ginko.config.ts): a component keeps the props it declares there. Without it a component gets only `title`, `lang`, `dir` and `aria-*`. */
|
|
72
|
-
registry: { type: Object, default: void 0 }
|
|
80
|
+
registry: { type: Object, default: void 0 },
|
|
81
|
+
/** Puts `idPrefix-` before every id and `#` link of this body, for a page that shows several bodies. The tree's table of contents keeps the plain ids. */
|
|
82
|
+
idPrefix: { type: String, default: "" }
|
|
73
83
|
},
|
|
74
84
|
setup(props) {
|
|
75
85
|
return () => {
|
|
76
86
|
if (!props.value) return null;
|
|
77
87
|
const components = { ...sourceOnly, ...props.components };
|
|
78
|
-
const
|
|
88
|
+
const safe = props.value.nodes.flatMap((node) => dropUnsafe(node, components, props.registry)).map(labelCheckboxes);
|
|
89
|
+
const nodes = props.idPrefix ? safe.map((node) => prefixIds(node, props.idPrefix)) : safe;
|
|
79
90
|
return h(MarkdownDocument, { value: { nodes }, components });
|
|
80
91
|
};
|
|
81
92
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lupinum/ginko",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"description": "Ginko: a typed, file-based content model for Nuxt sites (core, CLI and Nuxt module).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Lupinum OG <info@lupinum.com> (https://lupinum.com)",
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
},
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@comark/vue": "0.7.0",
|
|
69
|
-
"@lupinum/ginko-i18n": "^0.6.
|
|
69
|
+
"@lupinum/ginko-i18n": "^0.6.4",
|
|
70
70
|
"@nuxt/kit": "^4.6.0",
|
|
71
71
|
"@zbsearch/stemmers": "4.0.1",
|
|
72
72
|
"comark": "0.7.0",
|
|
73
73
|
"minisearch": "7.2.0"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
|
-
"@lupinum/ginko-content": "^0.6.
|
|
76
|
+
"@lupinum/ginko-content": "^0.6.4",
|
|
77
77
|
"@vue/test-utils": "2.5.1",
|
|
78
78
|
"happy-dom": "20.14.5",
|
|
79
79
|
"nuxt": "4.6.0",
|