@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 { ClayCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-usadki-gliny';
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 = 'lerkrympskalkylator';
6
7
  const title = 'Lerkrympskalkylator: Exakta dimensioner för keramik';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Vanliga frågor',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referenser',
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 = 'kil-cekme-hesaplama';
6
7
  const title = 'Kil Çekme Hesaplayıcı: Seramik İçin Tam Boyutlar';
@@ -89,17 +90,7 @@ export const content: ToolLocaleContent<ClayCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Sıkça Sorulan Sorular',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referanslar',
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: [
@@ -12,4 +12,4 @@ const content = await clayCalculator.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,13 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { concreteCalculator } from './index';
4
- import type { KnownLocale } from '../../types';
5
-
6
- interface Props {
7
- locale?: KnownLocale;
8
- }
9
- const { locale = 'es' } = Astro.props;
10
- const content = await concreteCalculator.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
11
4
  ---
12
5
 
13
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,7 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ { name: 'Código Estructural (EHE-08): Normativa de Hormigón', url: 'https://www.boe.es/buscar/doc.php?id=BOE-A-2021-12906' },
5
+ { name: 'Concrete Mix Proportioning Standards (ASTM)', url: 'https://store.astm.org/astm-bos-04.02.html' },
6
+ { name: 'Guía de Dosificación de Morteros de Cemento', url: 'https://es.wikipedia.org/wiki/Mortero_(construcci%C3%B3n)' },
7
+ ];
@@ -29,7 +29,7 @@
29
29
  }
30
30
  }
31
31
 
32
- :global(.theme-dark) .cc-card {
32
+ .theme-dark .cc-card {
33
33
  background: rgba(15, 23, 42, 0.7);
34
34
  border: 1px solid rgba(255, 255, 255, 0.05);
35
35
  }
@@ -54,7 +54,7 @@
54
54
  color: #64748b;
55
55
  }
56
56
 
57
- :global(.theme-dark) .cc-mix-btn {
57
+ .theme-dark .cc-mix-btn {
58
58
  background: rgba(30, 41, 59, 0.5);
59
59
  }
60
60
 
@@ -76,7 +76,7 @@
76
76
  transform: translateY(-2px);
77
77
  }
78
78
 
79
- :global(.theme-dark) .cc-mix-btn.cc-active {
79
+ .theme-dark .cc-mix-btn.cc-active {
80
80
  background: rgba(34, 197, 94, 0.1);
81
81
  color: #4ade80;
82
82
  }
@@ -96,7 +96,7 @@
96
96
  align-self: flex-start;
97
97
  }
98
98
 
99
- :global(.theme-dark) .cc-mode-selector {
99
+ .theme-dark .cc-mode-selector {
100
100
  background: rgba(30, 41, 59, 0.8);
101
101
  }
102
102
 
@@ -126,7 +126,7 @@
126
126
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
127
127
  }
128
128
 
129
- :global(.theme-dark) .cc-mode-btn.cc-active {
129
+ .theme-dark .cc-mode-btn.cc-active {
130
130
  background: #1e293b;
131
131
  color: #fff;
132
132
  }
@@ -151,7 +151,7 @@
151
151
  flex-direction: column;
152
152
  }
153
153
 
154
- :global(.theme-dark) .cc-dims-panel.cc-active {
154
+ .theme-dark .cc-dims-panel.cc-active {
155
155
  background: rgba(30, 41, 59, 0.3);
156
156
  border-color: #334155;
157
157
  }
@@ -193,7 +193,7 @@
193
193
  outline: none;
194
194
  }
195
195
 
