@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 { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'textil-branntest';
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: 'Vanliga frågor',
118
118
  faq: faqData,
119
- bibliographyTitle: 'Bibliografi',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  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 { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'tekstil-yakma-testi';
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: 'Sıkça Sorulan Sorular',
118
118
  faq: faqData,
119
- bibliographyTitle: 'Kaynakça',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  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 { BurnTestUI } from '../ui';
4
5
 
5
6
  const slug = 'textile-burn-test';
@@ -114,23 +115,8 @@ export const content: ToolLocaleContent<BurnTestUI> = {
114
115
  slug,
115
116
  title,
116
117
  description,
117
- faqTitle: '常见问题',
118
118
  faq: faqData,
119
- bibliographyTitle: '参考文献',
120
- bibliography: [
121
- {
122
- name: 'AATCC TM20: Fiber Analysis - Qualitative',
123
- url: 'https://members.aatcc.org/store/tm20/485/',
124
- },
125
- {
126
- name: 'Textile Fibers: Identification and Testing - NIST',
127
- url: 'https://nvlpubs.nist.gov/nistpubs/Legacy/circ/nbscircular41e3.pdf',
128
- },
129
- {
130
- name: 'Burn Test Chart for Fiber Identification - Fabric Mart',
131
- url: 'https://fabricmartfabrics.com/pages/burn-test-chart',
132
- },
133
- ],
119
+ bibliography: bibliography,
134
120
  howTo: howToData,
135
121
  schemas: [faqSchema, howToSchema, appSchema],
136
122
  seo: [
@@ -1,3 +1,4 @@
1
+ import type { ToolDefinition } from '../../types';
1
2
  import { burnTest } from './entry';
2
3
  export * from './entry';
3
4
  export const BURN_TEST_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 { burnTest } 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 burnTest.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 { clothingSizeConverter } 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 clothingSizeConverter.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,10 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ { name: 'ISO 3635: Clothing Sizes - Official Standard', url: 'https://www.iso.org/standard/68644.html' },
5
+ { name: 'Clothing Size Standards - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
6
+ {
7
+ name: 'International Clothing Size Conversion - Wikipedia',
8
+ url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
9
+ },
10
+ ];
@@ -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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'internationaler-konverter-konfektionsgroessen';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Häufig gestellte Fragen',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliographie',
212
- bibliography: [
213
- { name: 'ISO 3635: Kleidergrößen - Offizieller Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Kleidernormen - Wikipedia', url: 'https://de.wikipedia.org/wiki/Konfektionsgr%C3%B6%C3%9Fe' },
215
- {
216
- name: 'Internationale Größenumrechnung - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'clothing-size-converter';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Frequently Asked Questions',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliography',
212
- bibliography: [
213
- { name: 'ISO 3635: Clothing Sizes - Official Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Clothing Size Standards - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
215
- {
216
- name: 'International Clothing Size Conversion - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'conversor-tallas-ropa';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Preguntas Frecuentes',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografía',
212
- bibliography: [
213
- { name: 'ISO 3635: Clothing Sizes - Official Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Clothing Size Standards - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
215
- {
216
- name: 'International Clothing Size Conversion - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'convertisseur-tailles-vetements';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Questions Fréquentes',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliographie',
212
- bibliography: [
213
- { name: 'ISO 3635: Clothing Sizes - Official Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Clothing Size Standards - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
215
- {
216
- name: 'International Clothing Size Conversion - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'konverter-ukuran-pakaian-internasional';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Pertanyaan yang Sering Diajukan',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografi',
212
- bibliography: [
213
- { name: 'ISO 3635: Ukuran Pakaian - Standar Resmi', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Standar Ukuran Pakaian - Wikipedia', url: 'https://en.wikipedia.org/wiki/Clothing_size' },
215
- {
216
- name: 'Konversi Ukuran Pakaian Internasional - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'convertitore-taglie-abbigliamento-internazionale';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Domande Frequenti',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografia',
212
- bibliography: [
213
- { name: 'ISO 3635: Taglie di Abbigliamento - Standard Ufficiale', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Standard Taglie Abbigliamento - Wikipedia', url: 'https://it.wikipedia.org/wiki/Taglia_(abbigliamento)' },
215
- {
216
- name: 'Conversione Taglie Internazionali - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'clothing-size-converter';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'よくある質問',
210
210
  faq: faqData,
211
- bibliographyTitle: '参考文献',
212
- bibliography: [
213
- { name: 'ISO 3635: 衣料品サイズ - 公式標準', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: '衣料品サイズ基準 - Wikipedia', url: 'https://ja.wikipedia.org/wiki/%E8%A1%A3%E9%A1%9E%E3%81%AE%E3%82%B5%E3%82%A4%E3%82%BA' },
215
- {
216
- name: '国際的な服サイズ換算 - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'clothing-size-converter';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: '자주 묻는 질문',
210
210
  faq: faqData,
211
- bibliographyTitle: '참고 문헌',
212
- bibliography: [
213
- { name: 'ISO 3635: 의류 사이즈 - 공식 표준', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: '의류 사이즈 규격 - 위키백과', url: 'https://ko.wikipedia.org/wiki/%EC%9D%98%EB%A5%98_%EC%B9%98%EC%88%98' },
215
- {
216
- name: '국제 의류 사이즈 변환 - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'internationale-kledingmaten-omzetter';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Veelgestelde Vragen',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografie',
212
- bibliography: [
213
- { name: 'ISO 3635: Kledingmaten - Officiële Standaard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Kledingmaat Standaarden - Wikipedia', url: 'https://nl.wikipedia.org/wiki/Confectiemaat' },
215
- {
216
- name: 'Internationale Kledingmaten Conversie - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'miedzynarodowy-konwerter-rozmiarow-odziezy';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Najczęściej Zadawane Pytania',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografia',
212
- bibliography: [
213
- { name: 'ISO 3635: Rozmiary odzieży - Oficjalny standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Standardy rozmiarów ubrań - Wikipedia', url: 'https://pl.wikipedia.org/wiki/Rozmiar_odzie%C5%BCy' },
215
- {
216
- name: 'Międzynarodowa konwersja rozmiarów - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'conversor-tamanhos-roupa-internacional';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Perguntas Frequentes',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografia',
212
- bibliography: [
213
- { name: 'ISO 3635: Tamanhos de Roupa - Norma Oficial', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Normas de Tamanho de Roupa - Wikipedia', url: 'https://pt.wikipedia.org/wiki/Tamanho_de_roupa' },
215
- {
216
- name: 'Conversão de Tamanhos Internacional - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'mezhdunarodnyj-konverter-razmerov-odezhdy';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Часто задаваемые вопросы',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Библиография',
212
- bibliography: [
213
- { name: 'ISO 3635: Размеры одежды — официальный стандарт', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Стандарты размеров одежды — Википедия', url: 'https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D0%B7%D0%BC%D0%B5%D1%80_%D0%BE%D0%B4%D0%B5%D0%B6%D0%B4%D1%8B' },
215
- {
216
- name: 'Международная конвертация размеров — Википедия',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'internationell-storlekskonverterare-klader';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Vanliga frågor',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Bibliografi',
212
- bibliography: [
213
- { name: 'ISO 3635: Klädstorlekar - Officiell Standard', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Standarder för Klädstorlekar - Wikipedia', url: 'https://sv.wikipedia.org/wiki/Kl%C3%A4dstorlek' },
215
- {
216
- name: 'Internationell Storlekskonvertering - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'uluslararasi-giysi-beden-donusturucu';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: 'Sıkça Sorulan Sorular',
210
210
  faq: faqData,
211
- bibliographyTitle: 'Kaynakça',
212
- bibliography: [
213
- { name: 'ISO 3635: Giysi Bedenleri - Resmi Standart', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: 'Giysi Beden Standartları - Wikipedia', url: 'https://tr.wikipedia.org/wiki/Beden_tablosu' },
215
- {
216
- name: 'Uluslararası Beden Dönüşümü - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  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 { ClothingSizeConverterUI } from '../ui';
4
5
 
5
6
  const slug = 'clothing-size-converter';
@@ -206,17 +207,8 @@ export const content: ToolLocaleContent<ClothingSizeConverterUI> = {
206
207
  slug,
207
208
  title,
208
209
  description,
209
- faqTitle: '常见问题',
210
210
  faq: faqData,
211
- bibliographyTitle: '参考文献',
212
- bibliography: [
213
- { name: 'ISO 3635: 服装尺码 — 官方标准', url: 'https://www.iso.org/standard/68644.html' },
214
- { name: '服装尺码标准 - 维基百科', url: 'https://zh.wikipedia.org/wiki/%E8%A1%A3%E7%89%A9%E5%B0%BA%E7%A2%BC' },
215
- {
216
- name: '国际服装尺码换算 - Wikipedia',
217
- url: 'https://en.wikipedia.org/wiki/Clothing_size#International_variations',
218
- },
219
- ],
211
+ bibliography: bibliography,
220
212
  howTo: howToData,
221
213
  schemas: [faqSchema, howToSchema, appSchema],
222
214
  seo: [
@@ -1,3 +1,4 @@
1
+ import type { ToolDefinition } from '../../types';
1
2
  import { clothingSizeConverter } from './entry';
2
3
  export * from './entry';
3
4
  export const CLOTHING_SIZE_CONVERTER_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 { clothingSizeConverter } 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 clothingSizeConverter.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 { fabricProjectCalculator } 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 fabricProjectCalculator.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: 'Fabric Estimation Guide - Threads Magazine',
6
+ url: 'https://www.threadsmagazine.com/forum/measuring-fabric',
7
+ },
8
+ {
9
+ name: 'How much fabric do I need? - Seamwork',
10
+ url: 'https://www.seamwork.com/sewing-tutorials/the-anatomy-of-a-sewing-pattern',
11
+ },
12
+ {
13
+ name: 'Standard Fabric Consumption Charts - Textile School',
14
+ url: 'https://www.textileschool.com/209/fabric-consumption-in-garment-making/',
15
+ },
16
+ ];