@jjlmoya/utils-diy 1.11.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 (273) 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/bibliography.astro +2 -10
  11. package/src/tool/balusterCalculator/bibliography.ts +16 -0
  12. package/src/tool/balusterCalculator/i18n/de.ts +2 -15
  13. package/src/tool/balusterCalculator/i18n/en.ts +2 -15
  14. package/src/tool/balusterCalculator/i18n/es.ts +2 -15
  15. package/src/tool/balusterCalculator/i18n/fr.ts +2 -15
  16. package/src/tool/balusterCalculator/i18n/id.ts +2 -15
  17. package/src/tool/balusterCalculator/i18n/it.ts +2 -15
  18. package/src/tool/balusterCalculator/i18n/ja.ts +2 -15
  19. package/src/tool/balusterCalculator/i18n/ko.ts +2 -15
  20. package/src/tool/balusterCalculator/i18n/nl.ts +2 -15
  21. package/src/tool/balusterCalculator/i18n/pl.ts +2 -15
  22. package/src/tool/balusterCalculator/i18n/pt.ts +2 -15
  23. package/src/tool/balusterCalculator/i18n/ru.ts +2 -15
  24. package/src/tool/balusterCalculator/i18n/sv.ts +2 -15
  25. package/src/tool/balusterCalculator/i18n/tr.ts +2 -15
  26. package/src/tool/balusterCalculator/i18n/zh.ts +2 -15
  27. package/src/tool/balusterCalculator/seo.astro +1 -1
  28. package/src/tool/clayCalculator/bibliography.astro +2 -10
  29. package/src/tool/clayCalculator/bibliography.ts +12 -0
  30. package/src/tool/clayCalculator/i18n/de.ts +2 -11
  31. package/src/tool/clayCalculator/i18n/en.ts +2 -11
  32. package/src/tool/clayCalculator/i18n/es.ts +2 -11
  33. package/src/tool/clayCalculator/i18n/fr.ts +2 -11
  34. package/src/tool/clayCalculator/i18n/id.ts +2 -11
  35. package/src/tool/clayCalculator/i18n/it.ts +2 -11
  36. package/src/tool/clayCalculator/i18n/ja.ts +2 -11
  37. package/src/tool/clayCalculator/i18n/ko.ts +2 -11
  38. package/src/tool/clayCalculator/i18n/nl.ts +2 -11
  39. package/src/tool/clayCalculator/i18n/pl.ts +2 -11
  40. package/src/tool/clayCalculator/i18n/pt.ts +2 -11
  41. package/src/tool/clayCalculator/i18n/ru.ts +2 -11
  42. package/src/tool/clayCalculator/i18n/sv.ts +2 -11
  43. package/src/tool/clayCalculator/i18n/tr.ts +2 -11
  44. package/src/tool/clayCalculator/i18n/zh.ts +2 -11
  45. package/src/tool/clayCalculator/seo.astro +1 -1
  46. package/src/tool/concreteCalculator/bibliography.astro +2 -9
  47. package/src/tool/concreteCalculator/bibliography.ts +7 -0
  48. package/src/tool/concreteCalculator/i18n/de.ts +2 -15
  49. package/src/tool/concreteCalculator/i18n/en.ts +2 -15
  50. package/src/tool/concreteCalculator/i18n/es.ts +2 -15
  51. package/src/tool/concreteCalculator/i18n/fr.ts +2 -15
  52. package/src/tool/concreteCalculator/i18n/id.ts +2 -15
  53. package/src/tool/concreteCalculator/i18n/it.ts +2 -15
  54. package/src/tool/concreteCalculator/i18n/ja.ts +2 -15
  55. package/src/tool/concreteCalculator/i18n/ko.ts +2 -15
  56. package/src/tool/concreteCalculator/i18n/nl.ts +2 -15
  57. package/src/tool/concreteCalculator/i18n/pl.ts +2 -15
  58. package/src/tool/concreteCalculator/i18n/pt.ts +2 -15
  59. package/src/tool/concreteCalculator/i18n/ru.ts +2 -15
  60. package/src/tool/concreteCalculator/i18n/sv.ts +2 -15
  61. package/src/tool/concreteCalculator/i18n/tr.ts +2 -15
  62. package/src/tool/concreteCalculator/i18n/zh.ts +2 -15
  63. package/src/tool/concreteCalculator/seo.astro +2 -1
  64. package/src/tool/cutOptimizer/bibliography.astro +2 -9
  65. package/src/tool/cutOptimizer/bibliography.ts +12 -0
  66. package/src/tool/cutOptimizer/i18n/de.ts +2 -11
  67. package/src/tool/cutOptimizer/i18n/en.ts +2 -11
  68. package/src/tool/cutOptimizer/i18n/es.ts +2 -11
  69. package/src/tool/cutOptimizer/i18n/fr.ts +2 -11
  70. package/src/tool/cutOptimizer/i18n/id.ts +2 -11
  71. package/src/tool/cutOptimizer/i18n/it.ts +2 -11
  72. package/src/tool/cutOptimizer/i18n/ja.ts +2 -11
  73. package/src/tool/cutOptimizer/i18n/ko.ts +2 -11
  74. package/src/tool/cutOptimizer/i18n/nl.ts +2 -11
  75. package/src/tool/cutOptimizer/i18n/pl.ts +2 -11
  76. package/src/tool/cutOptimizer/i18n/pt.ts +2 -11
  77. package/src/tool/cutOptimizer/i18n/ru.ts +2 -11
  78. package/src/tool/cutOptimizer/i18n/sv.ts +2 -11
  79. package/src/tool/cutOptimizer/i18n/tr.ts +2 -11
  80. package/src/tool/cutOptimizer/i18n/zh.ts +2 -11
  81. package/src/tool/cutOptimizer/seo.astro +2 -1
  82. package/src/tool/drillCalculator/bibliography.astro +2 -9
  83. package/src/tool/drillCalculator/bibliography.ts +12 -0
  84. package/src/tool/drillCalculator/i18n/de.ts +2 -5
  85. package/src/tool/drillCalculator/i18n/en.ts +2 -5
  86. package/src/tool/drillCalculator/i18n/es.ts +2 -5
  87. package/src/tool/drillCalculator/i18n/fr.ts +2 -5
  88. package/src/tool/drillCalculator/i18n/id.ts +2 -5
  89. package/src/tool/drillCalculator/i18n/it.ts +2 -5
  90. package/src/tool/drillCalculator/i18n/ja.ts +2 -5
  91. package/src/tool/drillCalculator/i18n/ko.ts +2 -5
  92. package/src/tool/drillCalculator/i18n/nl.ts +2 -5
  93. package/src/tool/drillCalculator/i18n/pl.ts +2 -5
  94. package/src/tool/drillCalculator/i18n/pt.ts +2 -5
  95. package/src/tool/drillCalculator/i18n/ru.ts +2 -5
  96. package/src/tool/drillCalculator/i18n/sv.ts +2 -5
  97. package/src/tool/drillCalculator/i18n/tr.ts +2 -5
  98. package/src/tool/drillCalculator/i18n/zh.ts +2 -5
  99. package/src/tool/drillCalculator/seo.astro +2 -1
  100. package/src/tool/drillSharpener/bibliography.astro +2 -9
  101. package/src/tool/drillSharpener/bibliography.ts +16 -0
  102. package/src/tool/drillSharpener/i18n/de.ts +2 -5
  103. package/src/tool/drillSharpener/i18n/en.ts +2 -6
  104. package/src/tool/drillSharpener/i18n/es.ts +2 -6
  105. package/src/tool/drillSharpener/i18n/fr.ts +2 -6
  106. package/src/tool/drillSharpener/i18n/id.ts +2 -5
  107. package/src/tool/drillSharpener/i18n/it.ts +2 -5
  108. package/src/tool/drillSharpener/i18n/ja.ts +2 -5
  109. package/src/tool/drillSharpener/i18n/ko.ts +2 -5
  110. package/src/tool/drillSharpener/i18n/nl.ts +2 -5
  111. package/src/tool/drillSharpener/i18n/pl.ts +2 -5
  112. package/src/tool/drillSharpener/i18n/pt.ts +2 -5
  113. package/src/tool/drillSharpener/i18n/ru.ts +2 -5
  114. package/src/tool/drillSharpener/i18n/sv.ts +2 -5
  115. package/src/tool/drillSharpener/i18n/tr.ts +2 -5
  116. package/src/tool/drillSharpener/i18n/zh.ts +2 -5
  117. package/src/tool/drillSharpener/seo.astro +2 -1
  118. package/src/tool/epoxyCalculator/bibliography.astro +2 -10
  119. package/src/tool/epoxyCalculator/bibliography.ts +20 -0
  120. package/src/tool/epoxyCalculator/i18n/de.ts +2 -5
  121. package/src/tool/epoxyCalculator/i18n/en.ts +2 -19
  122. package/src/tool/epoxyCalculator/i18n/es.ts +2 -19
  123. package/src/tool/epoxyCalculator/i18n/fr.ts +2 -19
  124. package/src/tool/epoxyCalculator/i18n/id.ts +2 -5
  125. package/src/tool/epoxyCalculator/i18n/it.ts +2 -5
  126. package/src/tool/epoxyCalculator/i18n/ja.ts +2 -5
  127. package/src/tool/epoxyCalculator/i18n/ko.ts +2 -5
  128. package/src/tool/epoxyCalculator/i18n/nl.ts +2 -5
  129. package/src/tool/epoxyCalculator/i18n/pl.ts +2 -5
  130. package/src/tool/epoxyCalculator/i18n/pt.ts +2 -5
  131. package/src/tool/epoxyCalculator/i18n/ru.ts +2 -5
  132. package/src/tool/epoxyCalculator/i18n/sv.ts +2 -5
  133. package/src/tool/epoxyCalculator/i18n/tr.ts +2 -5
  134. package/src/tool/epoxyCalculator/i18n/zh.ts +2 -5
  135. package/src/tool/epoxyCalculator/seo.astro +1 -1
  136. package/src/tool/furnitureFit/bibliography.astro +2 -9
  137. package/src/tool/furnitureFit/bibliography.ts +12 -0
  138. package/src/tool/furnitureFit/i18n/de.ts +2 -5
  139. package/src/tool/furnitureFit/i18n/en.ts +2 -5
  140. package/src/tool/furnitureFit/i18n/es.ts +2 -5
  141. package/src/tool/furnitureFit/i18n/fr.ts +2 -5
  142. package/src/tool/furnitureFit/i18n/id.ts +2 -5
  143. package/src/tool/furnitureFit/i18n/it.ts +2 -5
  144. package/src/tool/furnitureFit/i18n/ja.ts +2 -5
  145. package/src/tool/furnitureFit/i18n/ko.ts +2 -5
  146. package/src/tool/furnitureFit/i18n/nl.ts +2 -5
  147. package/src/tool/furnitureFit/i18n/pl.ts +2 -5
  148. package/src/tool/furnitureFit/i18n/pt.ts +2 -5
  149. package/src/tool/furnitureFit/i18n/ru.ts +2 -5
  150. package/src/tool/furnitureFit/i18n/sv.ts +2 -5
  151. package/src/tool/furnitureFit/i18n/tr.ts +2 -5
  152. package/src/tool/furnitureFit/i18n/zh.ts +2 -5
  153. package/src/tool/furnitureFit/seo.astro +2 -1
  154. package/src/tool/mortarCalculator/bibliography.astro +2 -9
  155. package/src/tool/mortarCalculator/bibliography.ts +20 -0
  156. package/src/tool/mortarCalculator/i18n/de.ts +2 -5
  157. package/src/tool/mortarCalculator/i18n/en.ts +2 -19
  158. package/src/tool/mortarCalculator/i18n/es.ts +2 -19
  159. package/src/tool/mortarCalculator/i18n/fr.ts +2 -19
  160. package/src/tool/mortarCalculator/i18n/id.ts +2 -5
  161. package/src/tool/mortarCalculator/i18n/it.ts +2 -5
  162. package/src/tool/mortarCalculator/i18n/ja.ts +2 -5
  163. package/src/tool/mortarCalculator/i18n/ko.ts +2 -5
  164. package/src/tool/mortarCalculator/i18n/nl.ts +2 -5
  165. package/src/tool/mortarCalculator/i18n/pl.ts +2 -5
  166. package/src/tool/mortarCalculator/i18n/pt.ts +2 -5
  167. package/src/tool/mortarCalculator/i18n/ru.ts +2 -5
  168. package/src/tool/mortarCalculator/i18n/sv.ts +2 -5
  169. package/src/tool/mortarCalculator/i18n/tr.ts +2 -5
  170. package/src/tool/mortarCalculator/i18n/zh.ts +2 -5
  171. package/src/tool/mortarCalculator/seo.astro +2 -1
  172. package/src/tool/passepartoutCalculator/bibliography.astro +2 -9
  173. package/src/tool/passepartoutCalculator/bibliography.ts +16 -0
  174. package/src/tool/passepartoutCalculator/i18n/de.ts +2 -6
  175. package/src/tool/passepartoutCalculator/i18n/en.ts +2 -15
  176. package/src/tool/passepartoutCalculator/i18n/es.ts +2 -15
  177. package/src/tool/passepartoutCalculator/i18n/fr.ts +2 -15
  178. package/src/tool/passepartoutCalculator/i18n/id.ts +2 -6
  179. package/src/tool/passepartoutCalculator/i18n/it.ts +2 -6
  180. package/src/tool/passepartoutCalculator/i18n/ja.ts +2 -6
  181. package/src/tool/passepartoutCalculator/i18n/ko.ts +2 -6
  182. package/src/tool/passepartoutCalculator/i18n/nl.ts +2 -6
  183. package/src/tool/passepartoutCalculator/i18n/pl.ts +2 -6
  184. package/src/tool/passepartoutCalculator/i18n/pt.ts +2 -6
  185. package/src/tool/passepartoutCalculator/i18n/ru.ts +2 -6
  186. package/src/tool/passepartoutCalculator/i18n/sv.ts +2 -6
  187. package/src/tool/passepartoutCalculator/i18n/tr.ts +2 -6
  188. package/src/tool/passepartoutCalculator/i18n/zh.ts +2 -6
  189. package/src/tool/passepartoutCalculator/seo.astro +2 -1
  190. package/src/tool/stairCalculator/bibliography.astro +2 -9
  191. package/src/tool/stairCalculator/bibliography.ts +16 -0
  192. package/src/tool/stairCalculator/i18n/de.ts +2 -5
  193. package/src/tool/stairCalculator/i18n/en.ts +2 -6
  194. package/src/tool/stairCalculator/i18n/es.ts +2 -6
  195. package/src/tool/stairCalculator/i18n/fr.ts +2 -6
  196. package/src/tool/stairCalculator/i18n/id.ts +2 -5
  197. package/src/tool/stairCalculator/i18n/it.ts +2 -5
  198. package/src/tool/stairCalculator/i18n/ja.ts +2 -5
  199. package/src/tool/stairCalculator/i18n/ko.ts +2 -5
  200. package/src/tool/stairCalculator/i18n/nl.ts +2 -5
  201. package/src/tool/stairCalculator/i18n/pl.ts +2 -5
  202. package/src/tool/stairCalculator/i18n/pt.ts +2 -5
  203. package/src/tool/stairCalculator/i18n/ru.ts +2 -5
  204. package/src/tool/stairCalculator/i18n/sv.ts +2 -5
  205. package/src/tool/stairCalculator/i18n/tr.ts +2 -5
  206. package/src/tool/stairCalculator/i18n/zh.ts +2 -5
  207. package/src/tool/stairCalculator/seo.astro +2 -1
  208. package/src/tool/thermalExpansionCalculator/bibliography.astro +2 -9
  209. package/src/tool/thermalExpansionCalculator/bibliography.ts +16 -0
  210. package/src/tool/thermalExpansionCalculator/i18n/de.ts +2 -6
  211. package/src/tool/thermalExpansionCalculator/i18n/en.ts +2 -6
  212. package/src/tool/thermalExpansionCalculator/i18n/es.ts +2 -6
  213. package/src/tool/thermalExpansionCalculator/i18n/fr.ts +2 -6
  214. package/src/tool/thermalExpansionCalculator/i18n/id.ts +2 -6
  215. package/src/tool/thermalExpansionCalculator/i18n/it.ts +2 -6
  216. package/src/tool/thermalExpansionCalculator/i18n/ja.ts +2 -6
  217. package/src/tool/thermalExpansionCalculator/i18n/ko.ts +2 -6
  218. package/src/tool/thermalExpansionCalculator/i18n/nl.ts +2 -6
  219. package/src/tool/thermalExpansionCalculator/i18n/pl.ts +2 -6
  220. package/src/tool/thermalExpansionCalculator/i18n/pt.ts +2 -6
  221. package/src/tool/thermalExpansionCalculator/i18n/ru.ts +2 -6
  222. package/src/tool/thermalExpansionCalculator/i18n/sv.ts +2 -6
  223. package/src/tool/thermalExpansionCalculator/i18n/tr.ts +2 -6
  224. package/src/tool/thermalExpansionCalculator/i18n/zh.ts +2 -6
  225. package/src/tool/thermalExpansionCalculator/seo.astro +2 -1
  226. package/src/tool/voltageDropCalculator/bibliography.astro +2 -9
  227. package/src/tool/voltageDropCalculator/bibliography.ts +16 -0
  228. package/src/tool/voltageDropCalculator/i18n/de.ts +2 -5
  229. package/src/tool/voltageDropCalculator/i18n/en.ts +2 -6
  230. package/src/tool/voltageDropCalculator/i18n/es.ts +2 -6
  231. package/src/tool/voltageDropCalculator/i18n/fr.ts +2 -6
  232. package/src/tool/voltageDropCalculator/i18n/id.ts +2 -5
  233. package/src/tool/voltageDropCalculator/i18n/it.ts +2 -5
  234. package/src/tool/voltageDropCalculator/i18n/ja.ts +2 -5
  235. package/src/tool/voltageDropCalculator/i18n/ko.ts +2 -5
  236. package/src/tool/voltageDropCalculator/i18n/nl.ts +2 -5
  237. package/src/tool/voltageDropCalculator/i18n/pl.ts +2 -5
  238. package/src/tool/voltageDropCalculator/i18n/pt.ts +2 -5
  239. package/src/tool/voltageDropCalculator/i18n/ru.ts +2 -5
  240. package/src/tool/voltageDropCalculator/i18n/sv.ts +2 -5
  241. package/src/tool/voltageDropCalculator/i18n/tr.ts +2 -5
  242. package/src/tool/voltageDropCalculator/i18n/zh.ts +2 -5
  243. package/src/tool/voltageDropCalculator/seo.astro +2 -1
  244. package/src/tool/workshopFractionConverter/bibliography.astro +6 -0
  245. package/src/tool/workshopFractionConverter/bibliography.ts +12 -0
  246. package/src/tool/workshopFractionConverter/client.ts +183 -0
  247. package/src/tool/workshopFractionConverter/component.astro +226 -0
  248. package/src/tool/workshopFractionConverter/converter.ts +110 -0
  249. package/src/tool/workshopFractionConverter/engine.ts +223 -0
  250. package/src/tool/workshopFractionConverter/entry.ts +24 -0
  251. package/src/tool/workshopFractionConverter/i18n/de.ts +141 -0
  252. package/src/tool/workshopFractionConverter/i18n/en.ts +141 -0
  253. package/src/tool/workshopFractionConverter/i18n/es.ts +141 -0
  254. package/src/tool/workshopFractionConverter/i18n/fr.ts +141 -0
  255. package/src/tool/workshopFractionConverter/i18n/id.ts +141 -0
  256. package/src/tool/workshopFractionConverter/i18n/it.ts +141 -0
  257. package/src/tool/workshopFractionConverter/i18n/ja.ts +141 -0
  258. package/src/tool/workshopFractionConverter/i18n/ko.ts +141 -0
  259. package/src/tool/workshopFractionConverter/i18n/nl.ts +141 -0
  260. package/src/tool/workshopFractionConverter/i18n/pl.ts +141 -0
  261. package/src/tool/workshopFractionConverter/i18n/pt.ts +141 -0
  262. package/src/tool/workshopFractionConverter/i18n/ru.ts +141 -0
  263. package/src/tool/workshopFractionConverter/i18n/sv.ts +141 -0
  264. package/src/tool/workshopFractionConverter/i18n/tr.ts +141 -0
  265. package/src/tool/workshopFractionConverter/i18n/zh.ts +141 -0
  266. package/src/tool/workshopFractionConverter/index.ts +11 -0
  267. package/src/tool/workshopFractionConverter/seo.astro +15 -0
  268. package/src/tool/workshopFractionConverter/types-client.ts +89 -0
  269. package/src/tool/workshopFractionConverter/ui-updater.ts +94 -0
  270. package/src/tool/workshopFractionConverter/ui.ts +38 -0
  271. package/src/tool/workshopFractionConverter/workshop-fraction-converter.css +563 -0
  272. package/src/tools.ts +2 -1
  273. 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 { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-resina-epoxica';
6
7
  const title = 'Calculadora de Resina Epóxica: Mistura e Volume Exato';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Perguntas Frequentes',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referências Técnicas',
76
- bibliography: [
77
- { name: 'TotalBoat - Centro de Suporte e Guias Técnicos', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - Perguntas Frequentes e Guia de Uso', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-epoksidnoj-smoly';
6
7
  const title = 'Калькулятор эпоксидной смолы: точная смесь и объем';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Часто задаваемые вопросы',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Технические справочники',
76
- bibliography: [
77
- { name: 'TotalBoat - Центр поддержки и технические руководства', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ и руководство по использованию', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxyharts-kalkylator';
6
7
  const title = 'Epoxyharts kalkylator: Exakt blandning och volym';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Vanliga frågor',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Tekniska referenser',
76
- bibliography: [
77
- { name: 'TotalBoat - Supportcenter och tekniska guider', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - FAQ och bruksanvisning', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoksi-recine-hesaplayici';
6
7
  const title = 'Epoksi Reçine Hesaplayıcı: Karışım ve Tam Hacim';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Sıkça Sorulan Sorular',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Teknik Referanslar',
76
- bibliography: [
77
- { name: 'TotalBoat - Destek Merkezi ve Teknik Kılavuzlar', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - SSS ve Kullanım Kılavuzu', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { EpoxyCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'epoxy-resin-calculator';
6
7
  const title = '环氧树脂计算器:混合比例与精确体积';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<EpoxyCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: '常见问题',
74
75
  faq: faqData,
75
- bibliographyTitle: '技术参考',
76
- bibliography: [
77
- { name: 'TotalBoat - 支持中心与技术指南', url: 'https://www.totalboat.com/pages/support' },
78
- { name: 'ArtResin - 常见问题与使用指南', url: 'https://www.artresin.com/pages/artresin-faq' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -12,4 +12,4 @@ const content = await epoxyCalculator.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 { furnitureFit } 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 furnitureFit.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
11
4
  ---
12
5
 
13
- {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: 'Geometric Fit in Confined Spaces (MDPI Buildings)',
6
+ url: 'https://www.mdpi.com/2075-5309/15/2/157',
7
+ },
8
+ {
9
+ name: 'Moving Sofa Problem: Wolfram MathWorld',
10
+ url: 'https://mathworld.wolfram.com/MovingSofaProblem.html',
11
+ },
12
+ ];
@@ -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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'moebel-platz-rechner';
6
7
  const title = 'Platzrechner für Umzüge und Möbel';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Häufig gestellte Fragen',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Technische Referenzen',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'furniture-fit-calculator';
6
7
  const title = 'Furniture Fit Calculator: Will It Go Through the Door?';
@@ -89,11 +90,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
89
90
  description,
90
91
  faqTitle: 'Frequently Asked Questions',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Technical References',
93
- bibliography: [
94
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
95
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
96
- ],
93
+ bibliography,
97
94
  howTo: howToData,
98
95
  schemas: [faqSchema, howToSchema, appSchema],
99
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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-espacio-muebles';
6
7
  const title = 'Calculadora de Espacio para Mudanzas y Muebles';
@@ -89,11 +90,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
89
90
  description,
90
91
  faqTitle: 'Preguntas Frecuentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referencias Técnicas',
93
- bibliography: [
94
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
95
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
96
- ],
93
+ bibliography,
97
94
  howTo: howToData,
98
95
  schemas: [faqSchema, howToSchema, appSchema],
99
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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculateur-encombrement-meubles';
6
7
  const title = 'Calculateur de Place pour Meubles et Déménagement';
@@ -89,11 +90,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
89
90
  description,
90
91
  faqTitle: 'Questions Fréquentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Références Techniques',
93
- bibliography: [
94
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
95
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
96
- ],
93
+ bibliography,
97
94
  howTo: howToData,
98
95
  schemas: [faqSchema, howToSchema, appSchema],
99
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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-ruang-furnitur';
6
7
  const title = 'Kalkulator Ruang untuk Pindahan dan Furnitur';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Pertanyaan Umum',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referensi Teknis',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calcolatore-spazio-mobili';
6
7
  const title = 'Calcolatore di Spazio per Traslochi e Mobili';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Domande Frequenti',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Riferimenti Tecnici',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'furniture-fit-calculator';
6
7
  const title = '引越し・家具スペース計算機';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'よくある質問',
74
75
  faq: faqData,
75
- bibliographyTitle: '技術リファレンス',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'furniture-fit-calculator';
6
7
  const title = '이사 및 가구 공간 계산기';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: '자주 묻는 질문',
74
75
  faq: faqData,
75
- bibliographyTitle: '기술 참고 자료',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'meubel-ruimte-calculator';
6
7
  const title = 'Ruimte Calculator voor Verhuizingen en Meubels';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Veelgestelde Vragen',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Technische Referenties',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-miejsca-na-meble';
6
7
  const title = 'Kalkulator Przestrzeni do Przeprowadzek i Mebli';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Często Zadawane Pytania',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referencje Techniczne',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-espaco-moveis';
6
7
  const title = 'Calculadora de Espaço para Mudanças e Móveis';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Perguntas Frequentes',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Referências Técnicas',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-prostranstva-dlya-mebeli';
6
7
  const title = 'Калькулятор пространства для переезда и мебели';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Часто задаваемые вопросы',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Технические справочники',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkylator-mobelutrymme';
6
7
  const title = 'Utrymmeskalkylator för flytt och möbler';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Vanliga frågor',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Tekniska referenser',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'mobilya-alan-hesaplama';
6
7
  const title = 'Taşınma ve Mobilya İçin Alan Hesaplayıcı';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: 'Sıkça Sorulan Sorular',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Teknik Referanslar',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { FurnitureFitUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'furniture-fit-calculator';
6
7
  const title = '搬家与家具空间计算器';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<FurnitureFitUI> = {
72
73
  description,
73
74
  faqTitle: '常见问题',
74
75
  faq: faqData,
75
- bibliographyTitle: '技术参考',
76
- bibliography: [
77
- { name: 'Geometric Fit in Confined Spaces (MDPI Buildings)', url: 'https://www.mdpi.com/2075-5309/15/2/157' },
78
- { name: 'Moving Sofa Problem: Wolfram MathWorld', url: 'https://mathworld.wolfram.com/MovingSofaProblem.html' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  seo: [
@@ -6,9 +6,10 @@ import type { KnownLocale } from '../../types';
6
6
  interface Props {
7
7
  locale?: KnownLocale;
8
8
  }
9
+
9
10
  const { locale = 'es' } = Astro.props;
10
11
  const content = await furnitureFit.i18n[locale]?.();
11
12
  if (!content) return null;
12
13
  ---
13
14
 
14
- <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 { mortarCalculator } 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 mortarCalculator.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
11
4
  ---
12
5
 
13
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,20 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'EN 459: Building Lime Standard',
6
+ url: 'https://www.bsigroup.com/en-GB/standards/',
7
+ },
8
+ {
9
+ name: 'Historic England: Mortars, Renders and Plasters',
10
+ url: 'https://historicengland.org.uk/advice/technical-advice/buildings/',
11
+ },
12
+ {
13
+ name: 'Vitruvius: De Architectura, Book VII',
14
+ url: 'https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:2007.01.0072',
15
+ },
16
+ {
17
+ name: 'ICCROM: Conservation of Historic Masonry',
18
+ url: 'https://www.iccrom.org/',
19
+ },
20
+ ];
@@ -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 { MortarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'moertel-rechner';
6
7
  const title = 'Traditionelle Kalkmörtel Verhältnisse: Putz und Anstrich';
@@ -72,11 +73,7 @@ export const content: ToolLocaleContent<MortarCalculatorUI> = {
72
73
  description,
73
74
  faqTitle: 'Häufig gestellte Fragen',
74
75
  faq: faqData,
75
- bibliographyTitle: 'Technische Referenzen',
76
- bibliography: [
77
- { name: 'Vitruv - De Architectura, Buch VII', url: 'https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:2007.01.0072' },
78
- { name: 'Norm EN 459 - Baukalk', url: 'https://www.une.org/encuentra-tu-norma/busca-tu-norma/norma?c=N0053796' },
79
- ],
76
+ bibliography,
80
77
  howTo: howToData,
81
78
  schemas: [faqSchema, howToSchema, appSchema],
82
79
  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 { MortarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'lime-mortar-calculator';
6
7
  const title = 'Lime Mortar Mix Ratios: Proportions for Heritage Render and Plaster';
@@ -89,25 +90,7 @@ export const content: ToolLocaleContent<MortarCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Frequently Asked Questions',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Technical References',
93
- bibliography: [
94
- {
95
- name: 'EN 459: Building Lime Standard',
96
- url: 'https://www.bsigroup.com/en-GB/standards/',
97
- },
98
- {
99
- name: 'Historic England: Mortars, Renders and Plasters',
100
- url: 'https://historicengland.org.uk/advice/technical-advice/buildings/',
101
- },
102
- {
103
- name: 'Vitruvius: De Architectura, Book VII',
104
- url: 'https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:2007.01.0072',
105
- },
106
- {
107
- name: 'ICCROM: Conservation of Historic Masonry',
108
- url: 'https://www.iccrom.org/',
109
- },
110
- ],
93
+ bibliography,
111
94
  howTo: howToData,
112
95
  schemas: [faqSchema, howToSchema, appSchema],
113
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 { MortarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'morteros';
6
7
  const title = 'Proporciones Morteros de Cal Tradicionales: Enfoscados y Revocos';
@@ -89,25 +90,7 @@ export const content: ToolLocaleContent<MortarCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Preguntas Frecuentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Referencias Técnicas',
93
- bibliography: [
94
- {
95
- name: 'Vitruvio - De Architectura, Libro VII',
96
- url: 'https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:2007.01.0072',
97
- },
98
- {
99
- name: 'Norma EN 459 - Cales para la Construcción',
100
- url: 'https://www.une.org/encuentra-tu-norma/busca-tu-norma/norma?c=N0053796',
101
- },
102
- {
103
- name: 'CTE - Código Técnico de la Edificación',
104
- url: 'https://www.codigotecnico.org/',
105
- },
106
- {
107
- name: 'ICCROM - Conservation of Historic Masonry',
108
- url: 'https://www.iccrom.org/',
109
- },
110
- ],
93
+ bibliography,
111
94
  howTo: howToData,
112
95
  schemas: [faqSchema, howToSchema, appSchema],
113
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 { MortarCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'dosage-mortier-chaux-nhl';
6
7
  const title = 'Dosage Mortier de Chaux NHL: Proportions pour Enduits et Crépis Traditionnels';
@@ -89,25 +90,7 @@ export const content: ToolLocaleContent<MortarCalculatorUI> = {
89
90
  description,
90
91
  faqTitle: 'Questions Fréquentes',
91
92
  faq: faqData,
92
- bibliographyTitle: 'Références Techniques',
93
- bibliography: [
94
- {
95
- name: 'NF EN 459: Chaux de Construction',
96
- url: 'https://www.boutique.afnor.org/',
97
- },
98
- {
99
- name: 'ICOMOS: Charte de Venise pour la Conservation',
100
- url: 'https://www.icomos.org/charte-de-venise',
101
- },
102
- {
103
- name: 'Vitruve: De Architectura, Livre VII',
104
- url: 'https://www.perseus.tufts.edu/hopper/text?doc=Perseus:text:2007.01.0072',
105
- },
106
- {
107
- name: 'CSTB: Guide des enduits à la chaux',
108
- url: 'https://www.cstb.fr/',
109
- },
110
- ],
93
+ bibliography,
111
94
  howTo: howToData,
112
95
  schemas: [faqSchema, howToSchema, appSchema],
113
96
  seo: [