@jjlmoya/utils-audiovisual 1.6.0 → 1.8.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.
- package/package.json +59 -58
- package/src/category/i18n/de.ts +198 -0
- package/src/category/i18n/fr.ts +1 -1
- package/src/category/i18n/id.ts +198 -0
- package/src/category/i18n/it.ts +198 -0
- package/src/category/i18n/ja.ts +198 -0
- package/src/category/i18n/ko.ts +198 -0
- package/src/category/i18n/nl.ts +198 -0
- package/src/category/i18n/pl.ts +198 -0
- package/src/category/i18n/pt.ts +198 -0
- package/src/category/i18n/ru.ts +198 -0
- package/src/category/i18n/sv.ts +198 -0
- package/src/category/i18n/tr.ts +198 -0
- package/src/category/i18n/zh.ts +198 -0
- package/src/category/index.ts +31 -3
- package/src/tests/i18n_coverage.test.ts +36 -0
- package/src/tests/schemas_fulfillment.test.ts +23 -0
- package/src/tests/title_quality.test.ts +55 -0
- package/src/tool/chromaticLens/i18n/de.ts +246 -0
- package/src/tool/chromaticLens/i18n/en.ts +1 -1
- package/src/tool/chromaticLens/i18n/es.ts +1 -1
- package/src/tool/chromaticLens/i18n/fr.ts +1 -1
- package/src/tool/chromaticLens/i18n/id.ts +246 -0
- package/src/tool/chromaticLens/i18n/it.ts +246 -0
- package/src/tool/chromaticLens/i18n/ja.ts +246 -0
- package/src/tool/chromaticLens/i18n/ko.ts +246 -0
- package/src/tool/chromaticLens/i18n/nl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pl.ts +246 -0
- package/src/tool/chromaticLens/i18n/pt.ts +246 -0
- package/src/tool/chromaticLens/i18n/ru.ts +246 -0
- package/src/tool/chromaticLens/i18n/sv.ts +246 -0
- package/src/tool/chromaticLens/i18n/tr.ts +246 -0
- package/src/tool/chromaticLens/i18n/zh.ts +246 -0
- package/src/tool/chromaticLens/index.ts +15 -7
- package/src/tool/collageMaker/i18n/de.ts +233 -0
- package/src/tool/collageMaker/i18n/en.ts +1 -1
- package/src/tool/collageMaker/i18n/es.ts +1 -1
- package/src/tool/collageMaker/i18n/fr.ts +1 -1
- package/src/tool/collageMaker/i18n/id.ts +233 -0
- package/src/tool/collageMaker/i18n/it.ts +233 -0
- package/src/tool/collageMaker/i18n/ja.ts +233 -0
- package/src/tool/collageMaker/i18n/ko.ts +233 -0
- package/src/tool/collageMaker/i18n/nl.ts +233 -0
- package/src/tool/collageMaker/i18n/pl.ts +233 -0
- package/src/tool/collageMaker/i18n/pt.ts +233 -0
- package/src/tool/collageMaker/i18n/ru.ts +233 -0
- package/src/tool/collageMaker/i18n/sv.ts +233 -0
- package/src/tool/collageMaker/i18n/tr.ts +233 -0
- package/src/tool/collageMaker/i18n/zh.ts +233 -0
- package/src/tool/collageMaker/index.ts +15 -6
- package/src/tool/exifCleaner/i18n/de.ts +277 -0
- package/src/tool/exifCleaner/i18n/en.ts +2 -2
- package/src/tool/exifCleaner/i18n/es.ts +2 -2
- package/src/tool/exifCleaner/i18n/fr.ts +4 -4
- package/src/tool/exifCleaner/i18n/id.ts +277 -0
- package/src/tool/exifCleaner/i18n/it.ts +277 -0
- package/src/tool/exifCleaner/i18n/ja.ts +277 -0
- package/src/tool/exifCleaner/i18n/ko.ts +277 -0
- package/src/tool/exifCleaner/i18n/nl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pl.ts +277 -0
- package/src/tool/exifCleaner/i18n/pt.ts +277 -0
- package/src/tool/exifCleaner/i18n/ru.ts +277 -0
- package/src/tool/exifCleaner/i18n/sv.ts +277 -0
- package/src/tool/exifCleaner/i18n/tr.ts +277 -0
- package/src/tool/exifCleaner/i18n/zh.ts +277 -0
- package/src/tool/exifCleaner/index.ts +16 -8
- package/src/tool/imageCompressor/i18n/de.ts +242 -0
- package/src/tool/imageCompressor/i18n/en.ts +2 -2
- package/src/tool/imageCompressor/i18n/es.ts +2 -2
- package/src/tool/imageCompressor/i18n/id.ts +242 -0
- package/src/tool/imageCompressor/i18n/it.ts +242 -0
- package/src/tool/imageCompressor/i18n/ja.ts +242 -0
- package/src/tool/imageCompressor/i18n/ko.ts +242 -0
- package/src/tool/imageCompressor/i18n/nl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pl.ts +242 -0
- package/src/tool/imageCompressor/i18n/pt.ts +242 -0
- package/src/tool/imageCompressor/i18n/ru.ts +242 -0
- package/src/tool/imageCompressor/i18n/sv.ts +242 -0
- package/src/tool/imageCompressor/i18n/tr.ts +242 -0
- package/src/tool/imageCompressor/i18n/zh.ts +244 -0
- package/src/tool/imageCompressor/index.ts +15 -7
- package/src/tool/printQualityCalculator/i18n/de.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/en.ts +2 -2
- package/src/tool/printQualityCalculator/i18n/es.ts +3 -3
- package/src/tool/printQualityCalculator/i18n/fr.ts +3 -3
- package/src/tool/printQualityCalculator/i18n/id.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/it.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ja.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ko.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/nl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pl.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/pt.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/ru.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/sv.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/tr.ts +261 -0
- package/src/tool/printQualityCalculator/i18n/zh.ts +261 -0
- package/src/tool/printQualityCalculator/index.ts +15 -7
- package/src/tool/privacyBlur/i18n/de.ts +238 -0
- package/src/tool/privacyBlur/i18n/en.ts +1 -1
- package/src/tool/privacyBlur/i18n/es.ts +1 -1
- package/src/tool/privacyBlur/i18n/fr.ts +1 -1
- package/src/tool/privacyBlur/i18n/id.ts +238 -0
- package/src/tool/privacyBlur/i18n/it.ts +238 -0
- package/src/tool/privacyBlur/i18n/ja.ts +238 -0
- package/src/tool/privacyBlur/i18n/ko.ts +238 -0
- package/src/tool/privacyBlur/i18n/nl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pl.ts +238 -0
- package/src/tool/privacyBlur/i18n/pt.ts +238 -0
- package/src/tool/privacyBlur/i18n/ru.ts +238 -0
- package/src/tool/privacyBlur/i18n/sv.ts +238 -0
- package/src/tool/privacyBlur/i18n/tr.ts +238 -0
- package/src/tool/privacyBlur/i18n/zh.ts +238 -0
- package/src/tool/privacyBlur/index.ts +15 -7
- package/src/tool/subtitleSync/i18n/de.ts +241 -0
- package/src/tool/subtitleSync/i18n/en.ts +1 -1
- package/src/tool/subtitleSync/i18n/es.ts +1 -1
- package/src/tool/subtitleSync/i18n/fr.ts +8 -8
- package/src/tool/subtitleSync/i18n/id.ts +241 -0
- package/src/tool/subtitleSync/i18n/it.ts +241 -0
- package/src/tool/subtitleSync/i18n/ja.ts +241 -0
- package/src/tool/subtitleSync/i18n/ko.ts +241 -0
- package/src/tool/subtitleSync/i18n/nl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pl.ts +241 -0
- package/src/tool/subtitleSync/i18n/pt.ts +241 -0
- package/src/tool/subtitleSync/i18n/ru.ts +241 -0
- package/src/tool/subtitleSync/i18n/sv.ts +241 -0
- package/src/tool/subtitleSync/i18n/tr.ts +241 -0
- package/src/tool/subtitleSync/i18n/zh.ts +241 -0
- package/src/tool/subtitleSync/index.ts +15 -7
- package/src/tool/timelapseCalculator/i18n/de.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/fr.ts +2 -2
- package/src/tool/timelapseCalculator/i18n/id.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/it.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ja.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ko.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/nl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pl.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/pt.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/ru.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/sv.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/tr.ts +169 -0
- package/src/tool/timelapseCalculator/i18n/zh.ts +169 -0
- package/src/tool/timelapseCalculator/index.ts +16 -8
- package/src/tool/tvDistance/i18n/de.ts +223 -0
- package/src/tool/tvDistance/i18n/en.ts +1 -1
- package/src/tool/tvDistance/i18n/es.ts +1 -1
- package/src/tool/tvDistance/i18n/fr.ts +1 -1
- package/src/tool/tvDistance/i18n/id.ts +223 -0
- package/src/tool/tvDistance/i18n/it.ts +223 -0
- package/src/tool/tvDistance/i18n/ja.ts +223 -0
- package/src/tool/tvDistance/i18n/ko.ts +223 -0
- package/src/tool/tvDistance/i18n/nl.ts +223 -0
- package/src/tool/tvDistance/i18n/pl.ts +223 -0
- package/src/tool/tvDistance/i18n/pt.ts +223 -0
- package/src/tool/tvDistance/i18n/ru.ts +223 -0
- package/src/tool/tvDistance/i18n/sv.ts +223 -0
- package/src/tool/tvDistance/i18n/tr.ts +223 -0
- package/src/tool/tvDistance/i18n/zh.ts +223 -0
- package/src/tool/tvDistance/index.ts +15 -7
- package/src/tool/videoFrameExtractor/i18n/de.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/en.ts +1 -1
- package/src/tool/videoFrameExtractor/i18n/es.ts +1 -1
- package/src/tool/videoFrameExtractor/i18n/fr.ts +1 -1
- package/src/tool/videoFrameExtractor/i18n/id.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/it.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ja.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ko.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/nl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pl.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/pt.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/ru.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/sv.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/tr.ts +235 -0
- package/src/tool/videoFrameExtractor/i18n/zh.ts +235 -0
- package/src/tool/videoFrameExtractor/index.ts +16 -8
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ChromaticLensUI, ChromaticLensLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'chromatic-lens-kleurenpalet-extractie-online';
|
|
5
|
+
const title = 'Chromatic Lens: Online Kleurenpalet Extractie';
|
|
6
|
+
const description = 'Extraheer gratis professionele kleurenpaletten uit elke afbeelding. Identificeer dominante kleuren in uw foto\'s met behulp van mathematische algoritmen.';
|
|
7
|
+
|
|
8
|
+
const ui: ChromaticLensUI = {
|
|
9
|
+
dropTitle: "Kleuren Analyseren",
|
|
10
|
+
dropSubtitle: "Sleep een afbeelding om het chromatische DNA te extraheren.",
|
|
11
|
+
processingLabel: "Palet extraheren...",
|
|
12
|
+
paletteTitle: "Geëxtraheerd Palet",
|
|
13
|
+
copyLabel: "HEX Kopiëren",
|
|
14
|
+
copiedLabel: "Gekopieerd!",
|
|
15
|
+
colorCountLabel: "Aantal kleuren",
|
|
16
|
+
changeImage: "Afbeelding wijzigen",
|
|
17
|
+
faqTitle: "Veelgestelde vragen over kleurextractie",
|
|
18
|
+
bibliographyTitle: "Hulpmiddelen en technische documentatie"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: ChromaticLensLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: "Hoe werkt kleurextractie?",
|
|
24
|
+
answer: "We gebruiken het 'Median Cut' algoritme, dat afbeeldingspixels groepeert op basis van hun nabijheid in de RGB-kleurruimte om de meest representatieve tonen te vinden.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: "Kan ik kleuren naar mijn ontwerpeditor kopiëren?",
|
|
28
|
+
answer: "Ja, door op elke kleur te klikken, wordt de HEX-code automatisch naar uw klembord gekopieerd, klaar om in Photoshop, Figma of CSS te worden geplakt.",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
question: "Welke soorten afbeeldingen kan ik analyseren?",
|
|
32
|
+
answer: "Elk JPG-, PNG- of WebP-bestand. De verwerking is lokaal, dus grote afbeeldingen worden snel geanalyseerd zonder netwerkdata te verbruiken.",
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
const howTo: ChromaticLensLocaleContent['howTo'] = [
|
|
37
|
+
{
|
|
38
|
+
name: "Upload de afbeelding",
|
|
39
|
+
text: "Upload de foto waaruit u chromatische inspiratie wilt extraheren.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Pas precisie aan",
|
|
43
|
+
text: "Selecteer hoeveel dominante kleuren u wilt dat de tool identificeert (van 3 tot 12).",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Analyseer het resultaat",
|
|
47
|
+
text: "Het palet verschijnt onmiddellijk met de bijbehorende hexadecimale codes.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Kopieer en gebruik",
|
|
51
|
+
text: "Klik op de tonen om ze op te slaan en toe te passen in uw ontwerpproject.",
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const bibliography: ChromaticLensLocaleContent['bibliography'] = [
|
|
56
|
+
{
|
|
57
|
+
name: "Median Cut Algorithm - Wikipedia",
|
|
58
|
+
url: "https://en.wikipedia.org/wiki/Median_cut",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "Kleurentheorie voor Ontwerpers",
|
|
62
|
+
url: "https://www.smashingmagazine.com/2010/01/color-theory-for-designers-part-1-the-meaning-of-color/",
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const seo: ChromaticLensLocaleContent['seo'] = [
|
|
67
|
+
{
|
|
68
|
+
type: 'summary',
|
|
69
|
+
title: 'Intelligente Kleurenpalet Extractie',
|
|
70
|
+
items: [
|
|
71
|
+
'Professioneel Median Cut algoritme voor kleuranalyse',
|
|
72
|
+
'Extraheer 3-12 dominante kleuren uit elke afbeelding',
|
|
73
|
+
'HEX-codes direct kopieerbaar naar het klembord',
|
|
74
|
+
'100% lokale verwerking - ideaal voor creatievelingen'
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{ type: 'title', text: 'Kleurenpalet Extractie: Wetenschap en Ontwerp', level: 2 },
|
|
78
|
+
{ type: 'paragraph', html: 'Heeft u zich ooit afgevraagd waarom een filmfoto zo harmonieus aanvoelt? Dat is geen toeval; het is kleurentheorie in actie. Chromatic Lens stelt u in staat om die harmonie direct uit de pixel te extraheren en te transformeren naar HEX-codes die bruikbaar zijn in uw ontwerpprojecten.' },
|
|
79
|
+
|
|
80
|
+
{ type: 'stats', items: [
|
|
81
|
+
{ value: 'Instant', label: 'Kleuranalyse', icon: 'mdi:lightning-bolt' },
|
|
82
|
+
{ value: '100%', label: 'Lokale Privacy', icon: 'mdi:lock' },
|
|
83
|
+
{ value: 'RGB', label: 'Precieze Kleurruimte', icon: 'mdi:palette' }
|
|
84
|
+
], columns: 3 },
|
|
85
|
+
|
|
86
|
+
{ type: 'title', text: 'Het Median Cut Algoritme Uitgelegd', level: 3 },
|
|
87
|
+
{ type: 'paragraph', html: 'Intelligente paletextractie is niet een eenvoudige willekeurige steekproef van pixels. Het maakt gebruik van het Median Cut algoritme, een recursieve partitioneringstechniek die een getrouwe weergave garandeert:' },
|
|
88
|
+
{ type: 'list', items: [
|
|
89
|
+
'<strong>Recursieve Verdeling:</strong> De RGB \"kleurenkubus\" van de afbeelding wordt recursief verdeeld in kleinere boxen.',
|
|
90
|
+
'<strong>Volume Balans:</strong> Elke partitie probeert pixels uit dezelfde kleurruimte met vergelijkbare volumes te groeperen.',
|
|
91
|
+
'<strong>Gewogen Gemiddelde:</strong> de resulterende kleur van elke box is het gemiddelde van alle pixels die deze bevat.',
|
|
92
|
+
'<strong>Getrouwe Weergave:</strong> De dominante kleuren weerspiegelen de echte visuele sfeer van de afbeelding, niet slechts een simpele steekproef.'
|
|
93
|
+
], icon: 'mdi:check' },
|
|
94
|
+
|
|
95
|
+
{ type: 'card', title: 'Creatieve Workflow', html: 'Ideaal voor webontwikkelaars, UX/UI-ontwerpers, digitale kunstenaars en creatievelingen die onmiddellijk de visuele essentie van een foto, film of visuele referentie willen vastleggen om toe te passen in hun interfaces, illustraties of merkpaletten.' },
|
|
96
|
+
|
|
97
|
+
{ type: 'title', text: 'Use Cases in Digitaal Ontwerp', level: 3 },
|
|
98
|
+
{ type: 'comparative', items: [
|
|
99
|
+
{
|
|
100
|
+
title: 'UX/UI Ontwerpers',
|
|
101
|
+
description: 'Extraheer paletten uit hero images om samenhangende interfaces te creëren',
|
|
102
|
+
icon: 'mdi:palette',
|
|
103
|
+
points: [
|
|
104
|
+
'Harmonieuze achtergrondkleuren',
|
|
105
|
+
'Knoppen en secundaire elementen',
|
|
106
|
+
'Automatisch berekend contrast'
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: 'Webontwikkelaars',
|
|
111
|
+
description: 'Maak CSS-stylesheets direct van visuele referenties',
|
|
112
|
+
icon: 'mdi:code-braces',
|
|
113
|
+
points: [
|
|
114
|
+
'Kopieer HEX direct naar CSS',
|
|
115
|
+
'Kleurvariabelen in SCSS/CSS',
|
|
116
|
+
'Samenhangende thema\'s zonder voorafgaand ontwerp'
|
|
117
|
+
],
|
|
118
|
+
highlight: true
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
title: 'Digitale Kunstenaars en Illustratoren',
|
|
122
|
+
description: 'Leg chromatische referenties vast van films, natuur of kunst',
|
|
123
|
+
icon: 'mdi:brush',
|
|
124
|
+
points: [
|
|
125
|
+
'Referentiepaletten van meesterwerken',
|
|
126
|
+
'Cinematografische kleurstudies',
|
|
127
|
+
'Onmiddellijke visuele inspiratie'
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
title: 'Branding Specialisten',
|
|
132
|
+
description: 'Ontwikkel visuele identiteiten op basis van gidsfoto\'s',
|
|
133
|
+
icon: 'mdi:tag-multiple',
|
|
134
|
+
points: [
|
|
135
|
+
'Extraheer merkkleuren uit afbeeldingen',
|
|
136
|
+
'Maak professionele chromatische gidsen',
|
|
137
|
+
'Zorg voor visuele consistentie'
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
], columns: 2 },
|
|
141
|
+
|
|
142
|
+
{ type: 'title', text: 'Toegepaste Kleurentheorie', level: 3 },
|
|
143
|
+
{ type: 'table', headers: ['Kleurconcept', 'Definitie', 'Praktische Toepassing'], rows: [
|
|
144
|
+
['Chromatische Harmonie', 'Kleurcombinatie die visueel in balans is', 'Samenhangende visuele identiteit in UI'],
|
|
145
|
+
['Contrast', 'Verschil in helderheid tussen kleuren', 'Leesbaarheid en visuele hiërarchie'],
|
|
146
|
+
['Verzadiging', 'Kleurintensiteit van een toon', 'Professionalisme (laag) vs Energie (hoog)'],
|
|
147
|
+
['Kleurtemperatuur', 'Warme kleuren (rood) vs koele kleuren (blauw)', 'Emotionele psychologie van ontwerp'],
|
|
148
|
+
['Monochromatisch Palet', 'Variaties van een enkele toon', 'Elegantie en minimalisme']
|
|
149
|
+
] },
|
|
150
|
+
|
|
151
|
+
{ type: 'proscons', items: [
|
|
152
|
+
{
|
|
153
|
+
pro: 'Mathematische precisie bij extractie - geen geschatte visuele selectie',
|
|
154
|
+
con: 'Nauwelijks zichtbare kleuren kunnen worden opgenomen als ze veel pixels hebben'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Direct kopiëren naar klembord - perfecte integratie met workflow',
|
|
158
|
+
con: 'Heeft een moderne browser nodig die compatibel is met Canvas API'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Totale privacy - 100% lokale analyse zonder gegevensverzending',
|
|
162
|
+
con: 'Geen geschiedenis van eerdere analyses opgeslagen'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
pro: 'Compatibel met elk digitaal afbeeldingsformaat',
|
|
166
|
+
con: 'Uiteindelijke kleuren zijn afhankelijk van compressie en kwaliteit van de afbeelding'
|
|
167
|
+
}
|
|
168
|
+
], proTitle: 'Voordelen', conTitle: 'Beperkingen' },
|
|
169
|
+
|
|
170
|
+
{ type: 'diagnostic', variant: 'success', title: 'Realistische Kleurweergave', icon: 'mdi:check-circle-outline', badge: 'Geavanceerd Algoritme', html: 'In tegenstelling tot tools die simpelweg willekeurige pixels samplen, maakt ons systeem gebruik van het Median Cut algoritme dat de volledige pixelaantal van elke toon weegt, waardoor het resulterende palet getrouw de visuele sfeer en kleurpsychologie van de originele afbeelding weerspiegelt.' },
|
|
171
|
+
|
|
172
|
+
{ type: 'glossary', items: [
|
|
173
|
+
{
|
|
174
|
+
term: 'Median Cut',
|
|
175
|
+
definition: 'Kleurkwantiseringsalgoritme dat de RGB-ruimte recursief verdeelt in boxen, wat zorgt voor een uniforme distributie. Historisch gebruikt in GIF en geïndexeerde kleurtechnologie.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'RGB Kleurruimte',
|
|
179
|
+
definition: 'Kleurenmodel gebaseerd op rood, groen en blauw. Elke kleur wordt weergegeven als een combinatie van deze drie waarden (0-255). Standaard op digitale schermen en web.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'HEX-code',
|
|
183
|
+
definition: '6-cijferige hexadecimale notatie (#RRGGBB) die kleur op het web vertegenwoordigt: #FF0000 (rood), #00FF00 (groen), #0000FF (blauw). Universeel in CSS, Figma en Adobe.'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Kleurverzadiging',
|
|
187
|
+
definition: 'Intensiteit of zuiverheid van kleur. Hoge verzadiging = levendige kleur; lage verzadiging = grijsachtige kleur. Beïnvloedt de emotionele perceptie van het ontwerp.'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
term: 'Chromatische Harmonie',
|
|
191
|
+
definition: 'Selectie en combinatie van kleuren die resulteert in een visueel aantrekkelijk resultaat. Het kan monochromatisch, complementair, analoog of triadisch zijn.'
|
|
192
|
+
}
|
|
193
|
+
] },
|
|
194
|
+
|
|
195
|
+
{ type: 'message', title: 'Professionele Chromatische Analyse', ariaLabel: 'Technische informatie over kleuranalyse', html: 'Chromatic Lens transformeert handmatige visuele analyse in algoritmische precisie. Het extraheert niet alleen kleuren: het legt de emotionele en visuele essentie van elke afbeelding vast en plaatst deze direct op uw klembord als kant-en-klare HEX-codes. Totale privacy, geen limieten op analysevolume.' },
|
|
196
|
+
|
|
197
|
+
{ type: 'title', text: 'Ontwerp vanuit Visuele Inspiratie', level: 3 },
|
|
198
|
+
{ type: 'paragraph', html: 'Het beste kleurenpalet is degene die de visuele intentie van uw referentie vastlegt. Chromatic Lens automatiseert wat voorheen een handmatig proces was: observeren, analyseren, noteren. Sleep nu gewoon een afbeelding en krijg binnen enkele seconden professionele HEX-codes.' }
|
|
199
|
+
];
|
|
200
|
+
|
|
201
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
202
|
+
'@context': 'https://schema.org',
|
|
203
|
+
'@type': 'FAQPage',
|
|
204
|
+
mainEntity: faq.map((item) => ({
|
|
205
|
+
'@type': 'Question',
|
|
206
|
+
name: item.question,
|
|
207
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
208
|
+
})),
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const howToSchema: WithContext<HowTo> = {
|
|
212
|
+
'@context': 'https://schema.org',
|
|
213
|
+
'@type': 'HowTo',
|
|
214
|
+
name: title,
|
|
215
|
+
description,
|
|
216
|
+
step: howTo.map((step) => ({
|
|
217
|
+
'@type': 'HowToStep',
|
|
218
|
+
name: step.name,
|
|
219
|
+
text: step.text,
|
|
220
|
+
})),
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
224
|
+
'@context': 'https://schema.org',
|
|
225
|
+
'@type': 'SoftwareApplication',
|
|
226
|
+
name: title,
|
|
227
|
+
description,
|
|
228
|
+
applicationCategory: 'UtilitiesApplication',
|
|
229
|
+
operatingSystem: 'Web',
|
|
230
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
231
|
+
inLanguage: 'nl',
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export const content: ChromaticLensLocaleContent = {
|
|
235
|
+
slug,
|
|
236
|
+
title,
|
|
237
|
+
description,
|
|
238
|
+
ui,
|
|
239
|
+
seo,
|
|
240
|
+
faqTitle: "Veelgestelde Vragen",
|
|
241
|
+
faq,
|
|
242
|
+
bibliographyTitle: "Referenties",
|
|
243
|
+
bibliography,
|
|
244
|
+
howTo,
|
|
245
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
246
|
+
};
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
|
+
import type { ChromaticLensUI, ChromaticLensLocaleContent } from '../index';
|
|
3
|
+
|
|
4
|
+
const slug = 'chromatic-lens-ekstrakcja-palety-kolorow-online';
|
|
5
|
+
const title = 'Chromatic Lens: Ekstrakcja Palety Kolorów Online';
|
|
6
|
+
const description = 'Wyodrębnij profesjonalne palety kolorów z dowolnego obrazu za darmo. Zidentyfikuj dominujące kolory w swoich zdjęciach za pomocą algorytmów matematycznych.';
|
|
7
|
+
|
|
8
|
+
const ui: ChromaticLensUI = {
|
|
9
|
+
dropTitle: "Analizuj Kolory",
|
|
10
|
+
dropSubtitle: "Przeciągnij obraz, aby wyodrębnić jego chromatyczne DNA.",
|
|
11
|
+
processingLabel: "Wyodrębnianie palety...",
|
|
12
|
+
paletteTitle: "Wyodrębniona Paleta",
|
|
13
|
+
copyLabel: "Kopiuj HEX",
|
|
14
|
+
copiedLabel: "Skopiowano!",
|
|
15
|
+
colorCountLabel: "Liczba kolorów",
|
|
16
|
+
changeImage: "Zmień obraz",
|
|
17
|
+
faqTitle: "Często zadawane pytania dotyczące ekstrakcji kolorów",
|
|
18
|
+
bibliographyTitle: "Zasoby i dokumentacja techniczna"
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const faq: ChromaticLensLocaleContent['faq'] = [
|
|
22
|
+
{
|
|
23
|
+
question: "Jak działa ekstrakcja kolorów?",
|
|
24
|
+
answer: "Używamy algorytmu 'Median Cut', który grupuje piksele obrazu według ich bliskości w przestrzeni kolorów RGB, aby znaleźć najbardziej reprezentatywne tony.",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
question: "Czy mogę kopiować kolory do mojego edytora graficznego?",
|
|
28
|
+
answer: "Tak, klikając na każdy kolor, kod HEX zostanie automatycznie skopiowany do schowka, gotowy do wklejenia w Photoshopie, Figmie lub CSS.",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
question: "Jakie typy obrazów mogę analizować?",
|
|
32
|
+
answer: "Dowolny plik JPG, PNG lub WebP. Przetwarzanie odbywa się lokalnie, więc duże obrazy zostaną przeanalizowane szybko, bez zużywania danych sieciowych.",
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
|
|
36
|
+
const howTo: ChromaticLensLocaleContent['howTo'] = [
|
|
37
|
+
{
|
|
38
|
+
name: "Prześlij obraz",
|
|
39
|
+
text: "Prześlij zdjęcie, z którego chcesz wyodrębnić chromatyczną inspirację.",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Dostosuj precyzję",
|
|
43
|
+
text: "Wybierz, ile dominujących kolorów ma zidentyfikować narzędzie (od 3 do 12).",
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: "Przeanalizuj wynik",
|
|
47
|
+
text: "Paleta pojawi się natychmiast wraz z odpowiednimi kodami szesnastkowymi.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Kopiuj i używaj",
|
|
51
|
+
text: "Kliknij na odcienie, aby je zapisać i zastosować w swoim projekcie projektowym.",
|
|
52
|
+
},
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
const bibliography: ChromaticLensLocaleContent['bibliography'] = [
|
|
56
|
+
{
|
|
57
|
+
name: "Median Cut Algorithm - Wikipedia",
|
|
58
|
+
url: "https://en.wikipedia.org/wiki/Median_cut",
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
name: "Teoria Koloru dla Projektantów",
|
|
62
|
+
url: "https://www.smashingmagazine.com/2010/01/color-theory-for-designers-part-1-the-meaning-of-color/",
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
const seo: ChromaticLensLocaleContent['seo'] = [
|
|
67
|
+
{
|
|
68
|
+
type: 'summary',
|
|
69
|
+
title: 'Inteligentna Ekstrakcja Palety Kolorów',
|
|
70
|
+
items: [
|
|
71
|
+
'Profesjonalny algorytm Median Cut do analizy kolorów',
|
|
72
|
+
'Wyodrębnij 3-12 dominujących kolorów z dowolnego obrazu',
|
|
73
|
+
'Kody HEX kopiowalne bezpośrednio do schowka',
|
|
74
|
+
'Przetwarzanie w 100% lokalne - idealne dla kreatywnych'
|
|
75
|
+
]
|
|
76
|
+
},
|
|
77
|
+
{ type: 'title', text: 'Ekstrakcja Palety Kolorów: Nauka i Projektowanie', level: 2 },
|
|
78
|
+
{ type: 'paragraph', html: 'Czy kiedykolwiek zastanawiałeś się, dlaczego kadr filmowy wydaje się tak harmonijny? To nie przypadek; to teoria koloru w działaniu. Chromatic Lens pozwala wyodrębnić tę harmonię bezpośrednio z piksela, przekształcając ją w kody HEX gotowe do użycia w Twoich projektach projektowych.' },
|
|
79
|
+
|
|
80
|
+
{ type: 'stats', items: [
|
|
81
|
+
{ value: 'Natychmiast', label: 'Analiza Koloru', icon: 'mdi:lightning-bolt' },
|
|
82
|
+
{ value: '100%', label: 'Lokalna Prywatność', icon: 'mdi:lock' },
|
|
83
|
+
{ value: 'RGB', label: 'Precyzyjna Przestrzeń Barw', icon: 'mdi:palette' }
|
|
84
|
+
], columns: 3 },
|
|
85
|
+
|
|
86
|
+
{ type: 'title', text: 'Wyjaśnienie Algorytmu Median Cut', level: 3 },
|
|
87
|
+
{ type: 'paragraph', html: 'Inteligentna ekstrakcja palety nie jest prostym losowym próbkowaniem pikseli. Wykorzystuje algorytm Median Cut, technikę rekurencyjnego partycjonowania, która zapewnia wierne odwzorowanie:' },
|
|
88
|
+
{ type: 'list', items: [
|
|
89
|
+
'<strong>Podział Rekurencyjny:</strong> „Kostka kolorów” RGB obrazu jest rekurencyjnie dzielona na mniejsze pudełka.',
|
|
90
|
+
'<strong>Równowaga Objętości:</strong> Każda partycja dąży do pogrupowania pikseli z tej samej przestrzeni barw o podobnych objętościach.',
|
|
91
|
+
'<strong>Średnia Ważona:</strong> Wynikowy kolor każdego pudełka jest średnią wszystkich pikseli, które zawiera.',
|
|
92
|
+
'<strong>Wierne Odwzorowanie:</strong> Dominujące kolory odzwierciedlają rzeczywistą atmosferę wizualną obrazu, a nie prostą próbkę.'
|
|
93
|
+
], icon: 'mdi:check' },
|
|
94
|
+
|
|
95
|
+
{ type: 'card', title: 'Kreatywny Przepływ Pracy', html: 'Idealny dla programistów stron internetowych, projektantów UX/UI, artystów cyfrowych i kreatywnych osób, które chcą natychmiast uchwycić wizualną esencję zdjęcia, filmu lub odniesienia wizualnego, aby zastosować je w swoich interfejsach, ilustracjach lub paletach marki.' },
|
|
96
|
+
|
|
97
|
+
{ type: 'title', text: 'Przypadki Użycia w Projektowaniu Cyfrowym', level: 3 },
|
|
98
|
+
{ type: 'comparative', items: [
|
|
99
|
+
{
|
|
100
|
+
title: 'Projektanci UX/UI',
|
|
101
|
+
description: 'Wyodrębniaj palety z obrazów hero, aby tworzyć spójne interfejsy',
|
|
102
|
+
icon: 'mdi:palette',
|
|
103
|
+
points: [
|
|
104
|
+
'Harmonijne kolory tła',
|
|
105
|
+
'Przyciski i elementy pomocnicze',
|
|
106
|
+
'Automatycznie obliczony kontrast'
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: 'Programiści Web',
|
|
111
|
+
description: 'Twórz arkusze stylów CSS bezpośrednio z odniesień wizualnych',
|
|
112
|
+
icon: 'mdi:code-braces',
|
|
113
|
+
points: [
|
|
114
|
+
'Kopiuj HEX bezpośrednio do CSS',
|
|
115
|
+
'Zmienne kolorystyczne w SCSS/CSS',
|
|
116
|
+
'Spójne motywy bez wcześniejszego projektu'
|
|
117
|
+
],
|
|
118
|
+
highlight: true
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
title: 'Artyści Cyfrowi i Ilustratorzy',
|
|
122
|
+
description: 'Uchwyć chromatyczne odniesienia z filmów, natury lub sztuki',
|
|
123
|
+
icon: 'mdi:brush',
|
|
124
|
+
points: [
|
|
125
|
+
'Palety referencyjne z arcydzieł',
|
|
126
|
+
'Filmowe studia kolorystyczne',
|
|
127
|
+
'Natychmiastowa inspiracja wizualna'
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
title: 'Specjaliści ds. Brandingu',
|
|
132
|
+
description: 'Twórz tożsamości wizualne w oparciu o zdjęcia przewodnie',
|
|
133
|
+
icon: 'mdi:tag-multiple',
|
|
134
|
+
points: [
|
|
135
|
+
'Wyodrębnij kolory marki z obrazów',
|
|
136
|
+
'Twórz profesjonalne przewodniki chromatyczne',
|
|
137
|
+
'Zapewnij spójność wizualną'
|
|
138
|
+
]
|
|
139
|
+
}
|
|
140
|
+
], columns: 2 },
|
|
141
|
+
|
|
142
|
+
{ type: 'title', text: 'Stosowana Teoria Koloru', level: 3 },
|
|
143
|
+
{ type: 'table', headers: ['Koncepcja Koloru', 'Definicja', 'Zastosowanie Praktyczne'], rows: [
|
|
144
|
+
['Harmonia Chromatyczna', 'Kombinacja kolorów, która jest wizualnie zrównoważona', 'Spójna tożsamość wizualna w UI'],
|
|
145
|
+
['Kontrast', 'Różnica jasności między kolorami', 'Czytelność i hierarchia wizualna'],
|
|
146
|
+
['Nasycenie', 'Intensywność koloru tonu', 'Profesjonalizm (niskie) vs Energia (wysokie)'],
|
|
147
|
+
['Temperatura Koloru', 'Ciepłe kolory (czerwienie) vs chłodne kolory (niebieskie)', 'Psychologia emocjonalna projektowania'],
|
|
148
|
+
['Paleta Monochromatyczna', 'Wariacje pojedynczego tonu', 'Elegancja i minimalizm']
|
|
149
|
+
] },
|
|
150
|
+
|
|
151
|
+
{ type: 'proscons', items: [
|
|
152
|
+
{
|
|
153
|
+
pro: 'Matematyczna precyzja ekstrakcji - to nie jest przybliżony wybór wizualny',
|
|
154
|
+
con: 'Słabo widoczne kolory mogą zostać uwzględnione, jeśli mają wiele pikseli'
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
pro: 'Natychmiastowe kopiowanie do schowka - idealna integracja z przepływem pracy',
|
|
158
|
+
con: 'Wymaga nowoczesnej przeglądarki kompatybilnej z Canvas API'
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
pro: 'Całkowita prywatność - 100% lokalna analiza bez przesyłania danych',
|
|
162
|
+
con: 'Historia poprzednich analiz nie jest zapisywana'
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
pro: 'Kompatybilny z dowolnym formatem obrazu cyfrowego',
|
|
166
|
+
con: 'Ostateczne kolory zależą od kompresji i jakości obrazu'
|
|
167
|
+
}
|
|
168
|
+
], proTitle: 'Zalety', conTitle: 'Ograniczenia' },
|
|
169
|
+
|
|
170
|
+
{ type: 'diagnostic', variant: 'success', title: 'Realistyczne Odwzorowanie Kolorów', icon: 'mdi:check-circle-outline', badge: 'Zaawansowany Algorytm', html: 'W przeciwieństwie do narzędzi, które po prostu próbkują losowe piksele, nasz system wykorzystuje algorytm Median Cut, który waży całkowitą liczbę pikseli każdego tonu, zapewniając, że wynikowa paleta wiernie odzwierciedla wizualną atmosferę i psychologię kolorów oryginalnego obrazu.' },
|
|
171
|
+
|
|
172
|
+
{ type: 'glossary', items: [
|
|
173
|
+
{
|
|
174
|
+
term: 'Median Cut',
|
|
175
|
+
definition: 'Algorytm kwantyzacji kolorów, który rekurencyjnie dzieli przestrzeń RGB na pudełka, zapewniając jednolity rozkład. Historycznie stosowany w technologii GIF i kolorów indeksowanych.'
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
term: 'Przestrzeń Barw RGB',
|
|
179
|
+
definition: 'Model kolorów oparty na czerwieni, zieleni i niebieskim. Każdy kolor reprezentowany jest jako kombinacja tych trzech wartości (0-255). Standard na ekranach cyfrowych i w Internecie.'
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
term: 'Kod HEX',
|
|
183
|
+
definition: '6-cyfrowy zapis szesnastkowy (#RRGGBB) reprezentujący kolor w Internecie: #FF0000 (czerwony), #00FF00 (zielony), #0000FF (niebieski). Uniwersalny w CSS, Figmie i środowisku Adobe.'
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
term: 'Nasycenie Koloru',
|
|
187
|
+
definition: 'Intensywność lub czystość koloru. Wysokie nasycenie = żywy kolor; niskie nasycenie = kolor szarawy. Wpływa na emocjonalny odbiór projektu.'
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
term: 'Harmonia Chromatyczna',
|
|
191
|
+
definition: 'Dobór i kombinacja kolorów dająca wizualnie przyjemny efekt. Może być monochromatyczna, dopełniająca, analogiczna lub triadyczna.'
|
|
192
|
+
}
|
|
193
|
+
] },
|
|
194
|
+
|
|
195
|
+
{ type: 'message', title: 'Profesjonalna Analiza Chromatyczna', ariaLabel: 'Informacje techniczne o analizie kolorów', html: 'Chromatic Lens zamienia ręczną analizę wizualną w algorytmiczną precyzję. Nie tylko wyodrębnia kolory: uchwyci emocjonalną i wizualną esencję dowolnego obrazu, umieszczając ją bezpośrednio w schowku jako gotowe do użycia kody HEX. Pełna prywatność, brak limitów objętości analiz.' },
|
|
196
|
+
|
|
197
|
+
{ type: 'title', text: 'Projektowanie z Wizualnej Inspiracji', level: 3 },
|
|
198
|
+
{ type: 'paragraph', html: 'Najlepsza paleta kolorów to taka, która oddaje wizualną intencję Twojego punktu odniesienia. Chromatic Lens automatyzuje to, co kiedyś było procesem ręcznym: obserwację, analizę, notowanie. Teraz po prostu przeciągnij obraz i uzyskaj profesjonalne kody HEX w ciągu kilku sekund.' }
|
|
199
|
+
];
|
|
200
|
+
|
|
201
|
+
const faqSchema: WithContext<FAQPage> = {
|
|
202
|
+
'@context': 'https://schema.org',
|
|
203
|
+
'@type': 'FAQPage',
|
|
204
|
+
mainEntity: faq.map((item) => ({
|
|
205
|
+
'@type': 'Question',
|
|
206
|
+
name: item.question,
|
|
207
|
+
acceptedAnswer: { '@type': 'Answer', text: item.answer },
|
|
208
|
+
})),
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
const howToSchema: WithContext<HowTo> = {
|
|
212
|
+
'@context': 'https://schema.org',
|
|
213
|
+
'@type': 'HowTo',
|
|
214
|
+
name: title,
|
|
215
|
+
description,
|
|
216
|
+
step: howTo.map((step) => ({
|
|
217
|
+
'@type': 'HowToStep',
|
|
218
|
+
name: step.name,
|
|
219
|
+
text: step.text,
|
|
220
|
+
})),
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
const appSchema: WithContext<SoftwareApplication> = {
|
|
224
|
+
'@context': 'https://schema.org',
|
|
225
|
+
'@type': 'SoftwareApplication',
|
|
226
|
+
name: title,
|
|
227
|
+
description,
|
|
228
|
+
applicationCategory: 'UtilitiesApplication',
|
|
229
|
+
operatingSystem: 'Web',
|
|
230
|
+
offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' },
|
|
231
|
+
inLanguage: 'pl',
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export const content: ChromaticLensLocaleContent = {
|
|
235
|
+
slug,
|
|
236
|
+
title,
|
|
237
|
+
description,
|
|
238
|
+
ui,
|
|
239
|
+
seo,
|
|
240
|
+
faqTitle: "Często Zadawane Pytania",
|
|
241
|
+
faq,
|
|
242
|
+
bibliographyTitle: "Referencje",
|
|
243
|
+
bibliography,
|
|
244
|
+
howTo,
|
|
245
|
+
schemas: [faqSchema as any, howToSchema as any, appSchema],
|
|
246
|
+
};
|