@jjlmoya/utils-textiles 1.13.0 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/package.json +1 -1
  2. package/src/pages/[locale]/[slug].astro +30 -14
  3. package/src/tests/locale_completeness.test.ts +0 -33
  4. package/src/tests/shared-test-helpers.ts +56 -0
  5. package/src/tests/tool_exports.test.ts +34 -0
  6. package/src/tool/burnTest/bibliography.astro +2 -10
  7. package/src/tool/burnTest/bibliography.ts +16 -0
  8. package/src/tool/burnTest/i18n/de.ts +2 -16
  9. package/src/tool/burnTest/i18n/en.ts +2 -16
  10. package/src/tool/burnTest/i18n/es.ts +2 -16
  11. package/src/tool/burnTest/i18n/fr.ts +2 -16
  12. package/src/tool/burnTest/i18n/id.ts +2 -16
  13. package/src/tool/burnTest/i18n/it.ts +2 -16
  14. package/src/tool/burnTest/i18n/ja.ts +2 -16
  15. package/src/tool/burnTest/i18n/ko.ts +2 -16
  16. package/src/tool/burnTest/i18n/nl.ts +2 -16
  17. package/src/tool/burnTest/i18n/pl.ts +2 -16
  18. package/src/tool/burnTest/i18n/pt.ts +2 -16
  19. package/src/tool/burnTest/i18n/ru.ts +2 -16
  20. package/src/tool/burnTest/i18n/sv.ts +2 -16
  21. package/src/tool/burnTest/i18n/tr.ts +2 -16
  22. package/src/tool/burnTest/i18n/zh.ts +2 -16
  23. package/src/tool/burnTest/index.ts +1 -0
  24. package/src/tool/burnTest/seo.astro +2 -27
  25. package/src/tool/clothingSizeConverter/bibliography.astro +2 -10
  26. package/src/tool/clothingSizeConverter/bibliography.ts +10 -0
  27. package/src/tool/clothingSizeConverter/i18n/de.ts +2 -10
  28. package/src/tool/clothingSizeConverter/i18n/en.ts +2 -10
  29. package/src/tool/clothingSizeConverter/i18n/es.ts +2 -10
  30. package/src/tool/clothingSizeConverter/i18n/fr.ts +2 -10
  31. package/src/tool/clothingSizeConverter/i18n/id.ts +2 -10
  32. package/src/tool/clothingSizeConverter/i18n/it.ts +2 -10
  33. package/src/tool/clothingSizeConverter/i18n/ja.ts +2 -10
  34. package/src/tool/clothingSizeConverter/i18n/ko.ts +2 -10
  35. package/src/tool/clothingSizeConverter/i18n/nl.ts +2 -10
  36. package/src/tool/clothingSizeConverter/i18n/pl.ts +2 -10
  37. package/src/tool/clothingSizeConverter/i18n/pt.ts +2 -10
  38. package/src/tool/clothingSizeConverter/i18n/ru.ts +2 -10
  39. package/src/tool/clothingSizeConverter/i18n/sv.ts +2 -10
  40. package/src/tool/clothingSizeConverter/i18n/tr.ts +2 -10
  41. package/src/tool/clothingSizeConverter/i18n/zh.ts +2 -10
  42. package/src/tool/clothingSizeConverter/index.ts +1 -0
  43. package/src/tool/clothingSizeConverter/seo.astro +2 -27
  44. package/src/tool/fabricProjectCalculator/bibliography.astro +2 -10
  45. package/src/tool/fabricProjectCalculator/bibliography.ts +16 -0
  46. package/src/tool/fabricProjectCalculator/i18n/de.ts +2 -16
  47. package/src/tool/fabricProjectCalculator/i18n/en.ts +2 -16
  48. package/src/tool/fabricProjectCalculator/i18n/es.ts +2 -16
  49. package/src/tool/fabricProjectCalculator/i18n/fr.ts +2 -16
  50. package/src/tool/fabricProjectCalculator/i18n/id.ts +2 -16
  51. package/src/tool/fabricProjectCalculator/i18n/it.ts +2 -16
  52. package/src/tool/fabricProjectCalculator/i18n/ja.ts +2 -16
  53. package/src/tool/fabricProjectCalculator/i18n/ko.ts +2 -16
  54. package/src/tool/fabricProjectCalculator/i18n/nl.ts +2 -16
  55. package/src/tool/fabricProjectCalculator/i18n/pl.ts +2 -16
  56. package/src/tool/fabricProjectCalculator/i18n/pt.ts +2 -16
  57. package/src/tool/fabricProjectCalculator/i18n/ru.ts +2 -16
  58. package/src/tool/fabricProjectCalculator/i18n/sv.ts +2 -16
  59. package/src/tool/fabricProjectCalculator/i18n/tr.ts +2 -16
  60. package/src/tool/fabricProjectCalculator/i18n/zh.ts +2 -16
  61. package/src/tool/fabricProjectCalculator/index.ts +1 -0
  62. package/src/tool/fabricProjectCalculator/seo.astro +2 -27
  63. package/src/tool/fabricTruth/bibliography.astro +2 -10
  64. package/src/tool/fabricTruth/bibliography.ts +16 -0
  65. package/src/tool/fabricTruth/i18n/de.ts +2 -16
  66. package/src/tool/fabricTruth/i18n/en.ts +2 -16
  67. package/src/tool/fabricTruth/i18n/es.ts +2 -16
  68. package/src/tool/fabricTruth/i18n/fr.ts +2 -16
  69. package/src/tool/fabricTruth/i18n/id.ts +2 -16
  70. package/src/tool/fabricTruth/i18n/it.ts +2 -16
  71. package/src/tool/fabricTruth/i18n/ja.ts +2 -16
  72. package/src/tool/fabricTruth/i18n/ko.ts +2 -16
  73. package/src/tool/fabricTruth/i18n/nl.ts +2 -16
  74. package/src/tool/fabricTruth/i18n/pl.ts +2 -16
  75. package/src/tool/fabricTruth/i18n/pt.ts +2 -16
  76. package/src/tool/fabricTruth/i18n/ru.ts +2 -16
  77. package/src/tool/fabricTruth/i18n/sv.ts +2 -16
  78. package/src/tool/fabricTruth/i18n/tr.ts +2 -16
  79. package/src/tool/fabricTruth/i18n/zh.ts +2 -16
  80. package/src/tool/fabricTruth/index.ts +1 -0
  81. package/src/tool/fabricTruth/seo.astro +2 -27
  82. package/src/tool/fiberPrep/bibliography.astro +2 -10
  83. package/src/tool/fiberPrep/bibliography.ts +12 -0
  84. package/src/tool/fiberPrep/i18n/de.ts +2 -12
  85. package/src/tool/fiberPrep/i18n/en.ts +2 -12
  86. package/src/tool/fiberPrep/i18n/es.ts +2 -12
  87. package/src/tool/fiberPrep/i18n/fr.ts +2 -12
  88. package/src/tool/fiberPrep/i18n/id.ts +2 -12
  89. package/src/tool/fiberPrep/i18n/it.ts +2 -12
  90. package/src/tool/fiberPrep/i18n/ja.ts +2 -12
  91. package/src/tool/fiberPrep/i18n/ko.ts +2 -12
  92. package/src/tool/fiberPrep/i18n/nl.ts +2 -12
  93. package/src/tool/fiberPrep/i18n/pl.ts +2 -12
  94. package/src/tool/fiberPrep/i18n/pt.ts +2 -12
  95. package/src/tool/fiberPrep/i18n/ru.ts +2 -12
  96. package/src/tool/fiberPrep/i18n/sv.ts +2 -12
  97. package/src/tool/fiberPrep/i18n/tr.ts +2 -12
  98. package/src/tool/fiberPrep/i18n/zh.ts +2 -12
  99. package/src/tool/fiberPrep/index.ts +1 -0
  100. package/src/tool/fiberPrep/seo.astro +2 -27
  101. package/src/tool/knittingGauge/bibliography.astro +2 -10
  102. package/src/tool/knittingGauge/bibliography.ts +12 -0
  103. package/src/tool/knittingGauge/i18n/de.ts +2 -12
  104. package/src/tool/knittingGauge/i18n/en.ts +2 -12
  105. package/src/tool/knittingGauge/i18n/es.ts +2 -12
  106. package/src/tool/knittingGauge/i18n/fr.ts +2 -12
  107. package/src/tool/knittingGauge/i18n/id.ts +2 -12
  108. package/src/tool/knittingGauge/i18n/it.ts +2 -12
  109. package/src/tool/knittingGauge/i18n/ja.ts +2 -12
  110. package/src/tool/knittingGauge/i18n/ko.ts +2 -12
  111. package/src/tool/knittingGauge/i18n/nl.ts +2 -12
  112. package/src/tool/knittingGauge/i18n/pl.ts +2 -12
  113. package/src/tool/knittingGauge/i18n/pt.ts +2 -12
  114. package/src/tool/knittingGauge/i18n/ru.ts +2 -12
  115. package/src/tool/knittingGauge/i18n/sv.ts +2 -12
  116. package/src/tool/knittingGauge/i18n/tr.ts +2 -12
  117. package/src/tool/knittingGauge/i18n/zh.ts +2 -12
  118. package/src/tool/knittingGauge/index.ts +1 -0
  119. package/src/tool/knittingGauge/seo.astro +2 -27
  120. package/src/tool/laundryGuide/bibliography.astro +2 -10
  121. package/src/tool/laundryGuide/bibliography.ts +6 -0
  122. package/src/tool/laundryGuide/i18n/de.ts +2 -6
  123. package/src/tool/laundryGuide/i18n/en.ts +2 -6
  124. package/src/tool/laundryGuide/i18n/es.ts +2 -6
  125. package/src/tool/laundryGuide/i18n/fr.ts +2 -6
  126. package/src/tool/laundryGuide/i18n/id.ts +2 -6
  127. package/src/tool/laundryGuide/i18n/it.ts +2 -6
  128. package/src/tool/laundryGuide/i18n/ja.ts +2 -6
  129. package/src/tool/laundryGuide/i18n/ko.ts +2 -6
  130. package/src/tool/laundryGuide/i18n/nl.ts +2 -6
  131. package/src/tool/laundryGuide/i18n/pl.ts +2 -6
  132. package/src/tool/laundryGuide/i18n/pt.ts +2 -6
  133. package/src/tool/laundryGuide/i18n/ru.ts +2 -6
  134. package/src/tool/laundryGuide/i18n/sv.ts +2 -6
  135. package/src/tool/laundryGuide/i18n/tr.ts +2 -6
  136. package/src/tool/laundryGuide/i18n/zh.ts +2 -6
  137. package/src/tool/laundryGuide/index.ts +1 -0
  138. package/src/tool/laundryGuide/seo.astro +2 -27
  139. package/src/tool/needleConverter/bibliography.astro +2 -10
  140. package/src/tool/needleConverter/bibliography.ts +12 -0
  141. package/src/tool/needleConverter/i18n/de.ts +2 -12
  142. package/src/tool/needleConverter/i18n/en.ts +2 -12
  143. package/src/tool/needleConverter/i18n/es.ts +2 -12
  144. package/src/tool/needleConverter/i18n/fr.ts +2 -12
  145. package/src/tool/needleConverter/i18n/id.ts +2 -12
  146. package/src/tool/needleConverter/i18n/it.ts +2 -12
  147. package/src/tool/needleConverter/i18n/ja.ts +2 -12
  148. package/src/tool/needleConverter/i18n/ko.ts +2 -12
  149. package/src/tool/needleConverter/i18n/nl.ts +2 -12
  150. package/src/tool/needleConverter/i18n/pl.ts +2 -12
  151. package/src/tool/needleConverter/i18n/pt.ts +2 -12
  152. package/src/tool/needleConverter/i18n/ru.ts +2 -12
  153. package/src/tool/needleConverter/i18n/sv.ts +2 -12
  154. package/src/tool/needleConverter/i18n/tr.ts +2 -12
  155. package/src/tool/needleConverter/i18n/zh.ts +2 -12
  156. package/src/tool/needleConverter/index.ts +1 -0
  157. package/src/tool/needleConverter/seo.astro +1 -1
  158. package/src/tool/sewingPatternScaler/bibliography.astro +2 -10
  159. package/src/tool/sewingPatternScaler/bibliography.ts +12 -0
  160. package/src/tool/sewingPatternScaler/i18n/de.ts +2 -12
  161. package/src/tool/sewingPatternScaler/i18n/en.ts +2 -12
  162. package/src/tool/sewingPatternScaler/i18n/es.ts +2 -12
  163. package/src/tool/sewingPatternScaler/i18n/fr.ts +2 -12
  164. package/src/tool/sewingPatternScaler/i18n/id.ts +2 -12
  165. package/src/tool/sewingPatternScaler/i18n/it.ts +2 -12
  166. package/src/tool/sewingPatternScaler/i18n/ja.ts +2 -12
  167. package/src/tool/sewingPatternScaler/i18n/ko.ts +2 -12
  168. package/src/tool/sewingPatternScaler/i18n/nl.ts +2 -12
  169. package/src/tool/sewingPatternScaler/i18n/pl.ts +2 -12
  170. package/src/tool/sewingPatternScaler/i18n/pt.ts +2 -12
  171. package/src/tool/sewingPatternScaler/i18n/ru.ts +2 -12
  172. package/src/tool/sewingPatternScaler/i18n/sv.ts +2 -12
  173. package/src/tool/sewingPatternScaler/i18n/tr.ts +2 -12
  174. package/src/tool/sewingPatternScaler/i18n/zh.ts +2 -12
  175. package/src/tool/sewingPatternScaler/index.ts +1 -0
  176. package/src/tool/sewingPatternScaler/seo.astro +2 -36
  177. package/src/tool/shoeSizeConverter/bibliography.astro +2 -10
  178. package/src/tool/shoeSizeConverter/bibliography.ts +7 -0
  179. package/src/tool/shoeSizeConverter/i18n/de.ts +2 -7
  180. package/src/tool/shoeSizeConverter/i18n/en.ts +2 -7
  181. package/src/tool/shoeSizeConverter/i18n/es.ts +2 -7
  182. package/src/tool/shoeSizeConverter/i18n/fr.ts +2 -7
  183. package/src/tool/shoeSizeConverter/i18n/id.ts +2 -7
  184. package/src/tool/shoeSizeConverter/i18n/it.ts +2 -7
  185. package/src/tool/shoeSizeConverter/i18n/ja.ts +2 -7
  186. package/src/tool/shoeSizeConverter/i18n/ko.ts +2 -7
  187. package/src/tool/shoeSizeConverter/i18n/nl.ts +2 -7
  188. package/src/tool/shoeSizeConverter/i18n/pl.ts +2 -7
  189. package/src/tool/shoeSizeConverter/i18n/pt.ts +2 -7
  190. package/src/tool/shoeSizeConverter/i18n/ru.ts +2 -7
  191. package/src/tool/shoeSizeConverter/i18n/sv.ts +2 -7
  192. package/src/tool/shoeSizeConverter/i18n/tr.ts +2 -7
  193. package/src/tool/shoeSizeConverter/i18n/zh.ts +2 -7
  194. package/src/tool/shoeSizeConverter/index.ts +1 -0
  195. package/src/tool/shoeSizeConverter/seo.astro +2 -27
  196. package/src/tool/stainChemistry/bibliography.astro +2 -10
  197. package/src/tool/stainChemistry/bibliography.ts +16 -0
  198. package/src/tool/stainChemistry/i18n/de.ts +2 -16
  199. package/src/tool/stainChemistry/i18n/en.ts +2 -16
  200. package/src/tool/stainChemistry/i18n/es.ts +2 -16
  201. package/src/tool/stainChemistry/i18n/fr.ts +2 -16
  202. package/src/tool/stainChemistry/i18n/id.ts +2 -16
  203. package/src/tool/stainChemistry/i18n/it.ts +2 -16
  204. package/src/tool/stainChemistry/i18n/ja.ts +2 -16
  205. package/src/tool/stainChemistry/i18n/ko.ts +2 -16
  206. package/src/tool/stainChemistry/i18n/nl.ts +2 -16
  207. package/src/tool/stainChemistry/i18n/pl.ts +2 -16
  208. package/src/tool/stainChemistry/i18n/pt.ts +2 -16
  209. package/src/tool/stainChemistry/i18n/ru.ts +2 -16
  210. package/src/tool/stainChemistry/i18n/sv.ts +2 -16
  211. package/src/tool/stainChemistry/i18n/tr.ts +2 -16
  212. package/src/tool/stainChemistry/i18n/zh.ts +2 -16
  213. package/src/tool/stainChemistry/index.ts +1 -0
  214. package/src/tool/stainChemistry/seo.astro +2 -27
  215. package/src/tool/yarnCalculator/bibliography.astro +2 -10
  216. package/src/tool/yarnCalculator/bibliography.ts +16 -0
  217. package/src/tool/yarnCalculator/i18n/de.ts +2 -16
  218. package/src/tool/yarnCalculator/i18n/en.ts +2 -16
  219. package/src/tool/yarnCalculator/i18n/es.ts +2 -16
  220. package/src/tool/yarnCalculator/i18n/fr.ts +2 -16
  221. package/src/tool/yarnCalculator/i18n/id.ts +2 -16
  222. package/src/tool/yarnCalculator/i18n/it.ts +2 -16
  223. package/src/tool/yarnCalculator/i18n/ja.ts +2 -16
  224. package/src/tool/yarnCalculator/i18n/ko.ts +2 -16
  225. package/src/tool/yarnCalculator/i18n/nl.ts +2 -16
  226. package/src/tool/yarnCalculator/i18n/pl.ts +2 -16
  227. package/src/tool/yarnCalculator/i18n/pt.ts +2 -16
  228. package/src/tool/yarnCalculator/i18n/ru.ts +2 -16
  229. package/src/tool/yarnCalculator/i18n/sv.ts +2 -16
  230. package/src/tool/yarnCalculator/i18n/tr.ts +2 -16
  231. package/src/tool/yarnCalculator/i18n/zh.ts +2 -16
  232. package/src/tool/yarnCalculator/index.ts +1 -0
  233. package/src/tool/yarnCalculator/seo.astro +2 -1
  234. package/src/types.ts +2 -4
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'stoffverbrauchsrechner-projekt';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Häufig gestellte Fragen',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliographie',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-project-calculator';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Frequently Asked Questions',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliography',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'calculadora-tela-proyecto';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Preguntas Frecuentes',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografía',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'calculateur-tissu-projet';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Questions Fréquentes',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliographie',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'kalkulator-kain-proyek';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Pertanyaan yang Sering Diajukan',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografi',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'calcolatrice-tessuto-progetto';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Domande Frequenti',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografia',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-project-calculator';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'よくある質問',
90
90
  faq: faqData,
