@jjlmoya/utils-diy 1.10.0 → 1.12.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 (286) hide show
  1. package/package.json +1 -1
  2. package/src/category/index.ts +2 -1
  3. package/src/entries.ts +3 -1
  4. package/src/index.ts +2 -0
  5. package/src/pages/[locale]/[slug].astro +28 -12
  6. package/src/tests/locale_completeness.test.ts +7 -9
  7. package/src/tests/shared-test-helpers.ts +56 -0
  8. package/src/tests/tool_exports.test.ts +34 -0
  9. package/src/tests/tool_validation.test.ts +2 -2
  10. package/src/tool/balusterCalculator/baluster-calculator.css +9 -9
  11. package/src/tool/balusterCalculator/bibliography.astro +2 -10
  12. package/src/tool/balusterCalculator/bibliography.ts +16 -0
  13. package/src/tool/balusterCalculator/i18n/de.ts +2 -15
  14. package/src/tool/balusterCalculator/i18n/en.ts +2 -15
  15. package/src/tool/balusterCalculator/i18n/es.ts +2 -15
  16. package/src/tool/balusterCalculator/i18n/fr.ts +2 -15
  17. package/src/tool/balusterCalculator/i18n/id.ts +2 -15
  18. package/src/tool/balusterCalculator/i18n/it.ts +2 -15
  19. package/src/tool/balusterCalculator/i18n/ja.ts +2 -15
  20. package/src/tool/balusterCalculator/i18n/ko.ts +2 -15
  21. package/src/tool/balusterCalculator/i18n/nl.ts +2 -15
  22. package/src/tool/balusterCalculator/i18n/pl.ts +2 -15
  23. package/src/tool/balusterCalculator/i18n/pt.ts +2 -15
  24. package/src/tool/balusterCalculator/i18n/ru.ts +2 -15
  25. package/src/tool/balusterCalculator/i18n/sv.ts +2 -15
  26. package/src/tool/balusterCalculator/i18n/tr.ts +2 -15
  27. package/src/tool/balusterCalculator/i18n/zh.ts +2 -15
  28. package/src/tool/balusterCalculator/seo.astro +1 -1
  29. package/src/tool/clayCalculator/bibliography.astro +2 -10
  30. package/src/tool/clayCalculator/bibliography.ts +12 -0
  31. package/src/tool/clayCalculator/clay-shrinkage-calculator.css +30 -30
  32. package/src/tool/clayCalculator/i18n/de.ts +2 -11
  33. package/src/tool/clayCalculator/i18n/en.ts +2 -11
  34. package/src/tool/clayCalculator/i18n/es.ts +2 -11
  35. package/src/tool/clayCalculator/i18n/fr.ts +2 -11
  36. package/src/tool/clayCalculator/i18n/id.ts +2 -11
  37. package/src/tool/clayCalculator/i18n/it.ts +2 -11
  38. package/src/tool/clayCalculator/i18n/ja.ts +2 -11
  39. package/src/tool/clayCalculator/i18n/ko.ts +2 -11
  40. package/src/tool/clayCalculator/i18n/nl.ts +2 -11
  41. package/src/tool/clayCalculator/i18n/pl.ts +2 -11
  42. package/src/tool/clayCalculator/i18n/pt.ts +2 -11
  43. package/src/tool/clayCalculator/i18n/ru.ts +2 -11
  44. package/src/tool/clayCalculator/i18n/sv.ts +2 -11
  45. package/src/tool/clayCalculator/i18n/tr.ts +2 -11
  46. package/src/tool/clayCalculator/i18n/zh.ts +2 -11
  47. package/src/tool/clayCalculator/seo.astro +1 -1
  48. package/src/tool/concreteCalculator/bibliography.astro +2 -9
  49. package/src/tool/concreteCalculator/bibliography.ts +7 -0
  50. package/src/tool/concreteCalculator/concrete-mortar-calculator.css +18 -18
  51. package/src/tool/concreteCalculator/i18n/de.ts +2 -15
  52. package/src/tool/concreteCalculator/i18n/en.ts +2 -15
  53. package/src/tool/concreteCalculator/i18n/es.ts +2 -15
  54. package/src/tool/concreteCalculator/i18n/fr.ts +2 -15
  55. package/src/tool/concreteCalculator/i18n/id.ts +2 -15
  56. package/src/tool/concreteCalculator/i18n/it.ts +2 -15
  57. package/src/tool/concreteCalculator/i18n/ja.ts +2 -15
  58. package/src/tool/concreteCalculator/i18n/ko.ts +2 -15
  59. package/src/tool/concreteCalculator/i18n/nl.ts +2 -15
  60. package/src/tool/concreteCalculator/i18n/pl.ts +2 -15
  61. package/src/tool/concreteCalculator/i18n/pt.ts +2 -15
  62. package/src/tool/concreteCalculator/i18n/ru.ts +2 -15
  63. package/src/tool/concreteCalculator/i18n/sv.ts +2 -15
  64. package/src/tool/concreteCalculator/i18n/tr.ts +2 -15
  65. package/src/tool/concreteCalculator/i18n/zh.ts +2 -15
  66. package/src/tool/concreteCalculator/seo.astro +2 -1
  67. package/src/tool/cutOptimizer/bibliography.astro +2 -9
  68. package/src/tool/cutOptimizer/bibliography.ts +12 -0
  69. package/src/tool/cutOptimizer/cut-optimizer.css +25 -25
  70. package/src/tool/cutOptimizer/i18n/de.ts +2 -11
  71. package/src/tool/cutOptimizer/i18n/en.ts +2 -11
  72. package/src/tool/cutOptimizer/i18n/es.ts +2 -11
  73. package/src/tool/cutOptimizer/i18n/fr.ts +2 -11
  74. package/src/tool/cutOptimizer/i18n/id.ts +2 -11
  75. package/src/tool/cutOptimizer/i18n/it.ts +2 -11
  76. package/src/tool/cutOptimizer/i18n/ja.ts +2 -11
  77. package/src/tool/cutOptimizer/i18n/ko.ts +2 -11
  78. package/src/tool/cutOptimizer/i18n/nl.ts +2 -11
  79. package/src/tool/cutOptimizer/i18n/pl.ts +2 -11
  80. package/src/tool/cutOptimizer/i18n/pt.ts +2 -11
  81. package/src/tool/cutOptimizer/i18n/ru.ts +2 -11
  82. package/src/tool/cutOptimizer/i18n/sv.ts +2 -11
  83. package/src/tool/cutOptimizer/i18n/tr.ts +2 -11
  84. package/src/tool/cutOptimizer/i18n/zh.ts +2 -11
  85. package/src/tool/cutOptimizer/seo.astro +2 -1
  86. package/src/tool/drillCalculator/bibliography.astro +2 -9
  87. package/src/tool/drillCalculator/bibliography.ts +12 -0
  88. package/src/tool/drillCalculator/drill-rpm-calculator.css +57 -57
  89. package/src/tool/drillCalculator/i18n/de.ts +2 -5
  90. package/src/tool/drillCalculator/i18n/en.ts +2 -5
  91. package/src/tool/drillCalculator/i18n/es.ts +2 -5
  92. package/src/tool/drillCalculator/i18n/fr.ts +2 -5
  93. package/src/tool/drillCalculator/i18n/id.ts +2 -5
  94. package/src/tool/drillCalculator/i18n/it.ts +2 -5
  95. package/src/tool/drillCalculator/i18n/ja.ts +2 -5
  96. package/src/tool/drillCalculator/i18n/ko.ts +2 -5
  97. package/src/tool/drillCalculator/i18n/nl.ts +2 -5
  98. package/src/tool/drillCalculator/i18n/pl.ts +2 -5
  99. package/src/tool/drillCalculator/i18n/pt.ts +2 -5
  100. package/src/tool/drillCalculator/i18n/ru.ts +2 -5
  101. package/src/tool/drillCalculator/i18n/sv.ts +2 -5
  102. package/src/tool/drillCalculator/i18n/tr.ts +2 -5
  103. package/src/tool/drillCalculator/i18n/zh.ts +2 -5
  104. package/src/tool/drillCalculator/seo.astro +2 -1
  105. package/src/tool/drillSharpener/bibliography.astro +2 -9
  106. package/src/tool/drillSharpener/bibliography.ts +16 -0
  107. package/src/tool/drillSharpener/drill-sharpening-master.css +1 -1
  108. package/src/tool/drillSharpener/i18n/de.ts +2 -5
  109. package/src/tool/drillSharpener/i18n/en.ts +2 -6
  110. package/src/tool/drillSharpener/i18n/es.ts +2 -6
  111. package/src/tool/drillSharpener/i18n/fr.ts +2 -6
  112. package/src/tool/drillSharpener/i18n/id.ts +2 -5
  113. package/src/tool/drillSharpener/i18n/it.ts +2 -5
  114. package/src/tool/drillSharpener/i18n/ja.ts +2 -5
  115. package/src/tool/drillSharpener/i18n/ko.ts +2 -5
  116. package/src/tool/drillSharpener/i18n/nl.ts +2 -5
  117. package/src/tool/drillSharpener/i18n/pl.ts +2 -5
  118. package/src/tool/drillSharpener/i18n/pt.ts +2 -5
  119. package/src/tool/drillSharpener/i18n/ru.ts +2 -5
  120. package/src/tool/drillSharpener/i18n/sv.ts +2 -5
  121. package/src/tool/drillSharpener/i18n/tr.ts +2 -5
  122. package/src/tool/drillSharpener/i18n/zh.ts +2 -5
  123. package/src/tool/drillSharpener/seo.astro +2 -1
  124. package/src/tool/epoxyCalculator/bibliography.astro +2 -10
  125. package/src/tool/epoxyCalculator/bibliography.ts +20 -0
  126. package/src/tool/epoxyCalculator/epoxy-resin-calculator.css +13 -13
  127. package/src/tool/epoxyCalculator/i18n/de.ts +2 -5
  128. package/src/tool/epoxyCalculator/i18n/en.ts +2 -19
  129. package/src/tool/epoxyCalculator/i18n/es.ts +2 -19
  130. package/src/tool/epoxyCalculator/i18n/fr.ts +2 -19
  131. package/src/tool/epoxyCalculator/i18n/id.ts +2 -5
  132. package/src/tool/epoxyCalculator/i18n/it.ts +2 -5
  133. package/src/tool/epoxyCalculator/i18n/ja.ts +2 -5
  134. package/src/tool/epoxyCalculator/i18n/ko.ts +2 -5
  135. package/src/tool/epoxyCalculator/i18n/nl.ts +2 -5
  136. package/src/tool/epoxyCalculator/i18n/pl.ts +2 -5
  137. package/src/tool/epoxyCalculator/i18n/pt.ts +2 -5
  138. package/src/tool/epoxyCalculator/i18n/ru.ts +2 -5
  139. package/src/tool/epoxyCalculator/i18n/sv.ts +2 -5
  140. package/src/tool/epoxyCalculator/i18n/tr.ts +2 -5
  141. package/src/tool/epoxyCalculator/i18n/zh.ts +2 -5
  142. package/src/tool/epoxyCalculator/seo.astro +1 -1
  143. package/src/tool/furnitureFit/bibliography.astro +2 -9
  144. package/src/tool/furnitureFit/bibliography.ts +12 -0
  145. package/src/tool/furnitureFit/furniture-fit-calculator.css +7 -7
  146. package/src/tool/furnitureFit/i18n/de.ts +2 -5
  147. package/src/tool/furnitureFit/i18n/en.ts +2 -5
  148. package/src/tool/furnitureFit/i18n/es.ts +2 -5
  149. package/src/tool/furnitureFit/i18n/fr.ts +2 -5
  150. package/src/tool/furnitureFit/i18n/id.ts +2 -5
  151. package/src/tool/furnitureFit/i18n/it.ts +2 -5
  152. package/src/tool/furnitureFit/i18n/ja.ts +2 -5
  153. package/src/tool/furnitureFit/i18n/ko.ts +2 -5
  154. package/src/tool/furnitureFit/i18n/nl.ts +2 -5
  155. package/src/tool/furnitureFit/i18n/pl.ts +2 -5
  156. package/src/tool/furnitureFit/i18n/pt.ts +2 -5
  157. package/src/tool/furnitureFit/i18n/ru.ts +2 -5
  158. package/src/tool/furnitureFit/i18n/sv.ts +2 -5
  159. package/src/tool/furnitureFit/i18n/tr.ts +2 -5
  160. package/src/tool/furnitureFit/i18n/zh.ts +2 -5
  161. package/src/tool/furnitureFit/seo.astro +2 -1
  162. package/src/tool/mortarCalculator/bibliography.astro +2 -9
  163. package/src/tool/mortarCalculator/bibliography.ts +20 -0
  164. package/src/tool/mortarCalculator/i18n/de.ts +2 -5
  165. package/src/tool/mortarCalculator/i18n/en.ts +2 -19
  166. package/src/tool/mortarCalculator/i18n/es.ts +2 -19
  167. package/src/tool/mortarCalculator/i18n/fr.ts +2 -19
  168. package/src/tool/mortarCalculator/i18n/id.ts +2 -5
  169. package/src/tool/mortarCalculator/i18n/it.ts +2 -5
  170. package/src/tool/mortarCalculator/i18n/ja.ts +2 -5
  171. package/src/tool/mortarCalculator/i18n/ko.ts +2 -5
  172. package/src/tool/mortarCalculator/i18n/nl.ts +2 -5
  173. package/src/tool/mortarCalculator/i18n/pl.ts +2 -5
  174. package/src/tool/mortarCalculator/i18n/pt.ts +2 -5
  175. package/src/tool/mortarCalculator/i18n/ru.ts +2 -5
  176. package/src/tool/mortarCalculator/i18n/sv.ts +2 -5
  177. package/src/tool/mortarCalculator/i18n/tr.ts +2 -5
  178. package/src/tool/mortarCalculator/i18n/zh.ts +2 -5
  179. package/src/tool/mortarCalculator/lime-mortar-calculator.css +30 -30
  180. package/src/tool/mortarCalculator/seo.astro +2 -1
  181. package/src/tool/passepartoutCalculator/bibliography.astro +2 -9
  182. package/src/tool/passepartoutCalculator/bibliography.ts +16 -0
  183. package/src/tool/passepartoutCalculator/i18n/de.ts +2 -6
  184. package/src/tool/passepartoutCalculator/i18n/en.ts +2 -15
  185. package/src/tool/passepartoutCalculator/i18n/es.ts +2 -15
  186. package/src/tool/passepartoutCalculator/i18n/fr.ts +2 -15
  187. package/src/tool/passepartoutCalculator/i18n/id.ts +2 -6
  188. package/src/tool/passepartoutCalculator/i18n/it.ts +2 -6
  189. package/src/tool/passepartoutCalculator/i18n/ja.ts +2 -6
  190. package/src/tool/passepartoutCalculator/i18n/ko.ts +2 -6
  191. package/src/tool/passepartoutCalculator/i18n/nl.ts +2 -6
  192. package/src/tool/passepartoutCalculator/i18n/pl.ts +2 -6
  193. package/src/tool/passepartoutCalculator/i18n/pt.ts +2 -6
  194. package/src/tool/passepartoutCalculator/i18n/ru.ts +2 -6
  195. package/src/tool/passepartoutCalculator/i18n/sv.ts +2 -6
  196. package/src/tool/passepartoutCalculator/i18n/tr.ts +2 -6
  197. package/src/tool/passepartoutCalculator/i18n/zh.ts +2 -6
  198. package/src/tool/passepartoutCalculator/passepartout-calculator.css +26 -26
  199. package/src/tool/passepartoutCalculator/seo.astro +2 -1
  200. package/src/tool/stairCalculator/bibliography.astro +2 -9
  201. package/src/tool/stairCalculator/bibliography.ts +16 -0
  202. package/src/tool/stairCalculator/i18n/de.ts +2 -5
  203. package/src/tool/stairCalculator/i18n/en.ts +2 -6
  204. package/src/tool/stairCalculator/i18n/es.ts +2 -6
  205. package/src/tool/stairCalculator/i18n/fr.ts +2 -6
  206. package/src/tool/stairCalculator/i18n/id.ts +2 -5
  207. package/src/tool/stairCalculator/i18n/it.ts +2 -5
  208. package/src/tool/stairCalculator/i18n/ja.ts +2 -5
  209. package/src/tool/stairCalculator/i18n/ko.ts +2 -5
  210. package/src/tool/stairCalculator/i18n/nl.ts +2 -5
  211. package/src/tool/stairCalculator/i18n/pl.ts +2 -5
  212. package/src/tool/stairCalculator/i18n/pt.ts +2 -5
  213. package/src/tool/stairCalculator/i18n/ru.ts +2 -5
  214. package/src/tool/stairCalculator/i18n/sv.ts +2 -5
  215. package/src/tool/stairCalculator/i18n/tr.ts +2 -5
  216. package/src/tool/stairCalculator/i18n/zh.ts +2 -5
  217. package/src/tool/stairCalculator/seo.astro +2 -1
  218. package/src/tool/stairCalculator/stair-calculator.css +10 -10
  219. package/src/tool/thermalExpansionCalculator/bibliography.astro +2 -9
  220. package/src/tool/thermalExpansionCalculator/bibliography.ts +16 -0
  221. package/src/tool/thermalExpansionCalculator/i18n/de.ts +2 -6
  222. package/src/tool/thermalExpansionCalculator/i18n/en.ts +2 -6
  223. package/src/tool/thermalExpansionCalculator/i18n/es.ts +2 -6
  224. package/src/tool/thermalExpansionCalculator/i18n/fr.ts +2 -6
  225. package/src/tool/thermalExpansionCalculator/i18n/id.ts +2 -6
  226. package/src/tool/thermalExpansionCalculator/i18n/it.ts +2 -6
  227. package/src/tool/thermalExpansionCalculator/i18n/ja.ts +2 -6
  228. package/src/tool/thermalExpansionCalculator/i18n/ko.ts +2 -6
  229. package/src/tool/thermalExpansionCalculator/i18n/nl.ts +2 -6
  230. package/src/tool/thermalExpansionCalculator/i18n/pl.ts +2 -6
  231. package/src/tool/thermalExpansionCalculator/i18n/pt.ts +2 -6
  232. package/src/tool/thermalExpansionCalculator/i18n/ru.ts +2 -6
  233. package/src/tool/thermalExpansionCalculator/i18n/sv.ts +2 -6
  234. package/src/tool/thermalExpansionCalculator/i18n/tr.ts +2 -6
  235. package/src/tool/thermalExpansionCalculator/i18n/zh.ts +2 -6
  236. package/src/tool/thermalExpansionCalculator/seo.astro +2 -1
  237. package/src/tool/thermalExpansionCalculator/thermal-expansion-calculator.css +19 -19
  238. package/src/tool/voltageDropCalculator/bibliography.astro +2 -9
  239. package/src/tool/voltageDropCalculator/bibliography.ts +16 -0
  240. package/src/tool/voltageDropCalculator/i18n/de.ts +2 -5
  241. package/src/tool/voltageDropCalculator/i18n/en.ts +2 -6
  242. package/src/tool/voltageDropCalculator/i18n/es.ts +2 -6
  243. package/src/tool/voltageDropCalculator/i18n/fr.ts +2 -6
  244. package/src/tool/voltageDropCalculator/i18n/id.ts +2 -5
  245. package/src/tool/voltageDropCalculator/i18n/it.ts +2 -5
  246. package/src/tool/voltageDropCalculator/i18n/ja.ts +2 -5
  247. package/src/tool/voltageDropCalculator/i18n/ko.ts +2 -5
  248. package/src/tool/voltageDropCalculator/i18n/nl.ts +2 -5
  249. package/src/tool/voltageDropCalculator/i18n/pl.ts +2 -5
  250. package/src/tool/voltageDropCalculator/i18n/pt.ts +2 -5
  251. package/src/tool/voltageDropCalculator/i18n/ru.ts +2 -5
  252. package/src/tool/voltageDropCalculator/i18n/sv.ts +2 -5
  253. package/src/tool/voltageDropCalculator/i18n/tr.ts +2 -5
  254. package/src/tool/voltageDropCalculator/i18n/zh.ts +2 -5
  255. package/src/tool/voltageDropCalculator/seo.astro +2 -1
  256. package/src/tool/voltageDropCalculator/voltage-drop-calculator.css +24 -24
  257. package/src/tool/workshopFractionConverter/bibliography.astro +6 -0
  258. package/src/tool/workshopFractionConverter/bibliography.ts +12 -0
  259. package/src/tool/workshopFractionConverter/client.ts +183 -0
  260. package/src/tool/workshopFractionConverter/component.astro +226 -0
  261. package/src/tool/workshopFractionConverter/converter.ts +110 -0
  262. package/src/tool/workshopFractionConverter/engine.ts +223 -0
  263. package/src/tool/workshopFractionConverter/entry.ts +24 -0
  264. package/src/tool/workshopFractionConverter/i18n/de.ts +141 -0
  265. package/src/tool/workshopFractionConverter/i18n/en.ts +141 -0
  266. package/src/tool/workshopFractionConverter/i18n/es.ts +141 -0
  267. package/src/tool/workshopFractionConverter/i18n/fr.ts +141 -0
  268. package/src/tool/workshopFractionConverter/i18n/id.ts +141 -0
  269. package/src/tool/workshopFractionConverter/i18n/it.ts +141 -0
  270. package/src/tool/workshopFractionConverter/i18n/ja.ts +141 -0
  271. package/src/tool/workshopFractionConverter/i18n/ko.ts +141 -0
  272. package/src/tool/workshopFractionConverter/i18n/nl.ts +141 -0
  273. package/src/tool/workshopFractionConverter/i18n/pl.ts +141 -0
  274. package/src/tool/workshopFractionConverter/i18n/pt.ts +141 -0
  275. package/src/tool/workshopFractionConverter/i18n/ru.ts +141 -0
  276. package/src/tool/workshopFractionConverter/i18n/sv.ts +141 -0
  277. package/src/tool/workshopFractionConverter/i18n/tr.ts +141 -0
  278. package/src/tool/workshopFractionConverter/i18n/zh.ts +141 -0
  279. package/src/tool/workshopFractionConverter/index.ts +11 -0
  280. package/src/tool/workshopFractionConverter/seo.astro +15 -0
  281. package/src/tool/workshopFractionConverter/types-client.ts +89 -0
  282. package/src/tool/workshopFractionConverter/ui-updater.ts +94 -0
  283. package/src/tool/workshopFractionConverter/ui.ts +38 -0
  284. package/src/tool/workshopFractionConverter/workshop-fraction-converter.css +563 -0
  285. package/src/tools.ts +2 -1
  286. package/src/types.ts +1 -1
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { BalusterCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-balaustres';
6
7
  const title = 'Calculadora de Balaústres: Espaçamento Exato para Guardas';
@@ -89,21 +90,7 @@ export const content: ToolLocaleContent<BalusterCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Perguntas Frequentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referências Técnicas',
93
- bibliography: [
94
- {
95
- name: 'RGEU - Regulamento Geral das Edificações Urbanas (Portugal)',
96
- url: 'https://DiariodaRepublica.pt/',
97
- },
98
- {
99
- name: 'IRC - International Residential Code (EUA)',
100
- url: 'https://codes.iccsafe.org/content/IRC2021',
101
- },
102
- {
103
- name: 'IBC - International Building Code',
104
- url: 'https://codes.iccsafe.org/content/IBC2021',
105
- },
106
- ],
93
+ bibliography,
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { BalusterCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-balyasin';
6
7
  const title = 'Калькулятор балясин: Точный расчет расстояния для ограждений';
@@ -89,21 +90,7 @@ export const content: ToolLocaleContent<BalusterCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Часто задаваемые вопросы',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Технические справочники',
93
- bibliography: [
94
- {
95
- name: 'ГОСТ 25772-2021 Ограждения лестниц, балконов и крыш стальные',
96
- url: 'https://docs.cntd.ru/',
97
- },
98
- {
99
- name: 'IRC - International Residential Code (США)',
100
- url: 'https://codes.iccsafe.org/content/IRC2021',
101
- },
102
- {
103
- name: 'IBC - International Building Code',
104
- url: 'https://codes.iccsafe.org/content/IBC2021',
105
- },
106
- ],
93
+ bibliography,
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { BalusterCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'baluster-kalkylator';
6
7
  const title = 'Baluster kalkylator: Exakt avstånd för räcken';
@@ -89,21 +90,7 @@ export const content: ToolLocaleContent<BalusterCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Vanliga frågor',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Tekniska referenser',
93
- bibliography: [
94
- {
95
- name: 'Boverket - Regler för räcken (Sverige)',
96
- url: 'https://www.boverket.se/',
97
- },
98
- {
99
- name: 'IRC - International Residential Code (USA)',
100
- url: 'https://codes.iccsafe.org/content/IRC2021',
101
- },
102
- {
103
- name: 'IBC - International Building Code',
104
- url: 'https://codes.iccsafe.org/content/IBC2021',
105
- },
106
- ],
93
+ bibliography,
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { BalusterCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'korkuluk-hesaplama';
6
7
  const title = 'Korkuluk Hesaplayıcı: Korkuluklar İçin Tam Boşluk Hesabı';
@@ -89,21 +90,7 @@ export const content: ToolLocaleContent<BalusterCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Sıkça Sorulan Sorular',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Teknik Referanslar',
93
- bibliography: [
94
- {
95
- name: 'TS 9111 - Özürlülerin İkamet Edeceği Binaların Düzenlenmesi Kuralları (Türkiye)',
96
- url: 'https://www.tse.org.tr/',
97
- },
98
- {
99
- name: 'IRC - International Residential Code (ABD)',
100
- url: 'https://codes.iccsafe.org/content/IRC2021',
101
- },
102
- {
103
- name: 'IBC - International Building Code',
104
- url: 'https://codes.iccsafe.org/content/IBC2021',
105
- },
106
- ],
93
+ bibliography,
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { BalusterCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'baluster-calculator';
6
7
  const title = '楼梯护栏子柱计算器:精确间距计算';
@@ -89,21 +90,7 @@ export const content: ToolLocaleContent<BalusterCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: '常见问题',
91
92
  faq: faqData,
92
- bibliographyTitle: '技术参考',
93
- bibliography: [
94
- {
95
- name: '住宅建筑规范 (中国)',
96
- url: 'https://www.mohurd.gov.cn/',
97
- },
98
- {
99
- name: 'IRC - 国际住宅规范 (美国)',
100
- url: 'https://codes.iccsafe.org/content/IRC2021',
101
- },
102
- {
103
- name: 'IBC - 国际建筑规范',
104
- url: 'https://codes.iccsafe.org/content/IBC2021',
105
- },
106
- ],
93
+ bibliography,
107
94
  howTo: howToData,
108
95
  schemas: [faqSchema, howToSchema, appSchema],
109
96
  seo: [
@@ -12,4 +12,4 @@ const content = await balusterCalculator.i18n[locale]?.();
12
12
  if (!content) return null;
13
13
  ---
14
14
 
15
- <SEORenderer content={{ locale: locale as string, sections: content.seo }} />
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 { clayCalculator } 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 clayCalculator.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,12 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: "The Potter's Dictionary - Clay Shrinkage",
6
+ url: 'https://digitalfire.com/glossary/firing+shrinkage',
7
+ },
8
+ {
9
+ name: 'Ceramic Arts Network - Understanding Shrinkage',
10
+ url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
11
+ },
12
+ ];
@@ -394,137 +394,137 @@
394
394
  color: #047857;
395
395
  }
396
396
 
397
- :global(.theme-dark) .cc-root {
397
+ .theme-dark .cc-root {
398
398
  background: linear-gradient(135deg, #0f172a, #1e293b);
399
399
  border-color: #334155;
400
400
  }
401
401
 
402
- :global(.theme-dark) .cc-label {
402
+ .theme-dark .cc-label {
403
403
  color: #fbbf24;
404
404
  }
405
405
 
406
- :global(.theme-dark) .cc-input {
406
+ .theme-dark .cc-input {
407
407
  background: #1e293b;
408
408
  border-color: #b45309;
409
409
  color: #f8fafc;
410
410
  }
411
411
 
412
- :global(.theme-dark) .cc-input:focus {
412
+ .theme-dark .cc-input:focus {
413
413
  border-color: #f59e0b;
414
414
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.15);
415
415
  }
416
416
 
417
- :global(.theme-dark) .cc-slider {
417
+ .theme-dark .cc-slider {
418
418
  background: rgba(180, 83, 9, 0.3);
419
419
  }
420
420
 
421
- :global(.theme-dark) .cc-slider-val {
421
+ .theme-dark .cc-slider-val {
422
422
  color: #fbbf24;
423
423
  }
424
424
 
425
- :global(.theme-dark) .cc-slider-labels {
425
+ .theme-dark .cc-slider-labels {
426
426
  color: #d97706;
427
427
  }
428
428
 
429
- :global(.theme-dark) .cc-preset-terracota {
429
+ .theme-dark .cc-preset-terracota {
430
430
  background: rgba(249, 115, 22, 0.15);
431
431
  border-color: #c2410c;
432
432
  color: #fb923c;
433
433
  }
434
434
 
435
- :global(.theme-dark) .cc-preset-terracota:hover {
435
+ .theme-dark .cc-preset-terracota:hover {
436
436
  background: rgba(249, 115, 22, 0.25);
437
437
  }
438
438
 
439
- :global(.theme-dark) .cc-preset-gres {
439
+ .theme-dark .cc-preset-gres {
440
440
  background: rgba(245, 158, 11, 0.15);
441
441
  border-color: #b45309;
442
442
  color: #fbbf24;
443
443
  }
444
444
 
445
- :global(.theme-dark) .cc-preset-gres:hover {
445
+ .theme-dark .cc-preset-gres:hover {
446
446
  background: rgba(245, 158, 11, 0.25);
447
447
  }
448
448
 
449
- :global(.theme-dark) .cc-preset-porcelana {
449
+ .theme-dark .cc-preset-porcelana {
450
450
  background: rgba(220, 38, 38, 0.15);
451
451
  border-color: #991b1b;
452
452
  color: #f87171;
453
453
  }
454
454
 
455
- :global(.theme-dark) .cc-preset-porcelana:hover {
455
+ .theme-dark .cc-preset-porcelana:hover {
456
456
  background: rgba(220, 38, 38, 0.25);
457
457
  }
458
458
 
459
- :global(.theme-dark) .cc-result-box {
459
+ .theme-dark .cc-result-box {
460
460
  background: #1e293b;
461
461
  border-color: #b45309;
462
462
  }
463
463
 
464
- :global(.theme-dark) .cc-result-title {
464
+ .theme-dark .cc-result-title {
465
465
  color: #fbbf24;
466
466
  }
467
467
 
468
- :global(.theme-dark) .cc-result-label {
468
+ .theme-dark .cc-result-label {
469
469
  color: #94a3b8;
470
470
  }
471
471
 
472
- :global(.theme-dark) .cc-value-final {
472
+ .theme-dark .cc-value-final {
473
473
  color: #34d399;
474
474
  }
475
475
 
476
- :global(.theme-dark) .cc-value-loss {
476
+ .theme-dark .cc-value-loss {
477
477
  color: #f87171;
478
478
  }
479
479
 
480
- :global(.theme-dark) .cc-tip {
480
+ .theme-dark .cc-tip {
481
481
  background: rgba(180, 83, 9, 0.15);
482
482
  border-color: rgba(180, 83, 9, 0.4);
483
483
  color: #fbbf24;
484
484
  }
485
485
 
486
- :global(.theme-dark) .cc-panel-right {
486
+ .theme-dark .cc-panel-right {
487
487
  background: linear-gradient(135deg, #1e293b, #0f172a);
488
488
  }
489
489
 
490
- :global(.theme-dark) .cc-circle-initial {
490
+ .theme-dark .cc-circle-initial {
491
491
  border-color: #b45309;
492
492
  background: rgba(180, 83, 9, 0.1);
493
493
  }
494
494
 
495
- :global(.theme-dark) .cc-badge-initial {
495
+ .theme-dark .cc-badge-initial {
496
496
  background: #d97706;
497
497
  }
498
498
 
499
- :global(.theme-dark) .cc-circle-final {
499
+ .theme-dark .cc-circle-final {
500
500
  border-color: #10b981;
501
501
  background: rgba(16, 185, 129, 0.2);
502
502
  }
503
503
 
504
- :global(.theme-dark) .cc-viz-number {
504
+ .theme-dark .cc-viz-number {
505
505
  color: #6ee7b7;
506
506
  }
507
507
 
508
- :global(.theme-dark) .cc-viz-unit {
508
+ .theme-dark .cc-viz-unit {
509
509
  color: #34d399;
510
510
  }
511
511
 
512
- :global(.theme-dark) .cc-badge-loss {
512
+ .theme-dark .cc-badge-loss {
513
513
  background: #ef4444;
514
514
  }
515
515
 
516
- :global(.theme-dark) .cc-area-item {
516
+ .theme-dark .cc-area-item {
517
517
  background: rgba(30, 41, 59, 0.6);
518
518
  }
519
519
 
520
- :global(.theme-dark) .cc-area-label {
520
+ .theme-dark .cc-area-label {
521
521
  color: #94a3b8;
522
522
  }
523
523
 
524
- :global(.theme-dark) .cc-area-initial {
524
+ .theme-dark .cc-area-initial {
525
525
  color: #fbbf24;
526
526
  }
527
527
 
528
- :global(.theme-dark) .cc-area-final {
528
+ .theme-dark .cc-area-final {
529
529
  color: #34d399;
530
530
  }
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'ton-schwindungsrechner';
6
7
  const title = 'Ton Schwindungsrechner: Exakte Maße für Keramik';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Häufig gestellte Fragen',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referenzen',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'clay-shrinkage-calculator';
6
7
  const title = 'Clay Shrinkage Calculator: Exact Dimensions for Ceramics';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Frequently Asked Questions',
91
92
  faq: faqData,
92
- bibliographyTitle: 'References',
93
- bibliography: [
94
- {
95
- name: "The Potter's Dictionary - Clay Shrinkage",
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-arcilla';
6
7
  const title = 'Calculadora de Contracción de Arcilla: Dimensiones Exactas para Cerámica';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Preguntas Frecuentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referencias',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-retrait-argile';
6
7
  const title = "Calculateur de Retrait d'Argile : Dimensions Exactes pour la Céramique";
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Questions Fréquentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Références',
93
- bibliography: [
94
- {
95
- name: "The Potter's Dictionary - Clay Shrinkage",
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-penyusutan-tanah-liat';
6
7
  const title = 'Kalkulator Penyusutan Tanah Liat: Dimensi Tepat untuk Keramik';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Pertanyaan Umum',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referensi',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calcolatrice-argilla';
6
7
  const title = 'Calcolatrice Restringimento Argilla: Dimensioni Esatte per Ceramica';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Domande Frequenti',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Riferimenti',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'clay-shrinkage-calculator';
6
7
  const title = '粘土収縮計算機:陶芸のための正確な寸法設計';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'よくある質問',
91
92
  faq: faqData,
92
- bibliographyTitle: 'リファレンス',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'clay-shrinkage-calculator';
6
7
  const title = '점토 수축 계산기: 도예를 위한 정확한 치수 설계';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: '자주 묻는 질문',
91
92
  faq: faqData,
92
- bibliographyTitle: '참고 자료',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'klei-krimp-calculator';
6
7
  const title = 'Klei Krimp Calculator: Exacte Afmetingen voor Keramiek';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Veelgestelde Vragen',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referenties',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-kurczliwosci-gliny';
6
7
  const title = 'Kalkulator Kurczliwości Gliny: Dokładne Wymiary dla Ceramiki';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Często Zadawane Pytania',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referencje',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [
@@ -1,6 +1,7 @@
1
1
  import type { WithContext, FAQPage, HowToThing, SoftwareApplication } from 'schema-dts';
2
2
  import type { ToolLocaleContent } from '../../../types';
3
3
  import type { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-argila';
6
7
  const title = 'Calculadora de Contração de Argila: Dimensões Exatas para Cerâmica';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Perguntas Frequentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referências',
93
- bibliography: [
94
- {
95
- name: 'The Potter\'s Dictionary - Clay Shrinkage',
96
- url: 'https://digitalfire.com/glossary/firing+shrinkage',
97
- },
98
- {
99
- name: 'Ceramic Arts Network - Understanding Shrinkage',
100
- url: 'https://ceramicartsnetwork.org/daily/article/How-to-Determine-Clay-Shrinkage-and-Make-a-Shrink-Rule',
101
- },
102
- ],
93
+ bibliography,
103
94
  howTo: howToData,
104
95
  schemas: [faqSchema, howToSchema, appSchema],
105
96
  seo: [