@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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-rpm-calculator';
6
7
  const title = '穴あけ・切削回転数計算機';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'よくある質問',
78
79
  faq: faqData,
79
- bibliographyTitle: '技術リファレンス',
80
- bibliography: [
81
- { name: 'サンドビック・コロマント:切削速度・送り計算式', url: 'https://www.sandvik.coromant.com/ja-jp/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: '機械工作計算表', url: 'https://www.google.com/search?q=機械工作計算表+Casillas' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-rpm-calculator';
6
7
  const title = '가공 및 드릴 회전수 계산기';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: '자주 묻는 질문',
78
79
  faq: faqData,
79
- bibliographyTitle: '기술 참고 자료',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: '기계 공작법 계산표 — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'toerental-rekenmachine-boren-frezen';
6
7
  const title = 'RPM Toerental Calculator voor Boren en Frezen';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Veelgestelde Vragen',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Technische Referenties',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Machines. Werkplaatsberekeningen — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulator-obrotow-wiercenia-frezowania';
6
7
  const title = 'Kalkulator RPM Obróbki i Wiercenia';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Często Zadawane Pytania',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referencje Techniczne',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Poradnik mechanika — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'calculadora-usinagem-furo';
6
7
  const title = 'Calculadora RPM de Usinagem e Furação';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Perguntas Frequentes',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referências Técnicas',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Máquinas. Cálculos de oficina — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+faller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'kalkulyator-oborotov-sverleniya';
6
7
  const title = 'Калькулятор оборотов (RPM) для сверления и фрезерования';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Часто задаваемые вопросы',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Технические справочники',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Справочник механика — А.Л. Касильяс (A.L. Casillas)', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'varvtalskalkylator-borrning';
6
7
  const title = 'Varvtalskalkylator för borrning och fräsning';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Vanliga frågor',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Tekniska referenser',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Maskiner. Verkstadsberäkningar — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'matkap-devir-hesaplayici';
6
7
  const title = 'İşleme ve Matkap RPM Hesaplayıcı';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: 'Sıkça Sorulan Sorular',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Teknik Referanslar',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: Cutting Speed and Feed Rate Formulae', url: 'https://www.sandvik.coromant.com/en-gb/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: 'Makineler. Atölye Hesaplamaları — A.L. Casillas', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillCalculatorUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-rpm-calculator';
6
7
  const title = '钻孔与切削转速计算器';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillCalculatorUI> = {
76
77
  description,
77
78
  faqTitle: '常见问题',
78
79
  faq: faqData,
79
- bibliographyTitle: '技术参考',
80
- bibliography: [
81
- { name: 'Sandvik Coromant: 切削速度与进给率公式', url: 'https://www.sandvik.coromant.com/zh-cn/knowledge/machining-formulas-definitions/general-turning-formulas-definitions' },
82
- { name: '机械加工工艺手册', url: 'https://www.google.com/search?q=Casillas+Maquinas+Calculos+de+taller' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 drillCalculator.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 { drillSharpener } 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 drillSharpener.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
11
4
  ---
12
5
 
13
- {content && <SharedBibliography links={content.bibliography} />}
6
+ <SharedBibliography links={bibliography} />
@@ -0,0 +1,16 @@
1
+ import type { BibliographyEntry } from '../../types';
2
+
3
+ export const bibliography: BibliographyEntry[] = [
4
+ {
5
+ name: 'Workshop Manual - Drill Bit Sharpening (PDF)',
6
+ url: 'https://www.scribd.com/document/486692441/Afilado-Manual-de-Brocas',
7
+ },
8
+ {
9
+ name: 'Metal Technology - Drill Angles',
10
+ url: 'https://en.wikipedia.org/wiki/Drill_bit',
11
+ },
12
+ {
13
+ name: 'Mechanical Workshop Sharpening Standards',
14
+ url: 'https://www.iso.org/',
15
+ },
16
+ ];
@@ -10,7 +10,7 @@
10
10
  --drillsharp-button-hover: #cbd5e1;
11
11
  }
12
12
 
13
- :global(.theme-dark) {
13
+ .theme-dark {
14
14
  --drillsharp-primary: #38bdf8;
15
15
  --drillsharp-accent: #38bdf8;
16
16
  --drillsharp-text: #f8fafc;
@@ -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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'bohrer-schleifen-meister';
6
7
  const title = 'Bohrer Schleifen Meister: Präzisionslehre';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Häufig gestellte Fragen',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Technische Referenzen',
80
- bibliography: [
81
- { name: 'Werkstatthandbuch - Bohrer schleifen (PDF)', url: 'https://de.wikipedia.org/wiki/Spiralbohrer#Spitzenanschliff' },
82
- { name: 'Metalltechnologie - Bohrerwinkel', url: 'https://www.google.com/search?q=bohrer+anschleifen+winkel' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-sharpening-master';
6
7
  const title = 'Drill Sharpening Master: Precision Gauge';
@@ -76,12 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Frequently Asked Questions',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Technical References',
80
- bibliography: [
81
- { name: 'Workshop Manual - Drill Bit Sharpening (PDF)', url: 'https://www.scribd.com/document/486692441/Afilado-Manual-de-Brocas' },
82
- { name: 'Metal Technology - Drill Angles', url: 'https://en.wikipedia.org/wiki/Drill_bit' },
83
- { name: 'Mechanical Workshop Sharpening Standards', url: 'https://www.iso.org/' },
84
- ],
80
+ bibliography,
85
81
  howTo: howToData,
86
82
  schemas: [faqSchema, howToSchema, appSchema],
87
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'afilado-maestro-brocas';
6
7
  const title = 'Afilado Maestro de Brocas: Galga de Precisión';
@@ -76,12 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Preguntas Frecuentes',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referencias Técnicas',
80
- bibliography: [
81
- { name: 'Manual de Taller - Afilado de Brocas (PDF)', url: 'https://www.scribd.com/document/486692441/Afilado-Manual-de-Brocas' },
82
- { name: 'Tecnología de los Metales - Ángulos de Broca', url: 'https://es.wikipedia.org/wiki/Broca' },
83
- { name: 'Normas de Afilado en Taller Mecánico', url: 'https://www.inem.es/' },
84
- ],
80
+ bibliography,
85
81
  howTo: howToData,
86
82
  schemas: [faqSchema, howToSchema, appSchema],
87
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'affuteur-maitrise-forets';
6
7
  const title = 'Affûteur Maître de Forets: Jauge de Précision';
@@ -76,12 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Questions Fréquentes',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Références Techniques',
80
- bibliography: [
81
- { name: 'Manuel d\'atelier - Affûtage des forets (PDF)', url: 'https://www.scribd.com/document/486692441/Afilado-Manual-de-Brocas' },
82
- { name: 'Technologie des métaux - Angles de forets', url: 'https://fr.wikipedia.org/wiki/Foret_%28outil%29' },
83
- { name: 'Normes d\'affûtage en atelier mécanique', url: 'https://www.iso.org/' },
84
- ],
80
+ bibliography,
85
81
  howTo: howToData,
86
82
  schemas: [faqSchema, howToSchema, appSchema],
87
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'pengasah-mata-bor-presisi';
6
7
  const title = 'Pengasah Mata Bor Utama: Alat Ukur Presisi';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Pertanyaan Umum',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referensi Teknis',
80
- bibliography: [
81
- { name: 'Manual Bengkel - Pengasahan Mata Bor (PDF)', url: 'https://www.google.com/search?q=manual+pengasahan+mata+bor' },
82
- { name: 'Teknologi Logam - Sudut Mata Bor', url: 'https://id.wikipedia.org/wiki/Mata_bor' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'affilatura-maestra-punte';
6
7
  const title = 'Affilatura Maestra delle Punte: Calibro di Precisione';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Domande Frequenti',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Riferimenti Tecnici',
80
- bibliography: [
81
- { name: 'Manuale d\'Officina - Affilatura Punte (PDF)', url: 'https://www.google.com/search?q=manuale+affilatura+punte' },
82
- { name: 'Tecnologia dei Metalli - Angoli delle Punte', url: 'https://it.wikipedia.org/wiki/Punta_da_trapano' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-sharpening-master';
6
7
  const title = 'ドリル研磨マスター:精密ゲージ';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'よくある質問',
78
79
  faq: faqData,
79
- bibliographyTitle: '技術リファレンス',
80
- bibliography: [
81
- { name: 'ワークショップマニュアル - ドリル研磨 (PDF)', url: 'https://ja.wikipedia.org/wiki/ツイストドリル#研磨' },
82
- { name: '金属技術 - ドリルの角度', url: 'https://www.google.com/search?q=ドリル+研磨+角度' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-sharpening-master';
6
7
  const title = '드릴 연마 마스터: 정밀 게이지';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: '자주 묻는 질문',
78
79
  faq: faqData,
79
- bibliographyTitle: '기술 참고 자료',
80
- bibliography: [
81
- { name: '워크숍 매뉴얼 - 드릴 연마 (PDF)', url: 'https://ko.wikipedia.org/wiki/트위스트_드릴#연마' },
82
- { name: '금속 기술 - 드릴 각도', url: 'https://www.google.com/search?q=드릴+연마+각도' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'boor-slijpen-master';
6
7
  const title = 'Boor Slijpen Master: Precisiekaliber';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Veelgestelde Vragen',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Technische Referenties',
80
- bibliography: [
81
- { name: 'Werkplaatshandboek - Boren Slijpen (PDF)', url: 'https://nl.wikipedia.org/wiki/Spiraalboor#' },
82
- { name: 'Metaaltechnologie - Boorhoeken', url: 'https://www.google.com/search?q=boor+slijpen+hoek' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'mistrzowskie-ostrzenie-wiertel';
6
7
  const title = 'Mistrzowskie Ostrzenie Wierteł: Sprawdzian Precyzyjny';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Często Zadawane Pytania',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referencje Techniczne',
80
- bibliography: [
81
- { name: 'Podręcznik warsztatowy - Ostrzenie wierteł (PDF)', url: 'https://pl.wikipedia.org/wiki/Wiertło_kręte' },
82
- { name: 'Technologia metali - Kąty wierteł', url: 'https://www.google.com/search?q=ostrzenie+wiertla+katy' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'afiamento-mestre-brocas';
6
7
  const title = 'Afiamento Mestre de Brocas: Bitola de Precisão';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Perguntas Frequentes',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Referências Técnicas',
80
- bibliography: [
81
- { name: 'Manual de Oficina - Afiamento de Brocas (PDF)', url: 'https://www.google.com/search?q=manual+afiamento+brocas' },
82
- { name: 'Tecnologia dos Metais - Ângulos de Broca', url: 'https://pt.wikipedia.org/wiki/Broca' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'master-zatochki-sverl';
6
7
  const title = 'Мастер заточки сверл: прецизионный калибр';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Часто задаваемые вопросы',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Технические справочники',
80
- bibliography: [
81
- { name: 'Руководство мастерской - Заточка сверл (PDF)', url: 'https://ru.wikipedia.org/wiki/Спиральное_сверло#Зенкерование_и_заточка' },
82
- { name: 'Технология металлов - Углы сверла', url: 'https://www.google.com/search?q=заточка+сверл+углы' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'borrslipningsmaster';
6
7
  const title = 'Borrslipningsmästare: Precisionsmått';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Vanliga frågor',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Tekniska referenser',
80
- bibliography: [
81
- { name: 'Workshopmanual - Borrslipning (PDF)', url: 'https://sv.wikipedia.org/wiki/Spiralborr#' },
82
- { name: 'Metallteknologi - Borrvinklar', url: 'https://www.google.com/search?q=borr+slipning+vinklar' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'usta-matkap-bileme';
6
7
  const title = 'Usta Matkap Bileme: Hassas Mastar';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: 'Sıkça Sorulan Sorular',
78
79
  faq: faqData,
79
- bibliographyTitle: 'Teknik Referanslar',
80
- bibliography: [
81
- { name: 'Atölye El Kitabı - Matkap Bileme (PDF)', url: 'https://tr.wikipedia.org/wiki/Matkap_ucu#Bileme' },
82
- { name: 'Metal Teknolojisi - Matkap Açıları', url: 'https://www.google.com/search?q=matkap+bileme+acilari' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 { DrillSharpenerUI } from '../ui';
4
+ import { bibliography } from '../bibliography';
4
5
 
5
6
  const slug = 'drill-sharpening-master';
6
7
  const title = '钻头修磨大师:精密数字规';
@@ -76,11 +77,7 @@ export const content: ToolLocaleContent<DrillSharpenerUI> = {
76
77
  description,
77
78
  faqTitle: '常见问题',
78
79
  faq: faqData,
79
- bibliographyTitle: '技术参考',
80
- bibliography: [
81
- { name: '车间手册 - 钻头修磨 (PDF)', url: 'https://zh.wikipedia.org/wiki/钻头#修磨' },
82
- { name: '金属工艺学 - 钻头角度', url: 'https://www.google.com/search?q=钻头+修磨+角度' },
83
- ],
80
+ bibliography,
84
81
  howTo: howToData,
85
82
  schemas: [faqSchema, howToSchema, appSchema],
86
83
  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 drillSharpener.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,14 +1,6 @@
1
1
  ---
2
2
  import { Bibliography as SharedBibliography } from '@jjlmoya/utils-shared';
3
- import { epoxyCalculator } 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 epoxyCalculator.i18n[locale]?.();
3
+ import { bibliography } from './bibliography';
12
4
  ---
13
5
 
14
- {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: 'TotalBoat - Support Center and Technical Guides',
6
+ url: 'https://www.totalboat.com/pages/support',
7
+ },
8
+ {
9
+ name: 'ArtResin - FAQ and Usage Guide',
10
+ url: 'https://www.artresin.com/pages/artresin-faq',
11
+ },
12
+ {
13
+ name: 'Smooth-On - Mold and Casting Calculators',
14
+ url: 'https://www.smooth-on.com/support/calculators/',
15
+ },
16
+ {
17
+ name: 'Polytek - Technical Support and Safety Data Sheets',
18
+ url: 'https://www.polytek.com/technical-support',
19
+ },
20
+ ];