91
- bibliographyTitle: '参考文献',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-project-calculator';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: '자주 묻는 질문',
90
90
  faq: faqData,
91
- bibliographyTitle: '참고 문헌',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'stofverbruik-calculator-project';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Veelgestelde Vragen',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografie',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'kalkulator-tkaniny-projekt';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Najczęściej Zadawane Pytania',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografia',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'calculadora-tecido-projeto';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Perguntas Frequentes',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografia',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'kalkulyator-tkani-proekt';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Часто задаваемые вопросы',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Библиография',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'tygatatgangskalkylator-projekt';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Vanliga frågor',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Bibliografi',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'kumas-ihtiyaci-hesaplama-proje';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: 'Sıkça Sorulan Sorular',
90
90
  faq: faqData,
91
- bibliographyTitle: 'Kaynakça',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricProjectCalculatorUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-project-calculator';
@@ -86,23 +87,8 @@ export const content: ToolLocaleContent<FabricProjectCalculatorUI> = {
86
87
  slug,
87
88
  title,
88
89
  description,
89
- faqTitle: '常见问题',
90
90
  faq: faqData,
91
- bibliographyTitle: '参考文献',
92
- bibliography: [
93
- {
94
- name: 'Fabric Estimation Guide - Threads Magazine',
95
- url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
96
- },
97
- {
98
- name: 'How much fabric do I need? - Seamwork',
99
- url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
100
- },
101
- {
102
- name: 'Standard Fabric Consumption Charts - Textile School',
103
- url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
104
- },
105
- ],
91
+ bibliography: bibliography,
106
92
  howTo: howToData,
107
93
  schemas: [faqSchema, howToSchema, appSchema],
108
94
  seo: [
@@ -1,3 +1,4 @@
1
+ import type { ToolDefinition } from '../../types';
1
2
  import { fabricProjectCalculator } from './entry';
2
3
  export * from './entry';
3
4
  export const FABRIC_PROJECT_CALCULATOR_TOOL: ToolDefinition = {
@@ -1,11 +1,5 @@
1
1
  ---
2
- import {
3
- SEOTitle,
4
- SEOCard,
5
- SEOTip,
6
- SEOList,
7
- SEOArticle
8
- } from '@jjlmoya/utils-shared';
2
+ import { SEORenderer } from '@jjlmoya/utils-shared';
9
3
  import { fabricProjectCalculator } from './index';
10
4
  import type { KnownLocale } from '../../types';
11
5
 
@@ -16,25 +10,6 @@ interface Props {
16
10
  const { locale = 'es' } = Astro.props;
17
11
  const content = await fabricProjectCalculator.i18n[locale]?.();
18
12
  if (!content) return null;
19
-
20
- const { seo } = content;
21
13
  ---
22
14
 
23
- <SEOArticle>
24
- {seo.map((section: any) => {
25
- switch (section.type) {
26
- case 'title':
27
- return <SEOTitle title={section.text} level={section.level || 2} />;
28
- case 'paragraph':
29
- return <p set:html={section.html} />;
30
- case 'list':
31
- return <SEOList items={section.items} />;
32
- case 'card':
33
- return <SEOCard title={section.title} icon={section.icon}><Fragment set:html={section.html} /></SEOCard>;
34
- case 'tip':
35
- return <SEOTip title={section.title}><Fragment set:html={section.html} /></SEOTip>;
36
- default:
37
- return null;
38
- }
39
- })}
40
- </SEOArticle>
15
+ {content.seo?.length > 0 && <SEORenderer content={{ locale, sections: content.seo }} />}
@@ -1,14 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { fabricTruth } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
-
10
- const { locale = 'es' } = Astro.props;
11
- const content = await fabricTruth.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,16 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'FTC - Textile Labeling Guide',
6
+ url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
7
+ },
8
+ {
9
+ name: 'European Commission - Textile Regulation',
10
+ url: 'https://ec.europa.eu/growth/tools-databases/nando/',
11
+ },
12
+ {
13
+ name: 'ISO 3758:2012 - Textile Care Symbols',
14
+ url: 'https://www.iso.org/standard/60465.html',
15
+ },
16
+ ];
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'textil-wahrheit-faseranalyse';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Auf links waschen', html: 'Schützt Farben und Stickereien vor der Reibung mit der Trommel und anderen Kleidungsstücken.' },
261
262
  { type: 'paragraph', html: '"Weniger kaufen, besser wählen und langlebig machen." — Dieser Analysator ist Ihr erster Schritt zu einem bewussten und hochwertigen Kleiderschrank.' },
262
263
  ],
263
- faqTitle: 'Häufig gestellte Fragen',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Literaturhinweise',
266
- bibliography: [
267
- {
268
- name: 'FTC - Leitfaden zur Textilkennzeichnung',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'Europäische Kommission - Textilregulierung',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Textilpflegesymbole',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };
@@ -1,5 +1,6 @@
1
1
  import type { WithContext, FAQPage, HowTo, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
+ import { bibliography } from '../bibliography';
3
4
  import type { FabricTruthUI } from '../ui';
4
5
 
5
6
  const slug = 'fabric-truthfulness';
@@ -260,23 +261,8 @@ export const content: ToolLocaleContent<FabricTruthUI> = {
260
261
  { type: 'tip', title: 'Inside Out Washing', html: 'Protects color and embroidery from rubbing against the drum and other garments.' },
261
262
  { type: 'paragraph', html: '"Buy less, choose better, and make it last." — This calculator is your first step towards a conscious and high-quality wardrobe.' },
262
263
  ],
263
- faqTitle: 'Frequently Asked Questions',
264
264
  faq: faqData,
265
- bibliographyTitle: 'Bibliography',
266
- bibliography: [
267
- {
268
- name: 'FTC - Textile Labeling Guide',
269
- url: 'https://www.ftc.gov/business-guidance/resources/textile-fiber-products-guides',
270
- },
271
- {
272
- name: 'European Commission - Textile Regulation',
273
- url: 'https://ec.europa.eu/growth/tools-databases/nando/',
274
- },
275
- {
276
- name: 'ISO 3758:2012 - Textile Care Symbols',
277
- url: 'https://www.iso.org/standard/60465.html',
278
- },
279
- ],
265
+ bibliography: bibliography,
280
266
  howTo: howToData,
281
267
  schemas: [faqSchema, howToSchema, appSchema],
282
268
  };