@jjlmoya/utils-science 1.50.0 → 1.52.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.
- package/package.json +2 -2
- package/src/category/i18n/es.ts +3 -4
- package/src/category/i18n/fr.ts +2 -2
- package/src/category/i18n/it.ts +2 -2
- package/src/category/i18n/pt.ts +2 -2
- package/src/category/index.ts +25 -25
- package/src/components/PreviewNavSidebar.astro +1 -1
- package/src/components/PreviewToolbar.astro +1 -1
- package/src/data.ts +1 -1
- package/src/env.d.ts +1 -1
- package/src/layouts/PreviewLayout.astro +1 -1
- package/src/pages/index.astro +1 -1
- package/src/tests/bibliography_wellformed_export.test.ts +46 -0
- package/src/tests/category_seo_quality.test.ts +76 -0
- package/src/tests/faq_count.test.ts +19 -19
- package/src/tests/i18n_coverage.test.ts +36 -36
- package/src/tests/mocks/astro_mock.js +1 -1
- package/src/tests/no_h1_in_components.test.ts +1 -1
- package/src/tests/script_density.test.ts +94 -94
- package/src/tests/seo_length.test.ts +24 -24
- package/src/tests/seo_parity.test.ts +5 -5
- package/src/tests/seo_translation_completeness.test.ts +76 -0
- package/src/tests/seo_wellformed_export.test.ts +65 -0
- package/src/tests/spanish_leakage.test.ts +175 -153
- package/src/tool/asteroid-impact/component.astro +251 -251
- package/src/tool/asteroid-impact/helpers.ts +17 -17
- package/src/tool/asteroid-impact/i18n/de.ts +2 -2
- package/src/tool/asteroid-impact/i18n/en.ts +2 -2
- package/src/tool/asteroid-impact/i18n/es.ts +2 -2
- package/src/tool/asteroid-impact/i18n/fr.ts +2 -2
- package/src/tool/asteroid-impact/i18n/id.ts +2 -2
- package/src/tool/asteroid-impact/i18n/it.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ja.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ko.ts +2 -2
- package/src/tool/asteroid-impact/i18n/nl.ts +2 -2
- package/src/tool/asteroid-impact/i18n/pl.ts +2 -2
- package/src/tool/asteroid-impact/i18n/pt.ts +2 -2
- package/src/tool/asteroid-impact/i18n/ru.ts +2 -2
- package/src/tool/asteroid-impact/i18n/sv.ts +2 -2
- package/src/tool/asteroid-impact/i18n/tr.ts +2 -2
- package/src/tool/asteroid-impact/i18n/zh.ts +2 -2
- package/src/tool/asteroid-impact/script.ts +262 -262
- package/src/tool/asteroid-impact/seo.astro +15 -15
- package/src/tool/asteroid-impact/ui.ts +69 -69
- package/src/tool/black-hole-event-horizon-simulator/i18n/de.ts +249 -241
- package/src/tool/black-hole-event-horizon-simulator/i18n/fr.ts +252 -247
- package/src/tool/black-hole-event-horizon-simulator/i18n/id.ts +259 -259
- package/src/tool/black-hole-event-horizon-simulator/i18n/it.ts +255 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ja.ts +254 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ko.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/nl.ts +256 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/pl.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/pt.ts +256 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/ru.ts +258 -258
- package/src/tool/black-hole-event-horizon-simulator/i18n/sv.ts +257 -252
- package/src/tool/black-hole-event-horizon-simulator/i18n/tr.ts +256 -251
- package/src/tool/black-hole-event-horizon-simulator/i18n/zh.ts +261 -252
- package/src/tool/cellular-renewal/component.astro +126 -126
- package/src/tool/cellular-renewal/i18n/de.ts +1 -1
- package/src/tool/cellular-renewal/i18n/en.ts +1 -1
- package/src/tool/cellular-renewal/i18n/es.ts +1 -1
- package/src/tool/cellular-renewal/i18n/fr.ts +1 -1
- package/src/tool/cellular-renewal/i18n/id.ts +1 -1
- package/src/tool/cellular-renewal/i18n/it.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ja.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ko.ts +1 -1
- package/src/tool/cellular-renewal/i18n/nl.ts +1 -1
- package/src/tool/cellular-renewal/i18n/pl.ts +1 -1
- package/src/tool/cellular-renewal/i18n/pt.ts +1 -1
- package/src/tool/cellular-renewal/i18n/ru.ts +1 -1
- package/src/tool/cellular-renewal/i18n/sv.ts +1 -1
- package/src/tool/cellular-renewal/i18n/tr.ts +1 -1
- package/src/tool/cellular-renewal/i18n/zh.ts +1 -1
- package/src/tool/cellular-renewal/seo.astro +15 -15
- package/src/tool/colony-counter/i18n/de.ts +1 -1
- package/src/tool/colony-counter/i18n/en.ts +1 -1
- package/src/tool/colony-counter/i18n/es.ts +1 -1
- package/src/tool/colony-counter/i18n/fr.ts +1 -1
- package/src/tool/colony-counter/i18n/id.ts +1 -1
- package/src/tool/colony-counter/i18n/it.ts +1 -1
- package/src/tool/colony-counter/i18n/ja.ts +1 -1
- package/src/tool/colony-counter/i18n/ko.ts +1 -1
- package/src/tool/colony-counter/i18n/nl.ts +1 -1
- package/src/tool/colony-counter/i18n/pl.ts +1 -1
- package/src/tool/colony-counter/i18n/pt.ts +1 -1
- package/src/tool/colony-counter/i18n/ru.ts +1 -1
- package/src/tool/colony-counter/i18n/sv.ts +1 -1
- package/src/tool/colony-counter/i18n/tr.ts +1 -1
- package/src/tool/colony-counter/i18n/zh.ts +1 -1
- package/src/tool/colony-counter/seo.astro +15 -15
- package/src/tool/conway-life-rule-lab/component.astro +1 -1
- package/src/tool/conway-life-rule-lab/i18n/de.ts +145 -141
- package/src/tool/conway-life-rule-lab/i18n/es.ts +146 -142
- package/src/tool/conway-life-rule-lab/i18n/fr.ts +146 -142
- package/src/tool/conway-life-rule-lab/i18n/id.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/it.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/ja.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/ko.ts +146 -145
- package/src/tool/conway-life-rule-lab/i18n/nl.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/pl.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/pt.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/ru.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/sv.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/tr.ts +147 -145
- package/src/tool/conway-life-rule-lab/i18n/zh.ts +147 -145
- package/src/tool/conway-life-rule-lab/logic/LifeLabRuntime.ts +2 -2
- package/src/tool/cosmic-inflation/i18n/ru.ts +105 -105
- package/src/tool/crystal-lattice-structure-finder/i18n/de.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/en.ts +1 -1
- package/src/tool/crystal-lattice-structure-finder/i18n/es.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/fr.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/id.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/it.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ja.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ko.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/nl.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/pl.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/pt.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/ru.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/sv.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/tr.ts +217 -217
- package/src/tool/crystal-lattice-structure-finder/i18n/zh.ts +217 -217
- package/src/tool/double-slit-decoherence/i18n/de.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/fr.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/id.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/it.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/ja.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/ko.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/nl.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/pl.ts +181 -181
- package/src/tool/double-slit-decoherence/i18n/pt.ts +178 -174
- package/src/tool/double-slit-decoherence/i18n/ru.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/sv.ts +176 -172
- package/src/tool/double-slit-decoherence/i18n/tr.ts +180 -180
- package/src/tool/double-slit-decoherence/i18n/zh.ts +181 -181
- package/src/tool/dyson-sphere-energy-capture/component.astro +253 -253
- package/src/tool/dyson-sphere-energy-capture/i18n/de.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/en.ts +6 -6
- package/src/tool/dyson-sphere-energy-capture/i18n/es.ts +6 -6
- package/src/tool/dyson-sphere-energy-capture/i18n/fr.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/id.ts +195 -195
- package/src/tool/dyson-sphere-energy-capture/i18n/it.ts +194 -194
- package/src/tool/dyson-sphere-energy-capture/i18n/ja.ts +194 -190
- package/src/tool/dyson-sphere-energy-capture/i18n/ko.ts +194 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/nl.ts +197 -197
- package/src/tool/dyson-sphere-energy-capture/i18n/pl.ts +168 -166
- package/src/tool/dyson-sphere-energy-capture/i18n/pt.ts +194 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/ru.ts +195 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/sv.ts +195 -193
- package/src/tool/dyson-sphere-energy-capture/i18n/tr.ts +168 -166
- package/src/tool/dyson-sphere-energy-capture/i18n/zh.ts +194 -193
- package/src/tool/epidemic-sir-simulator/i18n/de.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/es.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/fr.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/it.ts +346 -346
- package/src/tool/epidemic-sir-simulator/i18n/nl.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/ru.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/sv.ts +347 -347
- package/src/tool/epidemic-sir-simulator/i18n/zh.ts +347 -347
- package/src/tool/exoplanet-biosignature-detector/i18n/de.ts +186 -186
- package/src/tool/exoplanet-biosignature-detector/i18n/en.ts +195 -195
- package/src/tool/exoplanet-biosignature-detector/i18n/es.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/fr.ts +183 -183
- package/src/tool/exoplanet-biosignature-detector/i18n/id.ts +193 -193
- package/src/tool/exoplanet-biosignature-detector/i18n/it.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/ja.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/ko.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/nl.ts +194 -194
- package/src/tool/exoplanet-biosignature-detector/i18n/pl.ts +144 -144
- package/src/tool/exoplanet-biosignature-detector/i18n/pt.ts +146 -146
- package/src/tool/exoplanet-biosignature-detector/i18n/ru.ts +143 -143
- package/src/tool/exoplanet-biosignature-detector/i18n/sv.ts +144 -144
- package/src/tool/exoplanet-biosignature-detector/i18n/tr.ts +145 -145
- package/src/tool/exoplanet-biosignature-detector/i18n/zh.ts +194 -194
- package/src/tool/global-albedo-snowball-simulator/component.astro +1 -1
- package/src/tool/global-albedo-snowball-simulator/i18n/de.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/fr.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/id.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/it.ts +87 -87
- package/src/tool/global-albedo-snowball-simulator/i18n/ja.ts +87 -87
- package/src/tool/global-albedo-snowball-simulator/i18n/ko.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/nl.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/pl.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/pt.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/ru.ts +165 -161
- package/src/tool/global-albedo-snowball-simulator/i18n/sv.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/tr.ts +169 -169
- package/src/tool/global-albedo-snowball-simulator/i18n/zh.ts +169 -169
- package/src/tool/lorenz-attractor/i18n/de.ts +144 -143
- package/src/tool/lorenz-attractor/i18n/fr.ts +144 -144
- package/src/tool/lorenz-attractor/i18n/id.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/it.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/ja.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/ko.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/nl.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/pl.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/pt.ts +142 -141
- package/src/tool/lorenz-attractor/i18n/ru.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/sv.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/tr.ts +149 -149
- package/src/tool/lorenz-attractor/i18n/zh.ts +149 -149
- package/src/tool/mandelbrot-fractal/i18n/de.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/fr.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/id.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/it.ts +155 -151
- package/src/tool/mandelbrot-fractal/i18n/ja.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/ko.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/nl.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/pl.ts +157 -153
- package/src/tool/mandelbrot-fractal/i18n/pt.ts +158 -158
- package/src/tool/mandelbrot-fractal/i18n/ru.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/sv.ts +159 -150
- package/src/tool/mandelbrot-fractal/i18n/tr.ts +159 -159
- package/src/tool/mandelbrot-fractal/i18n/zh.ts +159 -159
- package/src/tool/microwave-detector/component.astro +238 -238
- package/src/tool/microwave-detector/i18n/de.ts +1 -1
- package/src/tool/microwave-detector/i18n/en.ts +1 -1
- package/src/tool/microwave-detector/i18n/es.ts +1 -1
- package/src/tool/microwave-detector/i18n/fr.ts +1 -1
- package/src/tool/microwave-detector/i18n/id.ts +1 -1
- package/src/tool/microwave-detector/i18n/it.ts +1 -1
- package/src/tool/microwave-detector/i18n/ja.ts +1 -1
- package/src/tool/microwave-detector/i18n/ko.ts +1 -1
- package/src/tool/microwave-detector/i18n/nl.ts +1 -1
- package/src/tool/microwave-detector/i18n/pl.ts +1 -1
- package/src/tool/microwave-detector/i18n/pt.ts +1 -1
- package/src/tool/microwave-detector/i18n/ru.ts +1 -1
- package/src/tool/microwave-detector/i18n/sv.ts +1 -1
- package/src/tool/microwave-detector/i18n/tr.ts +1 -1
- package/src/tool/microwave-detector/i18n/zh.ts +1 -1
- package/src/tool/microwave-detector/seo.astro +15 -15
- package/src/tool/natural-selection-drift/component.astro +135 -135
- package/src/tool/natural-selection-drift/i18n/de.ts +164 -160
- package/src/tool/natural-selection-drift/i18n/fr.ts +204 -204
- package/src/tool/natural-selection-drift/i18n/id.ts +156 -154
- package/src/tool/natural-selection-drift/i18n/it.ts +197 -193
- package/src/tool/natural-selection-drift/i18n/ja.ts +155 -154
- package/src/tool/natural-selection-drift/i18n/ko.ts +155 -154
- package/src/tool/natural-selection-drift/i18n/nl.ts +164 -163
- package/src/tool/natural-selection-drift/i18n/pl.ts +168 -166
- package/src/tool/natural-selection-drift/i18n/pt.ts +200 -195
- package/src/tool/natural-selection-drift/i18n/ru.ts +186 -184
- package/src/tool/natural-selection-drift/i18n/sv.ts +157 -154
- package/src/tool/natural-selection-drift/i18n/tr.ts +186 -184
- package/src/tool/natural-selection-drift/i18n/zh.ts +160 -154
- package/src/tool/natural-selection-drift/natural-selection-drift.css +563 -563
- package/src/tool/phase-diagram-critical-points/i18n/de.ts +178 -178
- package/src/tool/phase-diagram-critical-points/i18n/fr.ts +178 -178
- package/src/tool/phase-diagram-critical-points/i18n/id.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/it.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ja.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ko.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/nl.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/pl.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/pt.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/ru.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/sv.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/tr.ts +179 -179
- package/src/tool/phase-diagram-critical-points/i18n/zh.ts +179 -179
- package/src/tool/planet-atmosphere-survival/i18n/de.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/fr.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/id.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/it.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ja.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ko.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/nl.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/pl.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/pt.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/ru.ts +227 -223
- package/src/tool/planet-atmosphere-survival/i18n/sv.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/tr.ts +255 -255
- package/src/tool/planet-atmosphere-survival/i18n/zh.ts +255 -255
- package/src/tool/radioactive-decay/i18n/de.ts +168 -164
- package/src/tool/radioactive-decay/i18n/fr.ts +76 -75
- package/src/tool/radioactive-decay/i18n/id.ts +169 -165
- package/src/tool/radioactive-decay/i18n/it.ts +76 -74
- package/src/tool/radioactive-decay/i18n/ja.ts +168 -167
- package/src/tool/radioactive-decay/i18n/ko.ts +168 -167
- package/src/tool/radioactive-decay/i18n/nl.ts +170 -168
- package/src/tool/radioactive-decay/i18n/pl.ts +170 -168
- package/src/tool/radioactive-decay/i18n/pt.ts +169 -167
- package/src/tool/radioactive-decay/i18n/ru.ts +170 -168
- package/src/tool/radioactive-decay/i18n/sv.ts +170 -168
- package/src/tool/radioactive-decay/i18n/tr.ts +171 -168
- package/src/tool/radioactive-decay/i18n/zh.ts +171 -167
- package/src/tool/roche-limit-satellite-disruption/i18n/de.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/fr.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/id.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/it.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ja.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ko.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/nl.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/pl.ts +237 -229
- package/src/tool/roche-limit-satellite-disruption/i18n/pt.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/ru.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/sv.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/tr.ts +241 -241
- package/src/tool/roche-limit-satellite-disruption/i18n/zh.ts +241 -241
- package/src/tool/simulation-probability/component.astro +138 -138
- package/src/tool/simulation-probability/i18n/de.ts +1 -1
- package/src/tool/simulation-probability/i18n/en.ts +1 -1
- package/src/tool/simulation-probability/i18n/es.ts +1 -1
- package/src/tool/simulation-probability/i18n/fr.ts +1 -1
- package/src/tool/simulation-probability/i18n/id.ts +1 -1
- package/src/tool/simulation-probability/i18n/it.ts +1 -1
- package/src/tool/simulation-probability/i18n/ja.ts +1 -1
- package/src/tool/simulation-probability/i18n/ko.ts +1 -1
- package/src/tool/simulation-probability/i18n/nl.ts +1 -1
- package/src/tool/simulation-probability/i18n/pl.ts +1 -1
- package/src/tool/simulation-probability/i18n/pt.ts +1 -1
- package/src/tool/simulation-probability/i18n/ru.ts +1 -1
- package/src/tool/simulation-probability/i18n/sv.ts +1 -1
- package/src/tool/simulation-probability/i18n/tr.ts +1 -1
- package/src/tool/simulation-probability/i18n/zh.ts +1 -1
- package/src/tool/simulation-probability/seo.astro +15 -15
- package/src/tool/stellar-habitability-zone/i18n/ru.ts +189 -189
- package/src/tool/temperature-timeline/i18n/de.ts +2 -1
- package/src/tool/temperature-timeline/i18n/fr.ts +177 -177
- package/src/tool/temperature-timeline/i18n/it.ts +142 -141
- package/src/tool/temperature-timeline/i18n/pt.ts +3 -1
- package/src/tool/temperature-timeline/i18n/ru.ts +116 -114
- package/src/tool/three-body-problem/app.ts +4 -4
- package/src/tool/three-body-problem/component.astro +6 -6
- package/src/tool/twin-paradox-visualizer/i18n/de.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/es.ts +165 -165
- package/src/tool/twin-paradox-visualizer/i18n/fr.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/id.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/it.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/ja.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/ko.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/nl.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/pl.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/pt.ts +164 -160
- package/src/tool/twin-paradox-visualizer/i18n/ru.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/sv.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/tr.ts +168 -168
- package/src/tool/twin-paradox-visualizer/i18n/zh.ts +168 -168
- package/src/types.ts +1 -1
|
@@ -1,169 +1,173 @@
|
|
|
1
|
-
import { bibliography } from '../bibliography';
|
|
2
|
-
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
-
|
|
4
|
-
const slug = 'radioactive-decay-half-life-calculator';
|
|
5
|
-
const title = '放射性衰变半衰期计算器';
|
|
6
|
-
const description = '使用真实同位素、半衰期公式、随机原子场、剩余数量和相对活度来模拟放射性衰变。';
|
|
7
|
-
|
|
8
|
-
const howTo = [
|
|
9
|
-
{ name: '选择同位素', text: '从碳-14、碘-131、铀-238、锝-99m 或氡-222 开始。每个预设都会载入真实的半衰期和常见科学用途。' },
|
|
10
|
-
{ name: '设置样本和时间', text: '调整显示的原子数量,并推进时间,观察剩余比例如何遵循半衰期的指数规律。' },
|
|
11
|
-
{ name: '比较精确计算和原子随机性', text: '把确定性结果作为期望值,再观察原子场,理解小样本为什么会围绕理论曲线波动。' },
|
|
12
|
-
{ name: '解读活度', text: '活度与未衰变原子核数量按相同比例下降,因此仪表显示相对于初始样本还剩多少辐射率。' },
|
|
13
|
-
];
|
|
14
|
-
|
|
15
|
-
const faq = [
|
|
16
|
-
{ question: '什么是半衰期?', answer: '半衰期是样本中平均一半不稳定原子核发生衰变所需的时间。一个半衰期后剩 50%,两个后剩 25%,三个后剩 12.5%。' },
|
|
17
|
-
{ question: '为什么原子场不总是等于精确百分比?', answer: '放射性衰变是概率过程。公式给出大样本的期望比例,而原子场用随机阈值模拟单个原子。' },
|
|
18
|
-
{ question: '活度和剩余原子数是一回事吗?', answer: '对单一同位素来说,活度与未衰变原子核数量成正比。如果还剩 30% 的原子,瞬时活度也约为初始活度的 30%。' },
|
|
19
|
-
{ question: '这个计算器能用于碳十四测年吗?', answer: '可用于概念理解。真实实验室测年还需要校准曲线、污染修正和样本处理。' },
|
|
20
|
-
{ question: '每种同位素都会衰变成一个稳定产物吗?', answer: '不一定。有些同位素会通过包含多个子体产物的衰变链变化。本工具建模的是母体同位素的半衰期。' },
|
|
21
|
-
];
|
|
22
|
-
|
|
23
|
-
export const content: ToolLocaleContent = {
|
|
24
|
-
slug,
|
|
25
|
-
title,
|
|
26
|
-
description,
|
|
27
|
-
ui: {
|
|
28
|
-
isotope: '同位素',
|
|
29
|
-
sampleAtoms: '样本原子',
|
|
30
|
-
elapsedTime: '经过时间',
|
|
31
|
-
halfLife: '半衰期',
|
|
32
|
-
remaining: '剩余',
|
|
33
|
-
decayed: '已衰变',
|
|
34
|
-
activity: '相对活度',
|
|
35
|
-
timeUnit: '时间单位',
|
|
36
|
-
expectedCurve: '期望曲线',
|
|
37
|
-
atomField: '原子场',
|
|
38
|
-
presetUse: '常见用途',
|
|
39
|
-
oneHalfLife: '1 个半衰期',
|
|
40
|
-
twoHalfLives: '2 个半衰期',
|
|
41
|
-
fourHalfLives: '4 个半衰期',
|
|
42
|
-
custom: '自定义',
|
|
43
|
-
liveAtoms: '未衰变原子',
|
|
44
|
-
decayedAtoms: '已衰变原子',
|
|
45
|
-
resetSeed: '新的原子图案',
|
|
46
|
-
},
|
|
47
|
-
seo: [
|
|
48
|
-
{
|
|
49
|
-
type: 'title',
|
|
50
|
-
text: '放射性半衰期计算器: 剩余原子、活度和同位素示例',
|
|
51
|
-
level: 2,
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
type: 'paragraph',
|
|
55
|
-
html: '这个放射性衰变计算器用于估算不稳定同位素在给定时间后还剩多少。它覆盖常见搜索意图: 半衰期公式、真实同位素计算、剩余母核、已衰变原子核以及活度下降。',
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
type: 'paragraph',
|
|
59
|
-
html: '本工具结合了两个互补模型。数值计算结果采用标准指数衰变方程,而原子场则通过随机阈值模拟单个原子核。',
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
type: 'title',
|
|
63
|
-
text: '计算器使用的放射性衰变公式',
|
|
64
|
-
level: 3,
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
type: 'paragraph',
|
|
68
|
-
html: '使用的公式是 <strong>N(t) = N0 x (1/2)^(t / T1/2)</strong>。<strong>N0</strong> 是初始母核数量,<strong>N(t)</strong> 是时间 <strong>t</strong> 后的期望剩余量,<strong>T1/2</strong> 是半衰期。',
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
type: 'paragraph',
|
|
72
|
-
html: '例如,如果初始样本有 1,000 个母核,经过 2 个半衰期后,预期剩余量为 1,000 x (1/2)^2 = 250 个原子核。衰变掉的数量为 750 个。',
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
type: 'table',
|
|
76
|
-
headers: ['经过时间', '公式因子', '剩余母核', '相对活度'],
|
|
77
|
-
rows: [
|
|
78
|
-
['0 个半衰期', '(1/2)^0', '100%', '100%'],
|
|
79
|
-
['1 个半衰期', '(1/2)^1', '50%', '50%'],
|
|
80
|
-
['2 个半衰期', '(1/2)^2', '25%', '25%'],
|
|
81
|
-
['3 个半衰期', '(1/2)^3', '12.5%', '12.5%'],
|
|
82
|
-
['5 个半衰期', '(1/2)^5', '3.125%', '3.125%'],
|
|
83
|
-
['10 个半衰期', '(1/2)^10', '0.098%', '0.098%'],
|
|
84
|
-
],
|
|
85
|
-
},
|
|
86
|
-
{
|
|
87
|
-
type: 'title',
|
|
88
|
-
text: '如何计算半衰期后的剩余活度',
|
|
89
|
-
level: 3,
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
type: 'paragraph',
|
|
93
|
-
html: '对于单一同位素,活度与未衰变原子核数量成正比。如果母体同位素还剩 25%,其活度也约为初始活度的 25%。',
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
type: 'paragraph',
|
|
97
|
-
html: '这种关系在核医学和辐射防护中至关重要。',
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
type: 'title',
|
|
101
|
-
text: '示例:碳-14、碘-131、锝-99m、铀-238 和氡-222',
|
|
102
|
-
level: 3,
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
type: 'table',
|
|
106
|
-
headers: ['同位素', '近似半衰期', '常见用途', '结果说明'],
|
|
107
|
-
rows: [
|
|
108
|
-
['碳-14', '5,730 年', '放射性碳测年', '有机物中剩余的碳-14 活度。'],
|
|
109
|
-
['碘-131', '8.02 天', '医学治疗', '治疗后数天内活度下降的速度。'],
|
|
110
|
-
['锝-99m', '6.01 小时', '诊断成像', '有用的医学活度为什么会在一个临床工作日内下降。'],
|
|
111
|
-
['铀-238', '44.7 亿年', '地质年代测定', '长寿命同位素为什么能在地球历史尺度上被测量。'],
|
|
112
|
-
['氡-222', '3.82 天', '室内辐射', '气态暴露源在数天内的变化。'],
|
|
113
|
-
],
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
type: 'paragraph',
|
|
117
|
-
html: '这些示例涵盖了不同的时间尺度和科学应用。',
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
type: 'title',
|
|
121
|
-
text: '如何解读随机原子模拟',
|
|
122
|
-
level: 3,
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
type: 'paragraph',
|
|
126
|
-
html: '原子场采用了随机建模。对于小样本,结果会在理论值周围波动。',
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
type: 'paragraph',
|
|
130
|
-
html: '平滑曲线只有在汇总大量独立随机事件时才会显现。',
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
type: 'title',
|
|
134
|
-
text: '半衰期计算器的应用场景',
|
|
135
|
-
level: 3,
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
type: 'list',
|
|
139
|
-
items: [
|
|
140
|
-
'<strong>物理教学:</strong> 计算剩余原子核并联系直观模型。',
|
|
141
|
-
'<strong>核化学:</strong> 比较同位素稳定性和衰变速率。',
|
|
142
|
-
'<strong>碳十四测年:</strong> 理解有机样本的衰变规律。',
|
|
143
|
-
'<strong>核医学:</strong> 规划短半衰期同位素诊断。',
|
|
144
|
-
'<strong>辐射防护:</strong> 评估活度随时间下降的趋势。',
|
|
145
|
-
],
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
type: 'title',
|
|
149
|
-
text: '重要局限性',
|
|
150
|
-
level: 3,
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
type: 'paragraph',
|
|
154
|
-
html: '本计算器仅对母体同位素进行单一半衰期建模。',
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
type: 'paragraph',
|
|
158
|
-
html: '请将计算结果作为教学模型和科学估算参考。',
|
|
159
|
-
},
|
|
1
|
+
import { bibliography } from '../bibliography';
|
|
2
|
+
import type { ToolLocaleContent } from '../../../types';
|
|
3
|
+
|
|
4
|
+
const slug = 'radioactive-decay-half-life-calculator';
|
|
5
|
+
const title = '放射性衰变半衰期计算器';
|
|
6
|
+
const description = '使用真实同位素、半衰期公式、随机原子场、剩余数量和相对活度来模拟放射性衰变。';
|
|
7
|
+
|
|
8
|
+
const howTo = [
|
|
9
|
+
{ name: '选择同位素', text: '从碳-14、碘-131、铀-238、锝-99m 或氡-222 开始。每个预设都会载入真实的半衰期和常见科学用途。' },
|
|
10
|
+
{ name: '设置样本和时间', text: '调整显示的原子数量,并推进时间,观察剩余比例如何遵循半衰期的指数规律。' },
|
|
11
|
+
{ name: '比较精确计算和原子随机性', text: '把确定性结果作为期望值,再观察原子场,理解小样本为什么会围绕理论曲线波动。' },
|
|
12
|
+
{ name: '解读活度', text: '活度与未衰变原子核数量按相同比例下降,因此仪表显示相对于初始样本还剩多少辐射率。' },
|
|
13
|
+
];
|
|
14
|
+
|
|
15
|
+
const faq = [
|
|
16
|
+
{ question: '什么是半衰期?', answer: '半衰期是样本中平均一半不稳定原子核发生衰变所需的时间。一个半衰期后剩 50%,两个后剩 25%,三个后剩 12.5%。' },
|
|
17
|
+
{ question: '为什么原子场不总是等于精确百分比?', answer: '放射性衰变是概率过程。公式给出大样本的期望比例,而原子场用随机阈值模拟单个原子。' },
|
|
18
|
+
{ question: '活度和剩余原子数是一回事吗?', answer: '对单一同位素来说,活度与未衰变原子核数量成正比。如果还剩 30% 的原子,瞬时活度也约为初始活度的 30%。' },
|
|
19
|
+
{ question: '这个计算器能用于碳十四测年吗?', answer: '可用于概念理解。真实实验室测年还需要校准曲线、污染修正和样本处理。' },
|
|
20
|
+
{ question: '每种同位素都会衰变成一个稳定产物吗?', answer: '不一定。有些同位素会通过包含多个子体产物的衰变链变化。本工具建模的是母体同位素的半衰期。' },
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
export const content: ToolLocaleContent = {
|
|
24
|
+
slug,
|
|
25
|
+
title,
|
|
26
|
+
description,
|
|
27
|
+
ui: {
|
|
28
|
+
isotope: '同位素',
|
|
29
|
+
sampleAtoms: '样本原子',
|
|
30
|
+
elapsedTime: '经过时间',
|
|
31
|
+
halfLife: '半衰期',
|
|
32
|
+
remaining: '剩余',
|
|
33
|
+
decayed: '已衰变',
|
|
34
|
+
activity: '相对活度',
|
|
35
|
+
timeUnit: '时间单位',
|
|
36
|
+
expectedCurve: '期望曲线',
|
|
37
|
+
atomField: '原子场',
|
|
38
|
+
presetUse: '常见用途',
|
|
39
|
+
oneHalfLife: '1 个半衰期',
|
|
40
|
+
twoHalfLives: '2 个半衰期',
|
|
41
|
+
fourHalfLives: '4 个半衰期',
|
|
42
|
+
custom: '自定义',
|
|
43
|
+
liveAtoms: '未衰变原子',
|
|
44
|
+
decayedAtoms: '已衰变原子',
|
|
45
|
+
resetSeed: '新的原子图案',
|
|
46
|
+
},
|
|
47
|
+
seo: [
|
|
48
|
+
{
|
|
49
|
+
type: 'title',
|
|
50
|
+
text: '放射性半衰期计算器: 剩余原子、活度和同位素示例',
|
|
51
|
+
level: 2,
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
type: 'paragraph',
|
|
55
|
+
html: '这个放射性衰变计算器用于估算不稳定同位素在给定时间后还剩多少。它覆盖常见搜索意图: 半衰期公式、真实同位素计算、剩余母核、已衰变原子核以及活度下降。',
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: 'paragraph',
|
|
59
|
+
html: '本工具结合了两个互补模型。数值计算结果采用标准指数衰变方程,而原子场则通过随机阈值模拟单个原子核。',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
type: 'title',
|
|
63
|
+
text: '计算器使用的放射性衰变公式',
|
|
64
|
+
level: 3,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: 'paragraph',
|
|
68
|
+
html: '使用的公式是 <strong>N(t) = N0 x (1/2)^(t / T1/2)</strong>。<strong>N0</strong> 是初始母核数量,<strong>N(t)</strong> 是时间 <strong>t</strong> 后的期望剩余量,<strong>T1/2</strong> 是半衰期。',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
type: 'paragraph',
|
|
72
|
+
html: '例如,如果初始样本有 1,000 个母核,经过 2 个半衰期后,预期剩余量为 1,000 x (1/2)^2 = 250 个原子核。衰变掉的数量为 750 个。',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: 'table',
|
|
76
|
+
headers: ['经过时间', '公式因子', '剩余母核', '相对活度'],
|
|
77
|
+
rows: [
|
|
78
|
+
['0 个半衰期', '(1/2)^0', '100%', '100%'],
|
|
79
|
+
['1 个半衰期', '(1/2)^1', '50%', '50%'],
|
|
80
|
+
['2 个半衰期', '(1/2)^2', '25%', '25%'],
|
|
81
|
+
['3 个半衰期', '(1/2)^3', '12.5%', '12.5%'],
|
|
82
|
+
['5 个半衰期', '(1/2)^5', '3.125%', '3.125%'],
|
|
83
|
+
['10 个半衰期', '(1/2)^10', '0.098%', '0.098%'],
|
|
84
|
+
],
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: 'title',
|
|
88
|
+
text: '如何计算半衰期后的剩余活度',
|
|
89
|
+
level: 3,
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
type: 'paragraph',
|
|
93
|
+
html: '对于单一同位素,活度与未衰变原子核数量成正比。如果母体同位素还剩 25%,其活度也约为初始活度的 25%。',
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
type: 'paragraph',
|
|
97
|
+
html: '这种关系在核医学和辐射防护中至关重要。',
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
type: 'title',
|
|
101
|
+
text: '示例:碳-14、碘-131、锝-99m、铀-238 和氡-222',
|
|
102
|
+
level: 3,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: 'table',
|
|
106
|
+
headers: ['同位素', '近似半衰期', '常见用途', '结果说明'],
|
|
107
|
+
rows: [
|
|
108
|
+
['碳-14', '5,730 年', '放射性碳测年', '有机物中剩余的碳-14 活度。'],
|
|
109
|
+
['碘-131', '8.02 天', '医学治疗', '治疗后数天内活度下降的速度。'],
|
|
110
|
+
['锝-99m', '6.01 小时', '诊断成像', '有用的医学活度为什么会在一个临床工作日内下降。'],
|
|
111
|
+
['铀-238', '44.7 亿年', '地质年代测定', '长寿命同位素为什么能在地球历史尺度上被测量。'],
|
|
112
|
+
['氡-222', '3.82 天', '室内辐射', '气态暴露源在数天内的变化。'],
|
|
113
|
+
],
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
type: 'paragraph',
|
|
117
|
+
html: '这些示例涵盖了不同的时间尺度和科学应用。',
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
type: 'title',
|
|
121
|
+
text: '如何解读随机原子模拟',
|
|
122
|
+
level: 3,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
type: 'paragraph',
|
|
126
|
+
html: '原子场采用了随机建模。对于小样本,结果会在理论值周围波动。',
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
type: 'paragraph',
|
|
130
|
+
html: '平滑曲线只有在汇总大量独立随机事件时才会显现。',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
type: 'title',
|
|
134
|
+
text: '半衰期计算器的应用场景',
|
|
135
|
+
level: 3,
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
type: 'list',
|
|
139
|
+
items: [
|
|
140
|
+
'<strong>物理教学:</strong> 计算剩余原子核并联系直观模型。',
|
|
141
|
+
'<strong>核化学:</strong> 比较同位素稳定性和衰变速率。',
|
|
142
|
+
'<strong>碳十四测年:</strong> 理解有机样本的衰变规律。',
|
|
143
|
+
'<strong>核医学:</strong> 规划短半衰期同位素诊断。',
|
|
144
|
+
'<strong>辐射防护:</strong> 评估活度随时间下降的趋势。',
|
|
145
|
+
],
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
type: 'title',
|
|
149
|
+
text: '重要局限性',
|
|
150
|
+
level: 3,
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
type: 'paragraph',
|
|
154
|
+
html: '本计算器仅对母体同位素进行单一半衰期建模。',
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: 'paragraph',
|
|
158
|
+
html: '请将计算结果作为教学模型和科学估算参考。',
|
|
159
|
+
},
|
|
160
|
+
{ type: 'paragraph', html: '本说明整理模型的假设,并解释输入参数如何改变结果。每次只改变一个变量,再比较多次运行,便于判断差异的原因。图示是用于学习的近似模型,真实系统还会受到更多变量、测量误差和边界条件影响。请用结果理解数量级、提出问题并比较情景;如果用于实际判断或研究,还应核对原始数据、单位和专业资料。记录参数可以复现计算,也能更清楚地讨论模型的限制。' },
|
|
161
|
+
{ type: 'paragraph', html: '请用相同条件重新计算,再逐项改变输入进行比较。记录初始值、计算规则和使用的上限,有助于区分模型趋势与数值变化。本结果是学习用途的近似,实际观测或设计还需要额外数据和专业核查。' },
|
|
162
|
+
{ type: 'paragraph', html: '还应分别改变初始数量和经过时间,观察曲线为何不是线性的。样本较小时会出现随机波动,因此单次运行不一定与理论曲线完全重合。' },
|
|
163
|
+
{ type: 'paragraph', html: '这些参数也可以用于课堂演示:先计算理论剩余量,再观察随机事件如何围绕理论趋势变化。' },
|
|
160
164
|
],
|
|
161
165
|
faq,
|
|
162
|
-
bibliography,
|
|
163
|
-
howTo,
|
|
164
|
-
schemas: [
|
|
165
|
-
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'ScientificApplication', operatingSystem: 'Any' },
|
|
166
|
-
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
167
|
-
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
168
|
-
],
|
|
169
|
-
};
|
|
166
|
+
bibliography,
|
|
167
|
+
howTo,
|
|
168
|
+
schemas: [
|
|
169
|
+
{ '@context': 'https://schema.org', '@type': 'SoftwareApplication', name: title, description, applicationCategory: 'ScientificApplication', operatingSystem: 'Any' },
|
|
170
|
+
{ '@context': 'https://schema.org', '@type': 'FAQPage', mainEntity: faq.map((item) => ({ '@type': 'Question', name: item.question, acceptedAnswer: { '@type': 'Answer', text: item.answer } })) },
|
|
171
|
+
{ '@context': 'https://schema.org', '@type': 'HowTo', name: title, step: howTo.map((step) => ({ '@type': 'HowToStep', name: step.name, text: step.text })) },
|
|
172
|
+
],
|
|
173
|
+
};
|