196
- :global(.theme-dark) .cc-dim-input-wrap input {
196
+ .theme-dark .cc-dim-input-wrap input {
197
197
  background: #0f172a;
198
198
  border-color: #1e293b;
199
199
  color: #fff;
@@ -239,7 +239,7 @@
239
239
  transition: all 0.2s ease;
240
240
  }
241
241
 
242
- :global(.theme-dark) .cc-vol-input-wrap input {
242
+ .theme-dark .cc-vol-input-wrap input {
243
243
  background: #0f172a;
244
244
  border-color: #1e293b;
245
245
  color: #fff;
@@ -277,7 +277,7 @@
277
277
  transition: all 0.2s ease;
278
278
  }
279
279
 
280
- :global(.theme-dark) .cc-binder-option {
280
+ .theme-dark .cc-binder-option {
281
281
  background: rgba(30, 41, 59, 0.5);
282
282
  }
283
283
 
@@ -287,7 +287,7 @@
287
287
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.05);
288
288
  }
289
289
 
290
- :global(.theme-dark) .cc-binder-option.cc-active {
290
+ .theme-dark .cc-binder-option.cc-active {
291
291
  background: #1e293b;
292
292
  border-color: #10b981;
293
293
  }
@@ -331,7 +331,7 @@
331
331
  color: #1e293b;
332
332
  }
333
333
 
334
- :global(.theme-dark) .cc-binder-option.cc-active .cc-binder-label {
334
+ .theme-dark .cc-binder-option.cc-active .cc-binder-label {
335
335
  color: #fff;
336
336
  }
337
337
 
@@ -408,7 +408,7 @@
408
408
  transition: all 0.3s ease;
409
409
  }
410
410
 
411
- :global(.theme-dark) .cc-result-card {
411
+ .theme-dark .cc-result-card {
412
412
  background: #1e293b;
413
413
  border-color: #334155;
414
414
  }
@@ -431,7 +431,7 @@
431
431
  line-height: 1;
432
432
  }
433
433
 
434
- :global(.theme-dark) .cc-result-value {
434
+ .theme-dark .cc-result-value {
435
435
  color: #fff;
436
436
  }
437
437
 
@@ -449,7 +449,7 @@
449
449
  color: #475569;
450
450
  }
451
451
 
452
- :global(.theme-dark) .cc-result-label {
452
+ .theme-dark .cc-result-label {
453
453
  color: #94a3b8;
454
454
  }
455
455
 
@@ -462,7 +462,7 @@
462
462
  gap: 0.75rem;
463
463
  }
464
464
 
465
- :global(.theme-dark) .cc-proportions-banner {
465
+ .theme-dark .cc-proportions-banner {
466
466
  background: rgba(30, 41, 59, 0.3);
467
467
  }
468
468
 
@@ -489,7 +489,7 @@
489
489
  overflow: hidden;
490
490
  }
491
491
 
492
- :global(.theme-dark) .cc-proportion-bar {
492
+ .theme-dark .cc-proportion-bar {
493
493
  background: #1e293b;
494
494
  }
495
495
 
@@ -525,7 +525,7 @@
525
525
  color: #475569;
526
526
  }
527
527
 
528
- :global(.theme-dark) .cc-prop-label {
528
+ .theme-dark .cc-prop-label {
529
529
  color: #94a3b8;
530
530
  }
531
531
 
@@ -546,7 +546,7 @@
546
546
  line-height: 1.5;
547
547
  }
548
548
 
549
- :global(.theme-dark) .cc-info-banner {
549
+ .theme-dark .cc-info-banner {
550
550
  background: rgba(34, 197, 94, 0.1);
551
551
  color: #4ade80;
552
552
  }
@@ -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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'beton-moertel-rechner';
6
7
  const title = 'Beton und Mörtelrechner: Exakte Mengen an Zement, Sand und Wasser';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Häufig gestellte Fragen',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Technische Referenzen',
98
- bibliography: [
99
- {
100
- name: 'DIN EN 206-1: Beton – Festlegung, Eigenschaften, Herstellung und Konformität',
101
- url: 'https://www.beuth.de/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'Zement-Merkblätter Betontechnik',
109
- url: 'https://www.beton.org/',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'concrete-mortar-calculator';
6
7
  const title = 'Concrete and Mortar Calculator: Bags of Cement per Cubic Metre';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Frequently Asked Questions',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Technical References',
98
- bibliography: [
99
- {
100
- name: 'Concrete Mix Proportioning Standards (ASTM C94)',
101
- url: 'https://store.astm.org/astm-bos-04.02.html',
102
- },
103
- {
104
- name: 'BS EN 197: Cement Composition and Conformity Criteria',
105
- url: 'https://www.bsigroup.com/en-GB/standards/',
106
- },
107
- {
108
- name: 'The Concrete Centre: Mix Design Guide',
109
- url: 'https://www.concretecentre.com/',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-hormigon-mortero';
6
7
  const title = 'Calculadora de Hormigón y Mortero: Cantidades Exactas de Cemento, Arena y Agua';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Preguntas Frecuentes',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Referencias Técnicas',
98
- bibliography: [
99
- {
100
- name: 'Código Estructural (EHE-08): Normativa de Hormigón',
101
- url: 'https://www.boe.es/buscar/doc.php?id=BOE-A-2021-12906',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'Guía de Dosificación de Morteros de Cemento',
109
- url: 'https://es.wikipedia.org/wiki/Mortero_(construcci%C3%B3n)',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-beton-mortier';
6
7
  const title = 'Calculateur Béton et Mortier: Sacs de Ciment et Dosages par m³';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Questions Fréquentes',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Références Techniques',
98
- bibliography: [
99
- {
100
- name: 'NF EN 206: Béton, spécification, performance, production et conformité',
101
- url: 'https://www.afnor.org/',
102
- },
103
- {
104
- name: 'DTU 26.1: Travaux d\'enduit de mortiers',
105
- url: 'https://www.cstb.fr/',
106
- },
107
- {
108
- name: 'Centre Technique du Bâtiment: Guide de formulation du béton',
109
- url: 'https://www.cstb.fr/',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-beton-mortar';
6
7
  const title = 'Kalkulator Beton dan Mortar: Jumlah Tepat Semen, Pasir, dan Air';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Pertanyaan Umum',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Referensi Teknis',
98
- bibliography: [
99
- {
100
- name: 'SNI 2847:2019 - Persyaratan Beton Struktural untuk Bangunan Gedung (Indonesia)',
101
- url: 'https://www.bsn.go.id/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'Panduan Dosis Mortar Semen',
109
- url: 'https://id.wikipedia.org/wiki/Mortar',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calcolatrice-calcestruzzo-malta';
6
7
  const title = 'Calcolatrice Calcestruzzo e Malta: Quantità Esatte di Cemento, Sabbia e Acqua';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Domande Frequenti',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Riferimenti Tecnici',
98
- bibliography: [
99
- {
100
- name: 'Norme Tecniche per le Costruzioni (NTC 2018) - Italia',
101
- url: 'https://www.gazzettaufficiale.it/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'Guida al Dosaggio delle Malte Cementizie',
109
- url: 'https://it.wikipedia.org/wiki/Malta_(edilizia)',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'concrete-mortar-calculator';
6
7
  const title = 'コンクリート・モルタル計算機:セメント、砂、水の正確な配合量';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'よくある質問',
96
97
  faq: faqData,
97
- bibliographyTitle: '技術リファレンス',
98
- bibliography: [
99
- {
100
- name: 'コンクリート標準示方書 - 公益社団法人 土木学会',
101
- url: 'https://www.jsce.or.jp/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'モルタルの配合と種類について',
109
- url: 'https://ja.wikipedia.org/wiki/モルタル',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'concrete-mortar-calculator';
6
7
  const title = '콘크리트 및 모르타르 계산기: 세먼트, 모래, 물의 정확한 배합량';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: '자주 묻는 질문',
96
97
  faq: faqData,
97
- bibliographyTitle: '기술 참고 자료',
98
- bibliography: [
99
- {
100
- name: 'KDS 14 20 00 : 콘크리트구조 설계기준 - 국가법령정보센터',
101
- url: 'https://www.law.go.kr/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: '모르타르의 정의 및 배합 비율',
109
- url: 'https://ko.wikipedia.org/wiki/모르타르',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'beton-mortel-calculator';
6
7
  const title = 'Beton en Mortelcalculator: Exacte Hoeveelheden Cement, Zand en Water';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Veelgestelde Vragen',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Technische Referenties',
98
- bibliography: [
99
- {
100
- name: 'NEN-EN 206: Beton - Specificatie, eigenschappen, vervaardiging en conformiteit',
101
- url: 'https://www.nen.nl/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'Doseergids voor Cementmortels',
109
- url: 'https://nl.wikipedia.org/wiki/Mortel',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-betonu-zaprawy';
6
7
  const title = 'Kalkulator Betonu i Zaprawy: Dokładne Ilości Cementu, Piasku i Wody';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Często Zadawane Pytania',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Referencje Techniczne',
98
- bibliography: [
99
- {
100
- name: 'Norma PN-EN 206: Beton – Wymagania, właściwości, produkcja i zgodność',
101
- url: 'https://www.pkn.pl/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'Przewodnik po dozowaniu zapraw cementowych',
109
- url: 'https://pl.wikipedia.org/wiki/Zaprawa_murarska',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-betao-argamassa';
6
7
  const title = 'Calculadora de Betão e Argamassa: Quantidades Exatas de Cimento, Areia e Água';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Perguntas Frequentes',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Referências Técnicas',
98
- bibliography: [
99
- {
100
- name: 'Regulamento de Estruturas de Betão Armado e Pré-Esforçado (REBAP) - Portugal',
101
- url: 'http://www.lnec.pt/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'Guia de Dosagem de Argamassas de Cimento',
109
- url: 'https://pt.wikipedia.org/wiki/Argamassa',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  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 { ConcreteCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-betona-rastvora';
6
7
  const title = 'Калькулятор бетона и раствора: Точное количество цемента, песка и воды';
@@ -94,21 +95,7 @@ export const content: ToolLocaleContent<ConcreteCalculatorUI> = {
94
95
  description,
95
96
  faqTitle: 'Часто задаваемые вопросы',
96
97
  faq: faqData,
97
- bibliographyTitle: 'Технические справочники',
98
- bibliography: [
99
- {
100
- name: 'ГОСТ 27006-2019 Бетоны. Правила подбора состава',
101
- url: 'https://docs.cntd.ru/',
102
- },
103
- {
104
- name: 'Concrete Mix Proportioning Standards (ASTM)',
105
- url: 'https://store.astm.org/astm-bos-04.02.html',
106
- },
107
- {
108
- name: 'Руководство по дозировке цементных растворов',
109
- url: 'https://ru.wikipedia.org/wiki/Строительный_раствор',
110
- },
111
- ],
98
+ bibliography,
112
99
  howTo: howToData,
113
100
  schemas: [faqSchema, howToSchema, appSchema],
114
101
  seo: [