@jjlmoya/utils-nature 1.21.0 → 1.22.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 +1 -1
- package/src/category/index.ts +2 -2
- package/src/entries.ts +2 -1
- package/src/index.ts +2 -0
- package/src/pages/[locale]/[slug].astro +5 -4
- package/src/tests/diacritics_density.test.ts +1 -1
- package/src/tests/inverted_punctuation.test.ts +1 -1
- package/src/tests/script_density.test.ts +1 -1
- package/src/tests/seo_length.test.ts +1 -0
- package/src/tests/seo_translation_completeness.test.ts +69 -0
- package/src/tests/title_quality.test.ts +1 -1
- package/src/tests/tool_validation.test.ts +2 -2
- package/src/tests/translation_copy.test.ts +2 -2
- package/src/tool/compostBinVolumeRatioCalculator/bibliography.astro +18 -0
- package/src/tool/compostBinVolumeRatioCalculator/bibliography.ts +12 -0
- package/src/tool/compostBinVolumeRatioCalculator/component.astro +77 -0
- package/src/tool/compostBinVolumeRatioCalculator/compost-bin-volume-ratio-calculator.css +509 -0
- package/src/tool/compostBinVolumeRatioCalculator/controller.ts +189 -0
- package/src/tool/compostBinVolumeRatioCalculator/dom-views.ts +162 -0
- package/src/tool/compostBinVolumeRatioCalculator/entry.ts +28 -0
- package/src/tool/compostBinVolumeRatioCalculator/evaluator.ts +26 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/de.ts +193 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/en.ts +193 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/es.ts +193 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/fr.ts +193 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/id.ts +185 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/it.ts +193 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/ja.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/ko.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/nl.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/pl.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/pt.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/ru.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/sv.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/tr.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/i18n/zh.ts +190 -0
- package/src/tool/compostBinVolumeRatioCalculator/index.ts +11 -0
- package/src/tool/compostBinVolumeRatioCalculator/logic.test.ts +55 -0
- package/src/tool/compostBinVolumeRatioCalculator/logic.ts +165 -0
- package/src/tool/compostBinVolumeRatioCalculator/seo.astro +23 -0
- package/src/tool/compostBinVolumeRatioCalculator/storage.ts +25 -0
- package/src/tool/compostBinVolumeRatioCalculator/ui.ts +54 -0
- package/src/tool/cricketThermometer/component.astro +1 -1
- package/src/tool/cricketThermometer/i18n/de.ts +2 -2
- package/src/tool/cricketThermometer/i18n/en.ts +2 -2
- package/src/tool/cricketThermometer/i18n/es.ts +2 -2
- package/src/tool/cricketThermometer/i18n/fr.ts +2 -2
- package/src/tool/cricketThermometer/i18n/id.ts +2 -2
- package/src/tool/cricketThermometer/i18n/it.ts +2 -2
- package/src/tool/cricketThermometer/i18n/ja.ts +2 -2
- package/src/tool/cricketThermometer/i18n/ko.ts +2 -2
- package/src/tool/cricketThermometer/i18n/nl.ts +2 -2
- package/src/tool/cricketThermometer/i18n/pl.ts +2 -2
- package/src/tool/cricketThermometer/i18n/pt.ts +2 -2
- package/src/tool/cricketThermometer/i18n/ru.ts +2 -2
- package/src/tool/cricketThermometer/i18n/sv.ts +2 -2
- package/src/tool/cricketThermometer/i18n/tr.ts +2 -2
- package/src/tool/cricketThermometer/i18n/zh.ts +2 -2
- package/src/tool/cricketThermometer/index.ts +1 -0
- package/src/tool/digitalCarbon/component.astro +3 -3
- package/src/tool/digitalCarbon/i18n/de.ts +2 -2
- package/src/tool/digitalCarbon/i18n/en.ts +2 -2
- package/src/tool/digitalCarbon/i18n/es.ts +2 -2
- package/src/tool/digitalCarbon/i18n/fr.ts +2 -2
- package/src/tool/digitalCarbon/i18n/id.ts +2 -2
- package/src/tool/digitalCarbon/i18n/it.ts +2 -2
- package/src/tool/digitalCarbon/i18n/ja.ts +2 -2
- package/src/tool/digitalCarbon/i18n/ko.ts +2 -2
- package/src/tool/digitalCarbon/i18n/nl.ts +2 -2
- package/src/tool/digitalCarbon/i18n/pl.ts +2 -2
- package/src/tool/digitalCarbon/i18n/pt.ts +2 -2
- package/src/tool/digitalCarbon/i18n/ru.ts +2 -2
- package/src/tool/digitalCarbon/i18n/sv.ts +2 -2
- package/src/tool/digitalCarbon/i18n/tr.ts +2 -2
- package/src/tool/digitalCarbon/i18n/zh.ts +2 -2
- package/src/tool/digitalCarbon/index.ts +1 -0
- package/src/tool/rainHarvester/i18n/de.ts +2 -2
- package/src/tool/rainHarvester/i18n/en.ts +2 -2
- package/src/tool/rainHarvester/i18n/es.ts +2 -2
- package/src/tool/rainHarvester/i18n/fr.ts +2 -2
- package/src/tool/rainHarvester/i18n/id.ts +2 -2
- package/src/tool/rainHarvester/i18n/it.ts +2 -2
- package/src/tool/rainHarvester/i18n/ja.ts +2 -2
- package/src/tool/rainHarvester/i18n/ko.ts +2 -2
- package/src/tool/rainHarvester/i18n/nl.ts +2 -2
- package/src/tool/rainHarvester/i18n/pl.ts +2 -2
- package/src/tool/rainHarvester/i18n/pt.ts +2 -2
- package/src/tool/rainHarvester/i18n/ru.ts +2 -2
- package/src/tool/rainHarvester/i18n/sv.ts +2 -2
- package/src/tool/rainHarvester/i18n/tr.ts +2 -2
- package/src/tool/rainHarvester/i18n/zh.ts +2 -2
- package/src/tool/rainHarvester/index.ts +1 -0
- package/src/tool/seedCalculator/i18n/de.ts +2 -2
- package/src/tool/seedCalculator/i18n/en.ts +2 -2
- package/src/tool/seedCalculator/i18n/es.ts +2 -2
- package/src/tool/seedCalculator/i18n/fr.ts +2 -2
- package/src/tool/seedCalculator/i18n/id.ts +2 -2
- package/src/tool/seedCalculator/i18n/it.ts +2 -2
- package/src/tool/seedCalculator/i18n/ja.ts +2 -2
- package/src/tool/seedCalculator/i18n/ko.ts +2 -2
- package/src/tool/seedCalculator/i18n/nl.ts +2 -2
- package/src/tool/seedCalculator/i18n/pl.ts +2 -2
- package/src/tool/seedCalculator/i18n/pt.ts +2 -2
- package/src/tool/seedCalculator/i18n/ru.ts +2 -2
- package/src/tool/seedCalculator/i18n/sv.ts +2 -2
- package/src/tool/seedCalculator/i18n/tr.ts +2 -2
- package/src/tool/seedCalculator/i18n/zh.ts +2 -2
- package/src/tool/seedCalculator/index.ts +1 -0
- package/src/tool/urbanGardenPlanner/i18n/de.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/en.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/es.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/fr.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/id.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/it.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/ja.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/ko.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/nl.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/pl.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/pt.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/ru.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/sv.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/tr.ts +2 -2
- package/src/tool/urbanGardenPlanner/i18n/zh.ts +2 -2
- package/src/tools.ts +3 -1
- package/src/types.ts +4 -4
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WithContext, FAQPage,
|
|
1
|
+
import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { ToolLocaleContent } from '../../../types';
|
|
4
4
|
import type { SeedCalculatorUI } from '../ui';
|
|
@@ -60,7 +60,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
60
60
|
})),
|
|
61
61
|
};
|
|
62
62
|
|
|
63
|
-
const howToSchema: WithContext<
|
|
63
|
+
const howToSchema: WithContext<HowTo> = {
|
|
64
64
|
'@context': 'https://schema.org',
|
|
65
65
|
'@type': 'HowTo',
|
|
66
66
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ const howToData = [
|
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
24
|
-
const howToSchema: WithContext<
|
|
24
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
25
25
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'de' };
|
|
26
26
|
|
|
27
27
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -54,7 +54,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
54
54
|
})),
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
-
const howToSchema: WithContext<
|
|
57
|
+
const howToSchema: WithContext<HowTo> = {
|
|
58
58
|
'@context': 'https://schema.org',
|
|
59
59
|
'@type': 'HowTo',
|
|
60
60
|
name: title,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ const howToData = [
|
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
24
|
-
const howToSchema: WithContext<
|
|
24
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
25
25
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'es' };
|
|
26
26
|
|
|
27
27
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ const howToData = [
|
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
24
|
-
const howToSchema: WithContext<
|
|
24
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
25
25
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'fr' };
|
|
26
26
|
|
|
27
27
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ const howToData = [
|
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
24
|
-
const howToSchema: WithContext<
|
|
24
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
25
25
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'id' };
|
|
26
26
|
|
|
27
27
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -21,7 +21,7 @@ const howToData = [
|
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
24
|
-
const howToSchema: WithContext<
|
|
24
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
25
25
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'it' };
|
|
26
26
|
|
|
27
27
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ const howToData = [
|
|
|
18
18
|
{ name: '雨の量を試す', text: '雨量をミリメートルで入力し、庭の大きさと集水量を比べます。' },
|
|
19
19
|
];
|
|
20
20
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
21
|
-
const howToSchema: WithContext<
|
|
21
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
22
22
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'ja' };
|
|
23
23
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
24
24
|
slug, title, description,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ const howToData = [
|
|
|
18
18
|
{ name: '강수량 시험', text: '강수량을 밀리미터로 입력하고 텃밭 크기와 모인 물을 비교합니다.' },
|
|
19
19
|
];
|
|
20
20
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
21
|
-
const howToSchema: WithContext<
|
|
21
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
22
22
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'ko' };
|
|
23
23
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
24
24
|
slug, title, description,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ const howToData = [
|
|
|
18
18
|
{ name: 'Test een regenbui', text: 'Voer de regenhoogte in millimeters in en vergelijk het water met de tuingrootte.' },
|
|
19
19
|
];
|
|
20
20
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
21
|
-
const howToSchema: WithContext<
|
|
21
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
22
22
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'nl' };
|
|
23
23
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
24
24
|
slug, title, description,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ const howToData = [
|
|
|
18
18
|
{ name: 'Sprawdź opad', text: 'Wpisz wysokość opadu w milimetrach i porównaj wodę z wielkością ogrodu.' },
|
|
19
19
|
];
|
|
20
20
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
21
|
-
const howToSchema: WithContext<
|
|
21
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
22
22
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'pl' };
|
|
23
23
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
24
24
|
slug, title, description,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ const howToData = [
|
|
|
18
18
|
{ name: 'Teste um evento de chuva', text: 'Digite a chuva em milímetros e compare a água captada com o tamanho da horta.' },
|
|
19
19
|
];
|
|
20
20
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
21
|
-
const howToSchema: WithContext<
|
|
21
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
22
22
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'pt' };
|
|
23
23
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
24
24
|
slug, title, description,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ const howToData = [
|
|
|
18
18
|
{ name: 'Проверьте осадки', text: 'Введите количество осадков в миллиметрах и сравните воду с размером сада.' },
|
|
19
19
|
];
|
|
20
20
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
21
|
-
const howToSchema: WithContext<
|
|
21
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
22
22
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'ru' };
|
|
23
23
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
24
24
|
slug, title, description,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -18,7 +18,7 @@ const howToData = [
|
|
|
18
18
|
{ name: 'Testa ett regn', text: 'Ange nederbörden i millimeter och jämför vattnet med odlingens storlek.' },
|
|
19
19
|
];
|
|
20
20
|
const faqSchema: WithContext<FAQPage> = { '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) };
|
|
21
|
-
const howToSchema: WithContext<
|
|
21
|
+
const howToSchema: WithContext<HowTo> = { '@context': 'https://schema.org', '@type': 'HowTo', name: title, description, step: howToData.map((step, index) => ({ '@type': 'HowToStep', position: index + 1, name: step.name, text: step.text })) };
|
|
22
22
|
const appSchema: WithContext<SoftwareApplication> = { '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'UtilityApplication', operatingSystem: 'All', offers: { '@type': 'Offer', price: '0', priceCurrency: 'EUR' }, inLanguage: 'sv' };
|
|
23
23
|
export const content: UrbanGardenPlannerLocaleContent = {
|
|
24
24
|
slug, title, description,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -26,7 +26,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
26
26
|
mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
const howToSchema: WithContext<
|
|
29
|
+
const howToSchema: WithContext<HowTo> = {
|
|
30
30
|
'@context': 'https://schema.org',
|
|
31
31
|
'@type': 'HowTo',
|
|
32
32
|
name: 'Şehir bahçesi toprak ve yağmur suyu hesabı yapma',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FAQPage,
|
|
1
|
+
import type { FAQPage, HowTo, SoftwareApplication, WithContext } from 'schema-dts';
|
|
2
2
|
import { bibliography } from '../bibliography';
|
|
3
3
|
import type { UrbanGardenPlannerLocaleContent } from '../entry';
|
|
4
4
|
|
|
@@ -26,7 +26,7 @@ const faqSchema: WithContext<FAQPage> = {
|
|
|
26
26
|
mainEntity: faqData.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })),
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
const howToSchema: WithContext<
|
|
29
|
+
const howToSchema: WithContext<HowTo> = {
|
|
30
30
|
'@context': 'https://schema.org',
|
|
31
31
|
'@type': 'HowTo',
|
|
32
32
|
name: '计算城市花园的土壤和雨水',
|
package/src/tools.ts
CHANGED
|
@@ -5,11 +5,13 @@ import { SEED_CALCULATOR_TOOL } from './tool/seedCalculator/index';
|
|
|
5
5
|
import { RAIN_HARVESTER_TOOL } from './tool/rainHarvester/index';
|
|
6
6
|
import { DIGITAL_CARBON_TOOL } from './tool/digitalCarbon/index';
|
|
7
7
|
import { URBAN_GARDEN_PLANNER_TOOL } from './tool/urbanGardenPlanner/index';
|
|
8
|
+
import { COMPOST_BIN_VOLUME_RATIO_CALCULATOR_TOOL } from './tool/compostBinVolumeRatioCalculator/index';
|
|
8
9
|
|
|
9
10
|
export const ALL_TOOLS: ToolDefinition[] = [
|
|
10
11
|
CRICKET_THERMOMETER_TOOL,
|
|
11
12
|
SEED_CALCULATOR_TOOL,
|
|
12
13
|
RAIN_HARVESTER_TOOL,
|
|
13
14
|
DIGITAL_CARBON_TOOL,
|
|
14
|
-
URBAN_GARDEN_PLANNER_TOOL
|
|
15
|
+
URBAN_GARDEN_PLANNER_TOOL,
|
|
16
|
+
COMPOST_BIN_VOLUME_RATIO_CALCULATOR_TOOL
|
|
15
17
|
];
|
package/src/types.ts
CHANGED
|
@@ -5,7 +5,7 @@ export type { SEOSection };
|
|
|
5
5
|
|
|
6
6
|
export type KnownLocale =
|
|
7
7
|
| 'ar' | 'da' | 'de' | 'en' | 'es' | 'fi'
|
|
8
|
-
| 'fr' | 'it' | 'ja' | 'ko' | 'nb' | 'nl'
|
|
8
|
+
| 'fr' | 'id' | 'it' | 'ja' | 'ko' | 'nb' | 'nl'
|
|
9
9
|
| 'pl' | 'pt' | 'ru' | 'sv' | 'tr' | 'zh';
|
|
10
10
|
|
|
11
11
|
export interface FAQItem {
|
|
@@ -23,7 +23,7 @@ export interface HowToStep {
|
|
|
23
23
|
text: string;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
export interface ToolLocaleContent<TUI
|
|
26
|
+
export interface ToolLocaleContent<TUI = Record<string, string>> {
|
|
27
27
|
slug: string;
|
|
28
28
|
title: string;
|
|
29
29
|
description: string;
|
|
@@ -46,7 +46,7 @@ export type LocaleLoader<T> = () => Promise<T>;
|
|
|
46
46
|
|
|
47
47
|
export type LocaleMap<T> = Partial<Record<KnownLocale, LocaleLoader<T>>>;
|
|
48
48
|
|
|
49
|
-
export interface NatureToolEntry<TUI
|
|
49
|
+
export interface NatureToolEntry<TUI = Record<string, string>> {
|
|
50
50
|
id: string;
|
|
51
51
|
icons: {
|
|
52
52
|
bg: string;
|
|
@@ -57,7 +57,7 @@ export interface NatureToolEntry<TUI extends Record<string, string> = Record<str
|
|
|
57
57
|
|
|
58
58
|
export interface NatureCategoryEntry {
|
|
59
59
|
icon: string;
|
|
60
|
-
tools: NatureToolEntry[];
|
|
60
|
+
tools: NatureToolEntry<Record<string, string>>[];
|
|
61
61
|
i18n: LocaleMap<CategoryLocaleContent>;
|
|
62
62
|
}
|
|
63
63
|
|