@sciexpr/presets 0.1.0 → 0.1.1

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/dist/index.js CHANGED
@@ -338,26 +338,65 @@ function getTemplateById(id) {
338
338
 
339
339
  // src/chem-templates.ts
340
340
  var COMPOUND_TEMPLATES = [
341
- // 无机酸
341
+ // --- 单质 & 常见气体 ---
342
+ { id: "o2", name: "\u6C27\u6C14", latex: "\\ce{O2}", category: "compound", description: "\u6C27\u6C14", tags: ["gas", "diatomic", "oxidizing"] },
343
+ { id: "n2", name: "\u6C2E\u6C14", latex: "\\ce{N2}", category: "compound", description: "\u6C2E\u6C14", tags: ["gas", "diatomic", "inert"] },
344
+ { id: "cl2", name: "\u6C2F\u6C14", latex: "\\ce{Cl2}", category: "compound", description: "\u6C2F\u6C14", tags: ["gas", "halogen", "toxic", "oxidizing"] },
345
+ // --- 氧化物 ---
342
346
  { id: "h2o", name: "\u6C34", latex: "\\ce{H2O}", category: "compound", description: "\u6C34", tags: ["water", "inorganic"] },
347
+ { id: "co2", name: "\u4E8C\u6C27\u5316\u78B3", latex: "\\ce{CO2}", category: "compound", description: "\u4E8C\u6C27\u5316\u78B3", tags: ["oxide", "gas"] },
348
+ { id: "co", name: "\u4E00\u6C27\u5316\u78B3", latex: "\\ce{CO}", category: "compound", description: "\u4E00\u6C27\u5316\u78B3", tags: ["oxide", "gas", "toxic", "reducing"] },
349
+ { id: "so2", name: "\u4E8C\u6C27\u5316\u786B", latex: "\\ce{SO2}", category: "compound", description: "\u4E8C\u6C27\u5316\u786B", tags: ["oxide", "gas", "acid-rain"] },
350
+ { id: "cuo", name: "\u6C27\u5316\u94DC", latex: "\\ce{CuO}", category: "compound", description: "\u6C27\u5316\u94DC\uFF08\u9ED1\u8272\u56FA\u4F53\uFF09", tags: ["oxide", "copper", "solid"] },
351
+ { id: "mno2", name: "\u4E8C\u6C27\u5316\u9530", latex: "\\ce{MnO2}", category: "compound", description: "\u4E8C\u6C27\u5316\u9530\uFF08\u50AC\u5316\u5242\uFF09", tags: ["oxide", "catalyst", "solid"] },
352
+ { id: "cao", name: "\u6C27\u5316\u9499", latex: "\\ce{CaO}", category: "compound", description: "\u751F\u77F3\u7070 / \u6C27\u5316\u9499", tags: ["oxide", "industrial", "solid"] },
353
+ { id: "fe2o3", name: "\u6C27\u5316\u94C1", latex: "\\ce{Fe2O3}", category: "compound", description: "\u94C1\u9508 / \u8D64\u94C1\u77FF", tags: ["oxide", "rust"] },
354
+ { id: "al2o3", name: "\u6C27\u5316\u94DD", latex: "\\ce{Al2O3}", category: "compound", description: "\u6C27\u5316\u94DD", tags: ["oxide"] },
355
+ { id: "sio2", name: "\u4E8C\u6C27\u5316\u7845", latex: "\\ce{SiO2}", category: "compound", description: "\u77F3\u82F1 / \u4E8C\u6C27\u5316\u7845", tags: ["oxide", "quartz"] },
356
+ // --- 无机酸 ---
343
357
  { id: "h2so4", name: "\u786B\u9178", latex: "\\ce{H2SO4}", category: "compound", description: "\u786B\u9178", tags: ["acid", "strong"] },
344
358
  { id: "hcl", name: "\u76D0\u9178", latex: "\\ce{HCl}", category: "compound", description: "\u76D0\u9178 / \u6C2F\u5316\u6C22", tags: ["acid", "strong"] },
345
359
  { id: "hno3", name: "\u785D\u9178", latex: "\\ce{HNO3}", category: "compound", description: "\u785D\u9178", tags: ["acid", "strong"] },
346
360
  { id: "h3po4", name: "\u78F7\u9178", latex: "\\ce{H3PO4}", category: "compound", description: "\u78F7\u9178", tags: ["acid"] },
361
+ { id: "h2co3", name: "\u78B3\u9178", latex: "\\ce{H2CO3}", category: "compound", description: "\u78B3\u9178\uFF08\u4E0D\u7A33\u5B9A\uFF09", tags: ["acid", "weak", "unstable"] },
362
+ { id: "h2s", name: "\u786B\u5316\u6C22", latex: "\\ce{H2S}", category: "compound", description: "\u786B\u5316\u6C22\uFF08\u81ED\u9E21\u86CB\u5473\uFF09", tags: ["acid", "weak", "gas", "toxic"] },
363
+ // --- 碱 ---
347
364
  { id: "naoh", name: "\u6C22\u6C27\u5316\u94A0", latex: "\\ce{NaOH}", category: "compound", description: "\u6C22\u6C27\u5316\u94A0 / \u70E7\u78B1", tags: ["base", "strong"] },
348
365
  { id: "caoh2", name: "\u6C22\u6C27\u5316\u9499", latex: "\\ce{Ca(OH)2}", category: "compound", description: "\u6C22\u6C27\u5316\u9499 / \u719F\u77F3\u7070", tags: ["base"] },
349
- //
366
+ { id: "cuoh2", name: "\u6C22\u6C27\u5316\u94DC", latex: "\\ce{Cu(OH)2}", category: "compound", description: "\u6C22\u6C27\u5316\u94DC\uFF08\u84DD\u8272\u6C89\u6DC0\uFF09", tags: ["base", "precipitate", "copper"] },
367
+ { id: "feoh3", name: "\u6C22\u6C27\u5316\u94C1", latex: "\\ce{Fe(OH)3}", category: "compound", description: "\u6C22\u6C27\u5316\u94C1\uFF08\u7EA2\u8910\u8272\u6C89\u6DC0\uFF09", tags: ["base", "precipitate", "iron"] },
368
+ { id: "feoh2", name: "\u6C22\u6C27\u5316\u4E9A\u94C1", latex: "\\ce{Fe(OH)2}", category: "compound", description: "\u6C22\u6C27\u5316\u4E9A\u94C1\uFF08\u767D\u8272\u6C89\u6DC0\uFF09", tags: ["base", "precipitate", "iron", "unstable"] },
369
+ // --- 盐 — 氯化物 ---
350
370
  { id: "nacl", name: "\u6C2F\u5316\u94A0", latex: "\\ce{NaCl}", category: "compound", description: "\u98DF\u76D0 / \u6C2F\u5316\u94A0", tags: ["salt", "table"] },
371
+ { id: "nh4cl", name: "\u6C2F\u5316\u94F5", latex: "\\ce{NH4Cl}", category: "compound", description: "\u6C2F\u5316\u94F5", tags: ["salt", "ammonium"] },
372
+ { id: "cacl2", name: "\u6C2F\u5316\u9499", latex: "\\ce{CaCl2}", category: "compound", description: "\u6C2F\u5316\u9499\uFF08\u5E72\u71E5\u5242\uFF09", tags: ["salt", "calcium", "desiccant"] },
373
+ { id: "zncl2", name: "\u6C2F\u5316\u950C", latex: "\\ce{ZnCl2}", category: "compound", description: "\u6C2F\u5316\u950C", tags: ["salt", "zinc"] },
374
+ { id: "fecl2", name: "\u6C2F\u5316\u4E9A\u94C1", latex: "\\ce{FeCl2}", category: "compound", description: "\u6C2F\u5316\u4E9A\u94C1", tags: ["salt", "iron", "low-valence"] },
375
+ { id: "mgcl2", name: "\u6C2F\u5316\u9541", latex: "\\ce{MgCl2}", category: "compound", description: "\u6C2F\u5316\u9541", tags: ["salt", "magnesium"] },
376
+ { id: "alcl3", name: "\u6C2F\u5316\u94DD", latex: "\\ce{AlCl3}", category: "compound", description: "\u6C2F\u5316\u94DD", tags: ["salt", "aluminum"] },
377
+ { id: "bacl2", name: "\u6C2F\u5316\u94A1", latex: "\\ce{BaCl2}", category: "compound", description: "\u6C2F\u5316\u94A1\uFF08\u6709\u6BD2\uFF09", tags: ["salt", "barium", "toxic"] },
378
+ // --- 盐 — 硫酸盐 ---
379
+ { id: "caso4", name: "\u786B\u9178\u9499", latex: "\\ce{CaSO4}", category: "compound", description: "\u77F3\u818F", tags: ["salt", "gypsum"] },
380
+ { id: "cuso4", name: "\u786B\u9178\u94DC", latex: "\\ce{CuSO4}", category: "compound", description: "\u786B\u9178\u94DC / \u84DD\u77FE", tags: ["salt", "copper", "blue"] },
381
+ { id: "feso4", name: "\u786B\u9178\u4E9A\u94C1", latex: "\\ce{FeSO4}", category: "compound", description: "\u786B\u9178\u4E9A\u94C1\uFF08\u6D45\u7EFF\u8272\uFF09", tags: ["salt", "iron", "low-valence"] },
382
+ { id: "znso4", name: "\u786B\u9178\u950C", latex: "\\ce{ZnSO4}", category: "compound", description: "\u786B\u9178\u950C", tags: ["salt", "zinc"] },
383
+ { id: "mgso4", name: "\u786B\u9178\u9541", latex: "\\ce{MgSO4}", category: "compound", description: "\u786B\u9178\u9541", tags: ["salt", "magnesium"] },
384
+ { id: "al2so43", name: "\u786B\u9178\u94DD", latex: "\\ce{Al2(SO4)3}", category: "compound", description: "\u786B\u9178\u94DD", tags: ["salt", "aluminum"] },
385
+ { id: "na2so4", name: "\u786B\u9178\u94A0", latex: "\\ce{Na2SO4}", category: "compound", description: "\u786B\u9178\u94A0", tags: ["salt", "sodium"] },
386
+ // --- 盐 — 硝酸盐 ---
387
+ { id: "agno3", name: "\u785D\u9178\u94F6", latex: "\\ce{AgNO3}", category: "compound", description: "\u785D\u9178\u94F6", tags: ["salt", "silver", "nitrate"] },
388
+ { id: "cuno32", name: "\u785D\u9178\u94DC", latex: "\\ce{Cu(NO3)2}", category: "compound", description: "\u785D\u9178\u94DC", tags: ["salt", "copper", "nitrate"] },
389
+ // --- 盐 — 碳酸盐/其他 ---
351
390
  { id: "na2co3", name: "\u78B3\u9178\u94A0", latex: "\\ce{Na2CO3}", category: "compound", description: "\u7EAF\u78B1 / \u78B3\u9178\u94A0", tags: ["salt", "soda"] },
352
391
  { id: "nahco3", name: "\u78B3\u9178\u6C22\u94A0", latex: "\\ce{NaHCO3}", category: "compound", description: "\u5C0F\u82CF\u6253", tags: ["salt", "baking"] },
353
392
  { id: "caco3", name: "\u78B3\u9178\u9499", latex: "\\ce{CaCO3}", category: "compound", description: "\u77F3\u7070\u77F3 / \u5927\u7406\u77F3", tags: ["salt", "limestone"] },
354
- { id: "caso4", name: "\u786B\u9178\u9499", latex: "\\ce{CaSO4}", category: "compound", description: "\u77F3\u818F", tags: ["salt", "gypsum"] },
355
- // 氧化物
356
- { id: "co2", name: "\u4E8C\u6C27\u5316\u78B3", latex: "\\ce{CO2}", category: "compound", description: "\u4E8C\u6C27\u5316\u78B3", tags: ["oxide", "gas"] },
357
- { id: "fe2o3", name: "\u6C27\u5316\u94C1", latex: "\\ce{Fe2O3}", category: "compound", description: "\u94C1\u9508 / \u8D64\u94C1\u77FF", tags: ["oxide", "rust"] },
358
- { id: "al2o3", name: "\u6C27\u5316\u94DD", latex: "\\ce{Al2O3}", category: "compound", description: "\u6C27\u5316\u94DD", tags: ["oxide"] },
359
- { id: "sio2", name: "\u4E8C\u6C27\u5316\u7845", latex: "\\ce{SiO2}", category: "compound", description: "\u77F3\u82F1 / \u4E8C\u6C27\u5316\u7845", tags: ["oxide", "quartz"] },
360
- // 有机物
393
+ { id: "cahco32", name: "\u78B3\u9178\u6C22\u9499", latex: "\\ce{Ca(HCO3)2}", category: "compound", description: "\u78B3\u9178\u6C22\u9499", tags: ["salt", "bicarbonate", "calcium"] },
394
+ { id: "kmno4", name: "\u9AD8\u9530\u9178\u94BE", latex: "\\ce{KMnO4}", category: "compound", description: "\u9AD8\u9530\u9178\u94BE\uFF08\u7D2B\u8272\uFF09", tags: ["salt", "oxidizing", "purple"] },
395
+ { id: "kclo3", name: "\u6C2F\u9178\u94BE", latex: "\\ce{KClO3}", category: "compound", description: "\u6C2F\u9178\u94BE\uFF08\u5236\u6C27\u6C14\uFF09", tags: ["salt", "oxidizing", "chlorate"] },
396
+ // --- 其他无机物 ---
397
+ { id: "nh3", name: "\u6C28\u6C14", latex: "\\ce{NH3}", category: "compound", description: "\u6C28\u6C14\uFF08\u523A\u6FC0\u6027\u6C14\u5473\uFF09", tags: ["gas", "ammonia", "base"] },
398
+ { id: "h2o2", name: "\u8FC7\u6C27\u5316\u6C22", latex: "\\ce{H2O2}", category: "compound", description: "\u53CC\u6C27\u6C34 / \u8FC7\u6C27\u5316\u6C22", tags: ["peroxide", "oxidizing", "liquid"] },
399
+ // --- 有机物 ---
361
400
  { id: "ch4", name: "\u7532\u70F7", latex: "\\ce{CH4}", category: "compound", description: "\u7532\u70F7 / \u5929\u7136\u6C14", tags: ["organic", "alkane"] },
362
401
  { id: "c2h5oh", name: "\u4E59\u9187", latex: "\\ce{C2H5OH}", category: "compound", description: "\u9152\u7CBE / \u4E59\u9187", tags: ["organic", "alcohol"] },
363
402
  { id: "c6h12o6", name: "\u8461\u8404\u7CD6", latex: "\\ce{C6H12O6}", category: "compound", description: "\u8461\u8404\u7CD6", tags: ["organic", "sugar"] },
@@ -427,6 +466,482 @@ var REACTION_TEMPLATES = [
427
466
  category: "reaction",
428
467
  description: "\u53EF\u9006\u53CD\u5E94\u901A\u7528\u5F0F",
429
468
  tags: ["equilibrium", "reversible"]
469
+ },
470
+ // =========================================================================
471
+ // 中学化学常见反应 (Middle School Common Reactions)
472
+ // =========================================================================
473
+ // --- 气体制备 & 分解 ---
474
+ {
475
+ id: "nh4cl-caoh2",
476
+ name: "\u6C2F\u5316\u94F5\u4E0E\u6C22\u6C27\u5316\u9499\u53CD\u5E94",
477
+ latex: "\\ce{2NH4Cl + Ca(OH)2 ->[\u52A0\u70ED] CaCl2 + 2NH3 ^ + 2H2O}",
478
+ category: "reaction",
479
+ description: "\u5B9E\u9A8C\u5BA4\u5236\u6C28\u6C14",
480
+ tags: ["ammonia", "gas-preparation", "heating"]
481
+ },
482
+ {
483
+ id: "electrolysis-water-2",
484
+ name: "\u6C34\u5728\u901A\u7535\u6761\u4EF6\u4E0B\u5206\u89E3",
485
+ latex: "\\ce{2H2O ->[\u901A\u7535] 2H2 ^ + O2 ^}",
486
+ category: "reaction",
487
+ description: "\u7535\u89E3\u6C34\u751F\u6210\u6C22\u6C14\u548C\u6C27\u6C14",
488
+ tags: ["electrolysis", "water", "decomposition"]
489
+ },
490
+ {
491
+ id: "h2co3-decomposition",
492
+ name: "\u78B3\u9178\u4E0D\u7A33\u5B9A\u5206\u89E3",
493
+ latex: "\\ce{H2CO3 -> H2O + CO2 ^}",
494
+ category: "reaction",
495
+ description: "\u78B3\u9178\u5E38\u6E29\u5206\u89E3",
496
+ tags: ["decomposition", "acid"]
497
+ },
498
+ {
499
+ id: "caco3-decomposition",
500
+ name: "\u78B3\u9178\u9499\u9AD8\u6E29\u5206\u89E3",
501
+ latex: "\\ce{CaCO3 ->[\u9AD8\u6E29] CaO + CO2 ^}",
502
+ category: "reaction",
503
+ description: "\u77F3\u7070\u77F3\u9AD8\u6E29\u7145\u70E7",
504
+ tags: ["decomposition", "heating", "industrial"]
505
+ },
506
+ {
507
+ id: "kmno4-heating",
508
+ name: "\u52A0\u70ED\u9AD8\u9530\u9178\u94BE",
509
+ latex: "\\ce{2KMnO4 ->[\u52A0\u70ED] K2MnO4 + MnO2 + O2 ^}",
510
+ category: "reaction",
511
+ description: "\u5B9E\u9A8C\u5BA4\u5236\u6C27\u6C14",
512
+ tags: ["oxygen", "gas-preparation", "heating"]
513
+ },
514
+ {
515
+ id: "kclo3-heating",
516
+ name: "\u52A0\u70ED\u6C2F\u9178\u94BE\u548C\u4E8C\u6C27\u5316\u9530\u7684\u6DF7\u5408\u7269",
517
+ latex: "\\ce{2KClO3 ->[MnO2][\u52A0\u70ED] 2KCl + 3O2 ^}",
518
+ category: "reaction",
519
+ description: "\u4E8C\u6C27\u5316\u9530\u50AC\u5316\u5206\u89E3\u6C2F\u9178\u94BE\u5236\u6C27\u6C14",
520
+ tags: ["oxygen", "gas-preparation", "catalyst", "heating"]
521
+ },
522
+ {
523
+ id: "h2o2-decomposition",
524
+ name: "\u8FC7\u6C27\u5316\u6C22\u5728\u4E8C\u6C27\u5316\u9530\u50AC\u5316\u4E0B\u5206\u89E3",
525
+ latex: "\\ce{2H2O2 ->[MnO2] 2H2O + O2 ^}",
526
+ category: "reaction",
527
+ description: "\u53CC\u6C27\u6C34\u50AC\u5316\u5206\u89E3\u5236\u6C27\u6C14",
528
+ tags: ["oxygen", "gas-preparation", "catalyst"]
529
+ },
530
+ {
531
+ id: "nahco3-heating",
532
+ name: "\u78B3\u9178\u6C22\u94A0\u53D7\u70ED\u5206\u89E3",
533
+ latex: "\\ce{2NaHCO3 ->[\u52A0\u70ED] Na2CO3 + H2O + CO2 ^}",
534
+ category: "reaction",
535
+ description: "\u5C0F\u82CF\u6253\u53D7\u70ED\u5206\u89E3",
536
+ tags: ["decomposition", "heating", "baking"]
537
+ },
538
+ // --- 化合反应 ---
539
+ {
540
+ id: "co2-water",
541
+ name: "\u4E8C\u6C27\u5316\u78B3\u4E0E\u6C34\u53CD\u5E94",
542
+ latex: "\\ce{CO2 + H2O -> H2CO3}",
543
+ category: "reaction",
544
+ description: "\u78B3\u9178\u7684\u751F\u6210",
545
+ tags: ["combination", "acid"]
546
+ },
547
+ {
548
+ id: "co2-caoh2",
549
+ name: "\u4E8C\u6C27\u5316\u78B3\u4E0E\u6F84\u6E05\u77F3\u7070\u6C34\u53CD\u5E94",
550
+ latex: "\\ce{CO2 + Ca(OH)2 -> CaCO3 v + H2O}",
551
+ category: "reaction",
552
+ description: "\u77F3\u7070\u6C34\u53D8\u6D51\u6D4A",
553
+ tags: ["precipitation", "co2-test"]
554
+ },
555
+ {
556
+ id: "co2-caoh2-2",
557
+ name: "\u4E8C\u6C27\u5316\u78B3\u901A\u5165\u6F84\u6E05\u77F3\u7070\u6C34",
558
+ latex: "\\ce{CO2 + Ca(OH)2 -> CaCO3 v + H2O}",
559
+ category: "reaction",
560
+ description: "CO\u2082 \u68C0\u9A8C\u65B9\u6CD5",
561
+ tags: ["precipitation", "co2-test"]
562
+ },
563
+ // --- 金属与盐溶液反应 ---
564
+ {
565
+ id: "fe-cuso4",
566
+ name: "\u94C1\u4E0E\u786B\u9178\u94DC\u6EB6\u6DB2\u53CD\u5E94",
567
+ latex: "\\ce{Fe + CuSO4 -> FeSO4 + Cu}",
568
+ category: "reaction",
569
+ description: "\u6E7F\u6CD5\u70BC\u94DC / \u94C1\u7F6E\u6362\u94DC",
570
+ tags: ["displacement", "metal", "redox"]
571
+ },
572
+ {
573
+ id: "cu-agno3",
574
+ name: "\u94DC\u548C\u785D\u9178\u94F6\u6EB6\u6DB2\u53CD\u5E94",
575
+ latex: "\\ce{Cu + 2AgNO3 -> Cu(NO3)2 + 2Ag}",
576
+ category: "reaction",
577
+ description: "\u94DC\u7F6E\u6362\u94F6",
578
+ tags: ["displacement", "metal", "redox"]
579
+ },
580
+ // --- 金属与氧气反应 ---
581
+ {
582
+ id: "al-o2",
583
+ name: "\u94DD\u4E0E\u6C27\u6C14\u53CD\u5E94",
584
+ latex: "\\ce{4Al + 3O2 ->[\u70B9\u71C3] 2Al2O3}",
585
+ category: "reaction",
586
+ description: "\u94DD\u5728\u6C27\u6C14\u4E2D\u71C3\u70E7",
587
+ tags: ["combustion", "metal", "oxidation"]
588
+ },
589
+ {
590
+ id: "mg-o2",
591
+ name: "\u9541\u5728\u7A7A\u6C14\u4E2D\u71C3\u70E7",
592
+ latex: "\\ce{2Mg + O2 ->[\u70B9\u71C3] 2MgO}",
593
+ category: "reaction",
594
+ description: "\u9541\u5E26\u71C3\u70E7\u53D1\u51FA\u8000\u773C\u767D\u5149",
595
+ tags: ["combustion", "metal", "oxidation"]
596
+ },
597
+ {
598
+ id: "fe-o2",
599
+ name: "\u94C1\u5728\u6C27\u6C14\u4E2D\u71C3\u70E7",
600
+ latex: "\\ce{3Fe + 2O2 ->[\u70B9\u71C3] Fe3O4}",
601
+ category: "reaction",
602
+ description: "\u94C1\u4E1D\u5728\u6C27\u6C14\u4E2D\u5267\u70C8\u71C3\u70E7",
603
+ tags: ["combustion", "metal", "oxidation"]
604
+ },
605
+ {
606
+ id: "cu-o2",
607
+ name: "\u94DC\u5728\u7A7A\u6C14\u4E2D\u53D7\u70ED",
608
+ latex: "\\ce{2Cu + O2 ->[\u52A0\u70ED] 2CuO}",
609
+ category: "reaction",
610
+ description: "\u94DC\u8868\u9762\u53D8\u9ED1",
611
+ tags: ["oxidation", "metal", "heating"]
612
+ },
613
+ // --- 非金属燃烧 ---
614
+ {
615
+ id: "p-o2",
616
+ name: "\u7EA2\u78F7\u5728\u7A7A\u6C14\u4E2D\u71C3\u70E7",
617
+ latex: "\\ce{4P + 5O2 ->[\u70B9\u71C3] 2P2O5}",
618
+ category: "reaction",
619
+ description: "\u4EA7\u751F\u5927\u91CF\u767D\u70DF",
620
+ tags: ["combustion", "nonmetal", "oxidation"]
621
+ },
622
+ {
623
+ id: "s-o2",
624
+ name: "\u786B\u7C89\u5728\u7A7A\u6C14\u4E2D\u71C3\u70E7",
625
+ latex: "\\ce{S + O2 ->[\u70B9\u71C3] SO2}",
626
+ category: "reaction",
627
+ description: "\u4EA7\u751F\u523A\u6FC0\u6027\u6C14\u5473\u6C14\u4F53",
628
+ tags: ["combustion", "nonmetal", "oxidation"]
629
+ },
630
+ {
631
+ id: "c-o2-full",
632
+ name: "\u78B3\u5728\u6C27\u6C14\u4E2D\u5145\u5206\u71C3\u70E7",
633
+ latex: "\\ce{C + O2 ->[\u70B9\u71C3] CO2}",
634
+ category: "reaction",
635
+ description: "\u78B3\u5B8C\u5168\u71C3\u70E7",
636
+ tags: ["combustion", "nonmetal", "oxidation"]
637
+ },
638
+ {
639
+ id: "c-o2-partial",
640
+ name: "\u78B3\u5728\u6C27\u6C14\u4E2D\u4E0D\u5145\u5206\u71C3\u70E7",
641
+ latex: "\\ce{2C + O2 ->[\u70B9\u71C3] 2CO}",
642
+ category: "reaction",
643
+ description: "\u78B3\u4E0D\u5B8C\u5168\u71C3\u70E7\u751F\u6210\u4E00\u6C27\u5316\u78B3",
644
+ tags: ["combustion", "nonmetal", "incomplete"]
645
+ },
646
+ {
647
+ id: "h2-o2",
648
+ name: "\u6C22\u6C14\u5728\u6C27\u6C14\u4E2D\u71C3\u70E7",
649
+ latex: "\\ce{2H2 + O2 ->[\u70B9\u71C3] 2H2O}",
650
+ category: "reaction",
651
+ description: "\u6C22\u6C14\u71C3\u70E7\u751F\u6210\u6C34",
652
+ tags: ["combustion", "hydrogen", "clean-energy"]
653
+ },
654
+ {
655
+ id: "co-o2",
656
+ name: "\u4E00\u6C27\u5316\u78B3\u71C3\u70E7",
657
+ latex: "\\ce{2CO + O2 ->[\u70B9\u71C3] 2CO2}",
658
+ category: "reaction",
659
+ description: "CO \u71C3\u70E7\u4EA7\u751F\u84DD\u8272\u706B\u7130",
660
+ tags: ["combustion", "carbon-monoxide"]
661
+ },
662
+ {
663
+ id: "ch4-combustion",
664
+ name: "\u7532\u70F7\u71C3\u70E7",
665
+ latex: "\\ce{CH4 + 2O2 ->[\u70B9\u71C3] CO2 + 2H2O}",
666
+ category: "reaction",
667
+ description: "\u5929\u7136\u6C14\u4E3B\u8981\u6210\u5206\u71C3\u70E7",
668
+ tags: ["combustion", "organic", "alkane"]
669
+ },
670
+ // --- 金属与酸反应 ---
671
+ {
672
+ id: "zn-h2so4",
673
+ name: "\u950C\u548C\u7A00\u786B\u9178\u53CD\u5E94",
674
+ latex: "\\ce{Zn + H2SO4 -> ZnSO4 + H2 ^}",
675
+ category: "reaction",
676
+ description: "\u5B9E\u9A8C\u5BA4\u5236\u6C22\u6C14",
677
+ tags: ["displacement", "metal-acid", "hydrogen"]
678
+ },
679
+ {
680
+ id: "fe-h2so4",
681
+ name: "\u94C1\u548C\u7A00\u786B\u9178\u53CD\u5E94",
682
+ latex: "\\ce{Fe + H2SO4 -> FeSO4 + H2 ^}",
683
+ category: "reaction",
684
+ description: "\u94C1\u4E0E\u7A00\u786B\u9178\u7F6E\u6362\u53CD\u5E94",
685
+ tags: ["displacement", "metal-acid", "hydrogen"]
686
+ },
687
+ {
688
+ id: "mg-h2so4",
689
+ name: "\u9541\u548C\u7A00\u786B\u9178\u53CD\u5E94",
690
+ latex: "\\ce{Mg + H2SO4 -> MgSO4 + H2 ^}",
691
+ category: "reaction",
692
+ description: "\u9541\u4E0E\u7A00\u786B\u9178\u5267\u70C8\u53CD\u5E94",
693
+ tags: ["displacement", "metal-acid", "hydrogen"]
694
+ },
695
+ {
696
+ id: "al-h2so4",
697
+ name: "\u94DD\u548C\u7A00\u786B\u9178\u53CD\u5E94",
698
+ latex: "\\ce{2Al + 3H2SO4 -> Al2(SO4)3 + 3H2 ^}",
699
+ category: "reaction",
700
+ description: "\u94DD\u4E0E\u7A00\u786B\u9178\u7F6E\u6362\u53CD\u5E94",
701
+ tags: ["displacement", "metal-acid", "hydrogen"]
702
+ },
703
+ {
704
+ id: "zn-hcl",
705
+ name: "\u950C\u548C\u7A00\u76D0\u9178\u53CD\u5E94",
706
+ latex: "\\ce{Zn + 2HCl -> ZnCl2 + H2 ^}",
707
+ category: "reaction",
708
+ description: "\u950C\u4E0E\u76D0\u9178\u53CD\u5E94\u5236\u6C22\u6C14",
709
+ tags: ["displacement", "metal-acid", "hydrogen"]
710
+ },
711
+ {
712
+ id: "fe-hcl",
713
+ name: "\u94C1\u548C\u7A00\u76D0\u9178\u53CD\u5E94",
714
+ latex: "\\ce{Fe + 2HCl -> FeCl2 + H2 ^}",
715
+ category: "reaction",
716
+ description: "\u94C1\u4E0E\u7A00\u76D0\u9178\u7F6E\u6362\u53CD\u5E94",
717
+ tags: ["displacement", "metal-acid", "hydrogen"]
718
+ },
719
+ {
720
+ id: "mg-hcl",
721
+ name: "\u9541\u548C\u7A00\u76D0\u9178\u53CD\u5E94",
722
+ latex: "\\ce{Mg + 2HCl -> MgCl2 + H2 ^}",
723
+ category: "reaction",
724
+ description: "\u9541\u4E0E\u7A00\u76D0\u9178\u5267\u70C8\u53CD\u5E94",
725
+ tags: ["displacement", "metal-acid", "hydrogen"]
726
+ },
727
+ {
728
+ id: "al-hcl",
729
+ name: "\u94DD\u548C\u7A00\u76D0\u9178\u53CD\u5E94",
730
+ latex: "\\ce{2Al + 6HCl -> 2AlCl3 + 3H2 ^}",
731
+ category: "reaction",
732
+ description: "\u94DD\u4E0E\u7A00\u76D0\u9178\u7F6E\u6362\u53CD\u5E94",
733
+ tags: ["displacement", "metal-acid", "hydrogen"]
734
+ },
735
+ // --- 还原反应 ---
736
+ {
737
+ id: "h2-cuo",
738
+ name: "\u6C22\u6C14\u8FD8\u539F\u6C27\u5316\u94DC",
739
+ latex: "\\ce{H2 + CuO ->[\u52A0\u70ED] Cu + H2O}",
740
+ category: "reaction",
741
+ description: "\u6C22\u6C14\u8FD8\u539F\u9ED1\u8272\u6C27\u5316\u94DC",
742
+ tags: ["reduction", "hydrogen", "heating"]
743
+ },
744
+ {
745
+ id: "c-cuo",
746
+ name: "\u78B3\u8FD8\u539F\u6C27\u5316\u94DC",
747
+ latex: "\\ce{C + 2CuO ->[\u9AD8\u6E29] 2Cu + CO2 ^}",
748
+ category: "reaction",
749
+ description: "\u78B3\u8FD8\u539F\u6C27\u5316\u94DC",
750
+ tags: ["reduction", "carbon", "heating"]
751
+ },
752
+ {
753
+ id: "c-fe2o3",
754
+ name: "\u78B3\u8FD8\u539F\u6C27\u5316\u94C1",
755
+ latex: "\\ce{3C + 2Fe2O3 ->[\u9AD8\u6E29] 4Fe + 3CO2 ^}",
756
+ category: "reaction",
757
+ description: "\u78B3\u8FD8\u539F\u6C27\u5316\u94C1\uFF08\u70BC\u94C1\uFF09",
758
+ tags: ["reduction", "carbon", "iron", "heating", "industrial"]
759
+ },
760
+ {
761
+ id: "co-cuo",
762
+ name: "\u4E00\u6C27\u5316\u78B3\u8FD8\u539F\u6C27\u5316\u94DC",
763
+ latex: "\\ce{CO + CuO ->[\u52A0\u70ED] Cu + CO2}",
764
+ category: "reaction",
765
+ description: "CO \u8FD8\u539F\u6C27\u5316\u94DC",
766
+ tags: ["reduction", "carbon-monoxide", "heating"]
767
+ },
768
+ {
769
+ id: "co-fe2o3",
770
+ name: "\u4E00\u6C27\u5316\u78B3\u8FD8\u539F\u6C27\u5316\u94C1",
771
+ latex: "\\ce{3CO + Fe2O3 ->[\u9AD8\u6E29] 2Fe + 3CO2}",
772
+ category: "reaction",
773
+ description: "\u9AD8\u7089\u70BC\u94C1\u4E3B\u8981\u53CD\u5E94",
774
+ tags: ["reduction", "carbon-monoxide", "iron", "heating", "industrial"]
775
+ },
776
+ // --- 酸碱中和 ---
777
+ {
778
+ id: "hcl-naoh",
779
+ name: "\u76D0\u9178\u4E0E\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
780
+ latex: "\\ce{HCl + NaOH -> NaCl + H2O}",
781
+ category: "reaction",
782
+ description: "\u9178\u78B1\u4E2D\u548C\u53CD\u5E94",
783
+ tags: ["neutralization", "acid-base"]
784
+ },
785
+ {
786
+ id: "naoh-hcl",
787
+ name: "\u6C22\u6C27\u5316\u94A0\u4E0E\u76D0\u9178\u53CD\u5E94",
788
+ latex: "\\ce{NaOH + HCl -> NaCl + H2O}",
789
+ category: "reaction",
790
+ description: "\u9178\u78B1\u4E2D\u548C\u53CD\u5E94",
791
+ tags: ["neutralization", "acid-base"]
792
+ },
793
+ {
794
+ id: "h2so4-naoh",
795
+ name: "\u786B\u9178\u4E0E\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
796
+ latex: "\\ce{H2SO4 + 2NaOH -> Na2SO4 + 2H2O}",
797
+ category: "reaction",
798
+ description: "\u786B\u9178\u4E0E\u70E7\u78B1\u4E2D\u548C",
799
+ tags: ["neutralization", "acid-base"]
800
+ },
801
+ {
802
+ id: "caoh2-h2so4",
803
+ name: "\u6C22\u6C27\u5316\u9499\u4E0E\u786B\u9178\u53CD\u5E94",
804
+ latex: "\\ce{Ca(OH)2 + H2SO4 -> CaSO4 + 2H2O}",
805
+ category: "reaction",
806
+ description: "\u719F\u77F3\u7070\u4E0E\u786B\u9178\u4E2D\u548C",
807
+ tags: ["neutralization", "acid-base"]
808
+ },
809
+ // --- 盐与酸反应 ---
810
+ {
811
+ id: "caco3-hcl",
812
+ name: "\u78B3\u9178\u9499\u4E0E\u76D0\u9178\u53CD\u5E94",
813
+ latex: "\\ce{CaCO3 + 2HCl -> CaCl2 + H2O + CO2 ^}",
814
+ category: "reaction",
815
+ description: "\u5B9E\u9A8C\u5BA4\u5236\u4E8C\u6C27\u5316\u78B3",
816
+ tags: ["gas-preparation", "carbonate", "acid"]
817
+ },
818
+ {
819
+ id: "na2co3-hcl",
820
+ name: "\u78B3\u9178\u94A0\u4E0E\u76D0\u9178\u53CD\u5E94",
821
+ latex: "\\ce{Na2CO3 + 2HCl -> 2NaCl + H2O + CO2 ^}",
822
+ category: "reaction",
823
+ description: "\u7EAF\u78B1\u4E0E\u76D0\u9178\u53CD\u5E94",
824
+ tags: ["carbonate", "acid", "gas"]
825
+ },
826
+ // --- 盐与碱反应 ---
827
+ {
828
+ id: "cuso4-naoh",
829
+ name: "\u786B\u9178\u94DC\u4E0E\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
830
+ latex: "\\ce{CuSO4 + 2NaOH -> Cu(OH)2 v + Na2SO4}",
831
+ category: "reaction",
832
+ description: "\u4EA7\u751F\u84DD\u8272\u6C89\u6DC0",
833
+ tags: ["precipitation", "copper", "base"]
834
+ },
835
+ // --- 金属氧化物与酸 ---
836
+ {
837
+ id: "cuo-h2so4",
838
+ name: "\u6C27\u5316\u94DC\u4E0E\u7A00\u786B\u9178\u53CD\u5E94",
839
+ latex: "\\ce{CuO + H2SO4 -> CuSO4 + H2O}",
840
+ category: "reaction",
841
+ description: "\u9ED1\u8272\u6C27\u5316\u94DC\u6EB6\u89E3",
842
+ tags: ["metal-oxide", "acid", "dissolution"]
843
+ },
844
+ // --- 两性反应 ---
845
+ {
846
+ id: "al-naoh",
847
+ name: "\u94DD\u4E0E\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
848
+ latex: "\\ce{2Al + 2NaOH + 2H2O -> 2NaAlO2 + 3H2 ^}",
849
+ category: "reaction",
850
+ description: "\u94DD\u7684\u4E24\u6027\u4F53\u73B0",
851
+ tags: ["amphoteric", "aluminum", "hydrogen"]
852
+ },
853
+ {
854
+ id: "si-naoh",
855
+ name: "\u7845\u4E0E\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
856
+ latex: "\\ce{Si + 2NaOH + H2O -> Na2SiO3 + 2H2 ^}",
857
+ category: "reaction",
858
+ description: "\u7845\u4E0E\u5F3A\u78B1\u53CD\u5E94",
859
+ tags: ["silicon", "base", "hydrogen"]
860
+ },
861
+ // --- CO₂ 与碱 ---
862
+ {
863
+ id: "co2-naoh",
864
+ name: "\u4E8C\u6C27\u5316\u78B3\u4E0E\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
865
+ latex: "\\ce{CO2 + 2NaOH -> Na2CO3 + H2O}",
866
+ category: "reaction",
867
+ description: "CO\u2082 \u4E0E\u70E7\u78B1\u53CD\u5E94",
868
+ tags: ["carbon-dioxide", "base", "absorption"]
869
+ },
870
+ // --- 沉淀反应 ---
871
+ {
872
+ id: "bacl2-na2so4",
873
+ name: "\u6C2F\u5316\u94A1\u4E0E\u786B\u9178\u94A0\u53CD\u5E94",
874
+ latex: "\\ce{BaCl2 + Na2SO4 -> BaSO4 v + 2NaCl}",
875
+ category: "reaction",
876
+ description: "\u751F\u6210\u4E0D\u6EB6\u4E8E\u9178\u7684\u767D\u8272\u6C89\u6DC0",
877
+ tags: ["precipitation", "barium", "sulfate-test"]
878
+ },
879
+ // --- 卤素 & 氧化还原 ---
880
+ {
881
+ id: "cl2-naoh",
882
+ name: "\u6C2F\u6C14\u4E0E\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
883
+ latex: "\\ce{Cl2 + 2NaOH -> NaCl + NaClO + H2O}",
884
+ category: "reaction",
885
+ description: "\u6C2F\u6C14\u5C3E\u6C14\u5904\u7406 / \u5236\u6F02\u767D\u6DB2",
886
+ tags: ["halogen", "disproportionation", "redox"]
887
+ },
888
+ {
889
+ id: "so2-cl2",
890
+ name: "\u4E8C\u6C27\u5316\u786B\u4E0E\u6C2F\u6C34\u53CD\u5E94",
891
+ latex: "\\ce{SO2 + Cl2 + 2H2O -> H2SO4 + 2HCl}",
892
+ category: "reaction",
893
+ description: "SO\u2082 \u4F7F\u6C2F\u6C34\u892A\u8272",
894
+ tags: ["redox", "bleaching", "sulfur"]
895
+ },
896
+ {
897
+ id: "feoh2-oxidation",
898
+ name: "\u6C22\u6C27\u5316\u4E9A\u94C1\u88AB\u6C27\u5316",
899
+ latex: "\\ce{4Fe(OH)2 + O2 + 2H2O -> 4Fe(OH)3}",
900
+ category: "reaction",
901
+ description: "\u767D\u8272\u6C89\u6DC0\u8FC5\u901F\u53D8\u7070\u7EFF\u8272\u6700\u7EC8\u53D8\u7EA2\u8910\u8272",
902
+ tags: ["oxidation", "iron", "color-change"]
903
+ },
904
+ {
905
+ id: "feso4-oxidation",
906
+ name: "\u786B\u9178\u4E9A\u94C1\u88AB\u6C27\u5316",
907
+ latex: "\\ce{4FeSO4 + O2 + 2H2SO4 -> 2Fe2(SO4)3 + 2H2O}",
908
+ category: "reaction",
909
+ description: "Fe\xB2\u207A \u5728\u9178\u6027\u6761\u4EF6\u4E0B\u88AB\u6C27\u5316\u4E3A Fe\xB3\u207A",
910
+ tags: ["oxidation", "iron", "redox"]
911
+ },
912
+ // --- 浓酸反应 ---
913
+ {
914
+ id: "cu-h2so4-conc",
915
+ name: "\u6D53\u786B\u9178\u4E0E\u94DC\u53CD\u5E94",
916
+ latex: "\\ce{Cu + 2H2SO4 ->[\u52A0\u70ED] CuSO4 + SO2 ^ + 2H2O}",
917
+ category: "reaction",
918
+ description: "\u6D53\u786B\u9178\u7684\u5F3A\u6C27\u5316\u6027",
919
+ tags: ["concentrated-acid", "redox", "copper", "heating"]
920
+ },
921
+ {
922
+ id: "cu-hno3-conc",
923
+ name: "\u6D53\u785D\u9178\u4E0E\u94DC\u53CD\u5E94",
924
+ latex: "\\ce{Cu + 4HNO3 -> Cu(NO3)2 + 2NO2 ^ + 2H2O}",
925
+ category: "reaction",
926
+ description: "\u6D53\u785D\u9178\u4E0E\u94DC\u53CD\u5E94\u751F\u6210\u7EA2\u68D5\u8272\u6C14\u4F53",
927
+ tags: ["concentrated-acid", "redox", "copper", "nitrogen-dioxide"]
928
+ },
929
+ // --- 碳酸氢盐反应 ---
930
+ {
931
+ id: "cahco32-naoh-few",
932
+ name: "\u78B3\u9178\u6C22\u9499\u4E0E\u5C11\u91CF\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
933
+ latex: "\\ce{Ca(HCO3)2 + NaOH -> CaCO3 v + NaHCO3 + H2O}",
934
+ category: "reaction",
935
+ description: "\u5C11\u91CF\u78B1\u65F6\u7684\u5206\u6B65\u6C89\u6DC0",
936
+ tags: ["bicarbonate", "precipitation", "stoichiometry"]
937
+ },
938
+ {
939
+ id: "cahco32-naoh-excess",
940
+ name: "\u78B3\u9178\u6C22\u9499\u4E0E\u8FC7\u91CF\u6C22\u6C27\u5316\u94A0\u53CD\u5E94",
941
+ latex: "\\ce{Ca(HCO3)2 + 2NaOH -> CaCO3 v + Na2CO3 + 2H2O}",
942
+ category: "reaction",
943
+ description: "\u8FC7\u91CF\u78B1\u5B8C\u5168\u53CD\u5E94",
944
+ tags: ["bicarbonate", "precipitation", "stoichiometry"]
430
945
  }
431
946
  ];
432
947
  var ELECTROCHEM_TEMPLATES = [
@@ -447,10 +962,183 @@ var ELECTROCHEM_TEMPLATES = [
447
962
  tags: ["faraday", "electrolysis"]
448
963
  }
449
964
  ];
965
+ var ION_TEMPLATES = [
966
+ // --- 阳离子 (Cations) ---
967
+ { id: "ion-li+", name: "\u9502\u79BB\u5B50", latex: "\\ce{Li+}", category: "ion", description: "Li\u207A", tags: ["cation", "alkali-metal"] },
968
+ { id: "ion-na+", name: "\u94A0\u79BB\u5B50", latex: "\\ce{Na+}", category: "ion", description: "Na\u207A", tags: ["cation", "alkali-metal"] },
969
+ { id: "ion-k+", name: "\u94BE\u79BB\u5B50", latex: "\\ce{K+}", category: "ion", description: "K\u207A", tags: ["cation", "alkali-metal"] },
970
+ { id: "ion-nh4+", name: "\u94F5\u6839\u79BB\u5B50", latex: "\\ce{NH4+}", category: "ion", description: "NH\u2084\u207A", tags: ["cation", "polyatomic"] },
971
+ { id: "ion-ca2+", name: "\u9499\u79BB\u5B50", latex: "\\ce{Ca^{2+}}", category: "ion", description: "Ca\xB2\u207A", tags: ["cation", "alkaline-earth"] },
972
+ { id: "ion-mg2+", name: "\u9541\u79BB\u5B50", latex: "\\ce{Mg^{2+}}", category: "ion", description: "Mg\xB2\u207A", tags: ["cation", "alkaline-earth"] },
973
+ { id: "ion-fe2+", name: "\u4E9A\u94C1\u79BB\u5B50", latex: "\\ce{Fe^{2+}}", category: "ion", description: "Fe\xB2\u207A", tags: ["cation", "transition-metal", "low-valence"] },
974
+ { id: "ion-fe3+", name: "\u94C1\u79BB\u5B50", latex: "\\ce{Fe^{3+}}", category: "ion", description: "Fe\xB3\u207A", tags: ["cation", "transition-metal", "high-valence"] },
975
+ { id: "ion-cu2+", name: "\u94DC\u79BB\u5B50", latex: "\\ce{Cu^{2+}}", category: "ion", description: "Cu\xB2\u207A", tags: ["cation", "transition-metal"] },
976
+ { id: "ion-zn2+", name: "\u950C\u79BB\u5B50", latex: "\\ce{Zn^{2+}}", category: "ion", description: "Zn\xB2\u207A", tags: ["cation", "transition-metal"] },
977
+ { id: "ion-ag+", name: "\u94F6\u79BB\u5B50", latex: "\\ce{Ag+}", category: "ion", description: "Ag\u207A", tags: ["cation", "transition-metal"] },
978
+ { id: "ion-al3+", name: "\u94DD\u79BB\u5B50", latex: "\\ce{Al^{3+}}", category: "ion", description: "Al\xB3\u207A", tags: ["cation", "post-transition"] },
979
+ { id: "ion-h+", name: "\u6C22\u79BB\u5B50", latex: "\\ce{H+}", category: "ion", description: "H\u207A", tags: ["cation", "acid"] },
980
+ // --- 阴离子 (Anions) ---
981
+ { id: "ion-f-", name: "\u6C1F\u79BB\u5B50", latex: "\\ce{F-}", category: "ion", description: "F\u207B", tags: ["anion", "halogen"] },
982
+ { id: "ion-cl-", name: "\u6C2F\u79BB\u5B50", latex: "\\ce{Cl-}", category: "ion", description: "Cl\u207B", tags: ["anion", "halogen"] },
983
+ { id: "ion-br-", name: "\u6EB4\u79BB\u5B50", latex: "\\ce{Br-}", category: "ion", description: "Br\u207B", tags: ["anion", "halogen"] },
984
+ { id: "ion-i-", name: "\u7898\u79BB\u5B50", latex: "\\ce{I-}", category: "ion", description: "I\u207B", tags: ["anion", "halogen"] },
985
+ { id: "ion-o2-", name: "\u6C27\u79BB\u5B50", latex: "\\ce{O^{2-}}", category: "ion", description: "O\xB2\u207B", tags: ["anion", "oxide"] },
986
+ { id: "ion-s2-", name: "\u786B\u79BB\u5B50", latex: "\\ce{S^{2-}}", category: "ion", description: "S\xB2\u207B", tags: ["anion", "sulfide"] },
987
+ { id: "ion-oh-", name: "\u6C22\u6C27\u6839\u79BB\u5B50", latex: "\\ce{OH-}", category: "ion", description: "OH\u207B", tags: ["anion", "base", "polyatomic"] },
988
+ { id: "ion-no3-", name: "\u785D\u9178\u6839\u79BB\u5B50", latex: "\\ce{NO3-}", category: "ion", description: "NO\u2083\u207B", tags: ["anion", "oxyanion", "polyatomic"] },
989
+ { id: "ion-mno4-", name: "\u9AD8\u9530\u9178\u6839\u79BB\u5B50", latex: "\\ce{MnO4-}", category: "ion", description: "MnO\u2084\u207B", tags: ["anion", "oxyanion", "polyatomic", "oxidizing"] },
990
+ { id: "ion-clo-", name: "\u6B21\u6C2F\u9178\u6839\u79BB\u5B50", latex: "\\ce{ClO-}", category: "ion", description: "ClO\u207B", tags: ["anion", "oxyanion", "polyatomic", "bleaching"] },
991
+ { id: "ion-so4-2-", name: "\u786B\u9178\u6839\u79BB\u5B50", latex: "\\ce{SO4^{2-}}", category: "ion", description: "SO\u2084\xB2\u207B", tags: ["anion", "oxyanion", "polyatomic"] },
992
+ { id: "ion-co3-2-", name: "\u78B3\u9178\u6839\u79BB\u5B50", latex: "\\ce{CO3^{2-}}", category: "ion", description: "CO\u2083\xB2\u207B", tags: ["anion", "oxyanion", "polyatomic"] },
993
+ { id: "ion-so3-2-", name: "\u4E9A\u786B\u9178\u6839\u79BB\u5B50", latex: "\\ce{SO3^{2-}}", category: "ion", description: "SO\u2083\xB2\u207B", tags: ["anion", "oxyanion", "polyatomic"] },
994
+ { id: "ion-cro4-2-", name: "\u94EC\u9178\u6839\u79BB\u5B50", latex: "\\ce{CrO4^{2-}}", category: "ion", description: "CrO\u2084\xB2\u207B", tags: ["anion", "oxyanion", "polyatomic", "chromate"] },
995
+ { id: "ion-sio3-2-", name: "\u7845\u9178\u6839\u79BB\u5B50", latex: "\\ce{SiO3^{2-}}", category: "ion", description: "SiO\u2083\xB2\u207B", tags: ["anion", "oxyanion", "polyatomic", "silicate"] },
996
+ { id: "ion-hco3-", name: "\u78B3\u9178\u6C22\u6839\u79BB\u5B50", latex: "\\ce{HCO3-}", category: "ion", description: "HCO\u2083\u207B", tags: ["anion", "bicarbonate", "polyatomic"] },
997
+ { id: "ion-hso3-", name: "\u4E9A\u786B\u9178\u6C22\u6839\u79BB\u5B50", latex: "\\ce{HSO3-}", category: "ion", description: "HSO\u2083\u207B", tags: ["anion", "bisulfite", "polyatomic"] },
998
+ { id: "ion-hso4-", name: "\u786B\u9178\u6C22\u6839\u79BB\u5B50", latex: "\\ce{HSO4-}", category: "ion", description: "HSO\u2084\u207B", tags: ["anion", "bisulfate", "polyatomic"] },
999
+ { id: "ion-ch3coo-", name: "\u918B\u9178\u6839\u79BB\u5B50", latex: "\\ce{CH3COO-}", category: "ion", description: "CH\u2083COO\u207B", tags: ["anion", "acetate", "organic", "polyatomic"] },
1000
+ { id: "ion-cn-", name: "\u6C30\u6839\u79BB\u5B50", latex: "\\ce{CN-}", category: "ion", description: "CN\u207B", tags: ["anion", "cyanide", "polyatomic", "toxic"] },
1001
+ { id: "ion-scn-", name: "\u786B\u6C30\u9178\u6839\u79BB\u5B50", latex: "\\ce{SCN-}", category: "ion", description: "SCN\u207B", tags: ["anion", "thiocyanate", "polyatomic"] },
1002
+ // --- 配离子 (Complex Ions) ---
1003
+ { id: "ion-ag-nh3-2+", name: "\u4E8C\u6C28\u5408\u94F6\u79BB\u5B50", latex: "\\ce{[Ag(NH3)2]+}", category: "ion", description: "[Ag(NH\u2083)\u2082]\u207A", tags: ["complex-ion", "silver", "coordination"] }
1004
+ ];
1005
+ var ELEMENT_TEMPLATES = [
1006
+ // ---- 第1周期 ----
1007
+ { id: "elem-H", name: "\u6C22", latex: "\\ce{H}", category: "element", description: "Hydrogen", tags: ["nonmetal", "period-1", "group-1"] },
1008
+ { id: "elem-He", name: "\u6C26", latex: "\\ce{He}", category: "element", description: "Helium", tags: ["noble-gas", "period-1", "group-18"] },
1009
+ // ---- 第2周期 ----
1010
+ { id: "elem-Li", name: "\u9502", latex: "\\ce{Li}", category: "element", description: "Lithium", tags: ["alkali-metal", "period-2", "group-1"] },
1011
+ { id: "elem-Be", name: "\u94CD", latex: "\\ce{Be}", category: "element", description: "Beryllium", tags: ["alkaline-earth", "period-2", "group-2"] },
1012
+ { id: "elem-B", name: "\u787C", latex: "\\ce{B}", category: "element", description: "Boron", tags: ["metalloid", "period-2", "group-13"] },
1013
+ { id: "elem-C", name: "\u78B3", latex: "\\ce{C}", category: "element", description: "Carbon", tags: ["nonmetal", "period-2", "group-14"] },
1014
+ { id: "elem-N", name: "\u6C2E", latex: "\\ce{N}", category: "element", description: "Nitrogen", tags: ["nonmetal", "period-2", "group-15"] },
1015
+ { id: "elem-O", name: "\u6C27", latex: "\\ce{O}", category: "element", description: "Oxygen", tags: ["nonmetal", "period-2", "group-16"] },
1016
+ { id: "elem-F", name: "\u6C1F", latex: "\\ce{F}", category: "element", description: "Fluorine", tags: ["halogen", "period-2", "group-17"] },
1017
+ { id: "elem-Ne", name: "\u6C16", latex: "\\ce{Ne}", category: "element", description: "Neon", tags: ["noble-gas", "period-2", "group-18"] },
1018
+ // ---- 第3周期 ----
1019
+ { id: "elem-Na", name: "\u94A0", latex: "\\ce{Na}", category: "element", description: "Sodium", tags: ["alkali-metal", "period-3", "group-1"] },
1020
+ { id: "elem-Mg", name: "\u9541", latex: "\\ce{Mg}", category: "element", description: "Magnesium", tags: ["alkaline-earth", "period-3", "group-2"] },
1021
+ { id: "elem-Al", name: "\u94DD", latex: "\\ce{Al}", category: "element", description: "Aluminium", tags: ["metal", "period-3", "group-13"] },
1022
+ { id: "elem-Si", name: "\u7845", latex: "\\ce{Si}", category: "element", description: "Silicon", tags: ["metalloid", "period-3", "group-14"] },
1023
+ { id: "elem-P", name: "\u78F7", latex: "\\ce{P}", category: "element", description: "Phosphorus", tags: ["nonmetal", "period-3", "group-15"] },
1024
+ { id: "elem-S", name: "\u786B", latex: "\\ce{S}", category: "element", description: "Sulfur", tags: ["nonmetal", "period-3", "group-16"] },
1025
+ { id: "elem-Cl", name: "\u6C2F", latex: "\\ce{Cl}", category: "element", description: "Chlorine", tags: ["halogen", "period-3", "group-17"] },
1026
+ { id: "elem-Ar", name: "\u6C29", latex: "\\ce{Ar}", category: "element", description: "Argon", tags: ["noble-gas", "period-3", "group-18"] },
1027
+ // ---- 第4周期 ----
1028
+ { id: "elem-K", name: "\u94BE", latex: "\\ce{K}", category: "element", description: "Potassium", tags: ["alkali-metal", "period-4", "group-1"] },
1029
+ { id: "elem-Ca", name: "\u9499", latex: "\\ce{Ca}", category: "element", description: "Calcium", tags: ["alkaline-earth", "period-4", "group-2"] },
1030
+ { id: "elem-Sc", name: "\u94AA", latex: "\\ce{Sc}", category: "element", description: "Scandium", tags: ["transition-metal", "period-4", "group-3"] },
1031
+ { id: "elem-Ti", name: "\u949B", latex: "\\ce{Ti}", category: "element", description: "Titanium", tags: ["transition-metal", "period-4", "group-4"] },
1032
+ { id: "elem-V", name: "\u9492", latex: "\\ce{V}", category: "element", description: "Vanadium", tags: ["transition-metal", "period-4", "group-5"] },
1033
+ { id: "elem-Cr", name: "\u94EC", latex: "\\ce{Cr}", category: "element", description: "Chromium", tags: ["transition-metal", "period-4", "group-6"] },
1034
+ { id: "elem-Mn", name: "\u9530", latex: "\\ce{Mn}", category: "element", description: "Manganese", tags: ["transition-metal", "period-4", "group-7"] },
1035
+ { id: "elem-Fe", name: "\u94C1", latex: "\\ce{Fe}", category: "element", description: "Iron", tags: ["transition-metal", "period-4", "group-8"] },
1036
+ { id: "elem-Co", name: "\u94B4", latex: "\\ce{Co}", category: "element", description: "Cobalt", tags: ["transition-metal", "period-4", "group-9"] },
1037
+ { id: "elem-Ni", name: "\u954D", latex: "\\ce{Ni}", category: "element", description: "Nickel", tags: ["transition-metal", "period-4", "group-10"] },
1038
+ { id: "elem-Cu", name: "\u94DC", latex: "\\ce{Cu}", category: "element", description: "Copper", tags: ["transition-metal", "period-4", "group-11"] },
1039
+ { id: "elem-Zn", name: "\u950C", latex: "\\ce{Zn}", category: "element", description: "Zinc", tags: ["transition-metal", "period-4", "group-12"] },
1040
+ { id: "elem-Ga", name: "\u9553", latex: "\\ce{Ga}", category: "element", description: "Gallium", tags: ["metal", "period-4", "group-13"] },
1041
+ { id: "elem-Ge", name: "\u9517", latex: "\\ce{Ge}", category: "element", description: "Germanium", tags: ["metalloid", "period-4", "group-14"] },
1042
+ { id: "elem-As", name: "\u7837", latex: "\\ce{As}", category: "element", description: "Arsenic", tags: ["metalloid", "period-4", "group-15"] },
1043
+ { id: "elem-Se", name: "\u7852", latex: "\\ce{Se}", category: "element", description: "Selenium", tags: ["nonmetal", "period-4", "group-16"] },
1044
+ { id: "elem-Br", name: "\u6EB4", latex: "\\ce{Br}", category: "element", description: "Bromine", tags: ["halogen", "period-4", "group-17"] },
1045
+ { id: "elem-Kr", name: "\u6C2A", latex: "\\ce{Kr}", category: "element", description: "Krypton", tags: ["noble-gas", "period-4", "group-18"] },
1046
+ // ---- 第5周期 ----
1047
+ { id: "elem-Rb", name: "\u94F7", latex: "\\ce{Rb}", category: "element", description: "Rubidium", tags: ["alkali-metal", "period-5", "group-1"] },
1048
+ { id: "elem-Sr", name: "\u9536", latex: "\\ce{Sr}", category: "element", description: "Strontium", tags: ["alkaline-earth", "period-5", "group-2"] },
1049
+ { id: "elem-Y", name: "\u9487", latex: "\\ce{Y}", category: "element", description: "Yttrium", tags: ["transition-metal", "period-5", "group-3"] },
1050
+ { id: "elem-Zr", name: "\u9506", latex: "\\ce{Zr}", category: "element", description: "Zirconium", tags: ["transition-metal", "period-5", "group-4"] },
1051
+ { id: "elem-Nb", name: "\u94CC", latex: "\\ce{Nb}", category: "element", description: "Niobium", tags: ["transition-metal", "period-5", "group-5"] },
1052
+ { id: "elem-Mo", name: "\u94BC", latex: "\\ce{Mo}", category: "element", description: "Molybdenum", tags: ["transition-metal", "period-5", "group-6"] },
1053
+ { id: "elem-Tc", name: "\u951D", latex: "\\ce{Tc}", category: "element", description: "Technetium", tags: ["transition-metal", "period-5", "group-7"] },
1054
+ { id: "elem-Ru", name: "\u948C", latex: "\\ce{Ru}", category: "element", description: "Ruthenium", tags: ["transition-metal", "period-5", "group-8"] },
1055
+ { id: "elem-Rh", name: "\u94D1", latex: "\\ce{Rh}", category: "element", description: "Rhodium", tags: ["transition-metal", "period-5", "group-9"] },
1056
+ { id: "elem-Pd", name: "\u94AF", latex: "\\ce{Pd}", category: "element", description: "Palladium", tags: ["transition-metal", "period-5", "group-10"] },
1057
+ { id: "elem-Ag", name: "\u94F6", latex: "\\ce{Ag}", category: "element", description: "Silver", tags: ["transition-metal", "period-5", "group-11"] },
1058
+ { id: "elem-Cd", name: "\u9549", latex: "\\ce{Cd}", category: "element", description: "Cadmium", tags: ["transition-metal", "period-5", "group-12"] },
1059
+ { id: "elem-In", name: "\u94DF", latex: "\\ce{In}", category: "element", description: "Indium", tags: ["metal", "period-5", "group-13"] },
1060
+ { id: "elem-Sn", name: "\u9521", latex: "\\ce{Sn}", category: "element", description: "Tin", tags: ["metal", "period-5", "group-14"] },
1061
+ { id: "elem-Sb", name: "\u9511", latex: "\\ce{Sb}", category: "element", description: "Antimony", tags: ["metalloid", "period-5", "group-15"] },
1062
+ { id: "elem-Te", name: "\u78B2", latex: "\\ce{Te}", category: "element", description: "Tellurium", tags: ["metalloid", "period-5", "group-16"] },
1063
+ { id: "elem-I", name: "\u7898", latex: "\\ce{I}", category: "element", description: "Iodine", tags: ["halogen", "period-5", "group-17"] },
1064
+ { id: "elem-Xe", name: "\u6C19", latex: "\\ce{Xe}", category: "element", description: "Xenon", tags: ["noble-gas", "period-5", "group-18"] },
1065
+ // ---- 第6周期 ----
1066
+ { id: "elem-Cs", name: "\u94EF", latex: "\\ce{Cs}", category: "element", description: "Cesium", tags: ["alkali-metal", "period-6", "group-1"] },
1067
+ { id: "elem-Ba", name: "\u94A1", latex: "\\ce{Ba}", category: "element", description: "Barium", tags: ["alkaline-earth", "period-6", "group-2"] },
1068
+ // La-Lu: 镧系 (Lanthanides)
1069
+ { id: "elem-La", name: "\u9567", latex: "\\ce{La}", category: "element", description: "Lanthanum", tags: ["lanthanide", "period-6", "f-block"] },
1070
+ { id: "elem-Ce", name: "\u94C8", latex: "\\ce{Ce}", category: "element", description: "Cerium", tags: ["lanthanide", "period-6", "f-block"] },
1071
+ { id: "elem-Pr", name: "\u9568", latex: "\\ce{Pr}", category: "element", description: "Praseodymium", tags: ["lanthanide", "period-6", "f-block"] },
1072
+ { id: "elem-Nd", name: "\u9495", latex: "\\ce{Nd}", category: "element", description: "Neodymium", tags: ["lanthanide", "period-6", "f-block"] },
1073
+ { id: "elem-Pm", name: "\u94B7", latex: "\\ce{Pm}", category: "element", description: "Promethium", tags: ["lanthanide", "period-6", "f-block"] },
1074
+ { id: "elem-Sm", name: "\u9490", latex: "\\ce{Sm}", category: "element", description: "Samarium", tags: ["lanthanide", "period-6", "f-block"] },
1075
+ { id: "elem-Eu", name: "\u94D5", latex: "\\ce{Eu}", category: "element", description: "Europium", tags: ["lanthanide", "period-6", "f-block"] },
1076
+ { id: "elem-Gd", name: "\u9486", latex: "\\ce{Gd}", category: "element", description: "Gadolinium", tags: ["lanthanide", "period-6", "f-block"] },
1077
+ { id: "elem-Tb", name: "\u94FD", latex: "\\ce{Tb}", category: "element", description: "Terbium", tags: ["lanthanide", "period-6", "f-block"] },
1078
+ { id: "elem-Dy", name: "\u955D", latex: "\\ce{Dy}", category: "element", description: "Dysprosium", tags: ["lanthanide", "period-6", "f-block"] },
1079
+ { id: "elem-Ho", name: "\u94AC", latex: "\\ce{Ho}", category: "element", description: "Holmium", tags: ["lanthanide", "period-6", "f-block"] },
1080
+ { id: "elem-Er", name: "\u94D2", latex: "\\ce{Er}", category: "element", description: "Erbium", tags: ["lanthanide", "period-6", "f-block"] },
1081
+ { id: "elem-Tm", name: "\u94E5", latex: "\\ce{Tm}", category: "element", description: "Thulium", tags: ["lanthanide", "period-6", "f-block"] },
1082
+ { id: "elem-Yb", name: "\u9571", latex: "\\ce{Yb}", category: "element", description: "Ytterbium", tags: ["lanthanide", "period-6", "f-block"] },
1083
+ { id: "elem-Lu", name: "\u9565", latex: "\\ce{Lu}", category: "element", description: "Lutetium", tags: ["lanthanide", "period-6", "f-block"] },
1084
+ // 5d 过渡金属
1085
+ { id: "elem-Hf", name: "\u94EA", latex: "\\ce{Hf}", category: "element", description: "Hafnium", tags: ["transition-metal", "period-6", "group-4"] },
1086
+ { id: "elem-Ta", name: "\u94BD", latex: "\\ce{Ta}", category: "element", description: "Tantalum", tags: ["transition-metal", "period-6", "group-5"] },
1087
+ { id: "elem-W", name: "\u94A8", latex: "\\ce{W}", category: "element", description: "Tungsten", tags: ["transition-metal", "period-6", "group-6"] },
1088
+ { id: "elem-Re", name: "\u94FC", latex: "\\ce{Re}", category: "element", description: "Rhenium", tags: ["transition-metal", "period-6", "group-7"] },
1089
+ { id: "elem-Os", name: "\u9507", latex: "\\ce{Os}", category: "element", description: "Osmium", tags: ["transition-metal", "period-6", "group-8"] },
1090
+ { id: "elem-Ir", name: "\u94F1", latex: "\\ce{Ir}", category: "element", description: "Iridium", tags: ["transition-metal", "period-6", "group-9"] },
1091
+ { id: "elem-Pt", name: "\u94C2", latex: "\\ce{Pt}", category: "element", description: "Platinum", tags: ["transition-metal", "period-6", "group-10"] },
1092
+ { id: "elem-Au", name: "\u91D1", latex: "\\ce{Au}", category: "element", description: "Gold", tags: ["transition-metal", "period-6", "group-11"] },
1093
+ { id: "elem-Hg", name: "\u6C5E", latex: "\\ce{Hg}", category: "element", description: "Mercury", tags: ["transition-metal", "period-6", "group-12", "liquid"] },
1094
+ { id: "elem-Tl", name: "\u94CA", latex: "\\ce{Tl}", category: "element", description: "Thallium", tags: ["metal", "period-6", "group-13"] },
1095
+ { id: "elem-Pb", name: "\u94C5", latex: "\\ce{Pb}", category: "element", description: "Lead", tags: ["metal", "period-6", "group-14"] },
1096
+ { id: "elem-Bi", name: "\u94CB", latex: "\\ce{Bi}", category: "element", description: "Bismuth", tags: ["metal", "period-6", "group-15"] },
1097
+ { id: "elem-Po", name: "\u948B", latex: "\\ce{Po}", category: "element", description: "Polonium", tags: ["metalloid", "period-6", "group-16"] },
1098
+ { id: "elem-At", name: "\u7839", latex: "\\ce{At}", category: "element", description: "Astatine", tags: ["halogen", "period-6", "group-17"] },
1099
+ { id: "elem-Rn", name: "\u6C21", latex: "\\ce{Rn}", category: "element", description: "Radon", tags: ["noble-gas", "period-6", "group-18"] },
1100
+ // ---- 第7周期 ----
1101
+ { id: "elem-Fr", name: "\u94AB", latex: "\\ce{Fr}", category: "element", description: "Francium", tags: ["alkali-metal", "period-7", "group-1"] },
1102
+ { id: "elem-Ra", name: "\u956D", latex: "\\ce{Ra}", category: "element", description: "Radium", tags: ["alkaline-earth", "period-7", "group-2"] },
1103
+ // Ac-Lr: 锕系 (Actinides)
1104
+ { id: "elem-Ac", name: "\u9515", latex: "\\ce{Ac}", category: "element", description: "Actinium", tags: ["actinide", "period-7", "f-block"] },
1105
+ { id: "elem-Th", name: "\u948D", latex: "\\ce{Th}", category: "element", description: "Thorium", tags: ["actinide", "period-7", "f-block"] },
1106
+ { id: "elem-Pa", name: "\u9564", latex: "\\ce{Pa}", category: "element", description: "Protactinium", tags: ["actinide", "period-7", "f-block"] },
1107
+ { id: "elem-U", name: "\u94C0", latex: "\\ce{U}", category: "element", description: "Uranium", tags: ["actinide", "period-7", "f-block"] },
1108
+ { id: "elem-Np", name: "\u954E", latex: "\\ce{Np}", category: "element", description: "Neptunium", tags: ["actinide", "period-7", "f-block"] },
1109
+ { id: "elem-Pu", name: "\u949A", latex: "\\ce{Pu}", category: "element", description: "Plutonium", tags: ["actinide", "period-7", "f-block"] },
1110
+ { id: "elem-Am", name: "\u9545", latex: "\\ce{Am}", category: "element", description: "Americium", tags: ["actinide", "period-7", "f-block"] },
1111
+ { id: "elem-Cm", name: "\u9514", latex: "\\ce{Cm}", category: "element", description: "Curium", tags: ["actinide", "period-7", "f-block"] },
1112
+ { id: "elem-Bk", name: "\u952B", latex: "\\ce{Bk}", category: "element", description: "Berkelium", tags: ["actinide", "period-7", "f-block"] },
1113
+ { id: "elem-Cf", name: "\u950E", latex: "\\ce{Cf}", category: "element", description: "Californium", tags: ["actinide", "period-7", "f-block"] },
1114
+ { id: "elem-Es", name: "\u953F", latex: "\\ce{Es}", category: "element", description: "Einsteinium", tags: ["actinide", "period-7", "f-block"] },
1115
+ { id: "elem-Fm", name: "\u9544", latex: "\\ce{Fm}", category: "element", description: "Fermium", tags: ["actinide", "period-7", "f-block"] },
1116
+ { id: "elem-Md", name: "\u9494", latex: "\\ce{Md}", category: "element", description: "Mendelevium", tags: ["actinide", "period-7", "f-block"] },
1117
+ { id: "elem-No", name: "\u9518", latex: "\\ce{No}", category: "element", description: "Nobelium", tags: ["actinide", "period-7", "f-block"] },
1118
+ { id: "elem-Lr", name: "\u94F9", latex: "\\ce{Lr}", category: "element", description: "Lawrencium", tags: ["actinide", "period-7", "f-block"] },
1119
+ // 6d 超重元素
1120
+ { id: "elem-Rf", name: "\u{2CB3B}", latex: "\\ce{Rf}", category: "element", description: "Rutherfordium", tags: ["transition-metal", "period-7", "group-4", "synthetic"] },
1121
+ { id: "elem-Db", name: "\u{2CB4A}", latex: "\\ce{Db}", category: "element", description: "Dubnium", tags: ["transition-metal", "period-7", "group-5", "synthetic"] },
1122
+ { id: "elem-Sg", name: "\u{2CB73}", latex: "\\ce{Sg}", category: "element", description: "Seaborgium", tags: ["transition-metal", "period-7", "group-6", "synthetic"] },
1123
+ { id: "elem-Bh", name: "\u{2CB5B}", latex: "\\ce{Bh}", category: "element", description: "Bohrium", tags: ["transition-metal", "period-7", "group-7", "synthetic"] },
1124
+ { id: "elem-Hs", name: "\u{2CB76}", latex: "\\ce{Hs}", category: "element", description: "Hassium", tags: ["transition-metal", "period-7", "group-8", "synthetic"] },
1125
+ { id: "elem-Mt", name: "\u9FCF", latex: "\\ce{Mt}", category: "element", description: "Meitnerium", tags: ["transition-metal", "period-7", "group-9", "synthetic"] },
1126
+ { id: "elem-Ds", name: "\u{2B7FC}", latex: "\\ce{Ds}", category: "element", description: "Darmstadtium", tags: ["transition-metal", "period-7", "group-10", "synthetic"] },
1127
+ { id: "elem-Rg", name: "\u{2CB2D}", latex: "\\ce{Rg}", category: "element", description: "Roentgenium", tags: ["transition-metal", "period-7", "group-11", "synthetic"] },
1128
+ { id: "elem-Cn", name: "\u93B6", latex: "\\ce{Cn}", category: "element", description: "Copernicium", tags: ["transition-metal", "period-7", "group-12", "synthetic"] },
1129
+ { id: "elem-Nh", name: "\u9268", latex: "\\ce{Nh}", category: "element", description: "Nihonium", tags: ["metal", "period-7", "group-13", "synthetic"] },
1130
+ { id: "elem-Fl", name: "\u{2B4E7}", latex: "\\ce{Fl}", category: "element", description: "Flerovium", tags: ["metal", "period-7", "group-14", "synthetic"] },
1131
+ { id: "elem-Mc", name: "\u9546", latex: "\\ce{Mc}", category: "element", description: "Moscovium", tags: ["metal", "period-7", "group-15", "synthetic"] },
1132
+ { id: "elem-Lv", name: "\u925D", latex: "\\ce{Lv}", category: "element", description: "Livermorium", tags: ["metal", "period-7", "group-16", "synthetic"] },
1133
+ { id: "elem-Ts", name: "\u77F3\u7530", latex: "\\ce{Ts}", category: "element", description: "Tennessine", tags: ["halogen", "period-7", "group-17", "synthetic"] },
1134
+ { id: "elem-Og", name: "\u6C14\u5967", latex: "\\ce{Og}", category: "element", description: "Oganesson", tags: ["noble-gas", "period-7", "group-18", "synthetic"] }
1135
+ ];
450
1136
  var ALL_CHEM_TEMPLATES = [
451
1137
  ...COMPOUND_TEMPLATES,
452
1138
  ...REACTION_TEMPLATES,
453
- ...ELECTROCHEM_TEMPLATES
1139
+ ...ELECTROCHEM_TEMPLATES,
1140
+ ...ION_TEMPLATES,
1141
+ ...ELEMENT_TEMPLATES
454
1142
  ];
455
1143
  function searchCompounds(query) {
456
1144
  const q = query.toLowerCase();
@@ -464,6 +1152,32 @@ function getAcids() {
464
1152
  function getBases() {
465
1153
  return COMPOUND_TEMPLATES.filter((t) => t.tags.includes("base"));
466
1154
  }
1155
+ function searchIons(query) {
1156
+ const q = query.toLowerCase();
1157
+ return ION_TEMPLATES.filter(
1158
+ (t) => t.name.toLowerCase().includes(q) || t.latex.toLowerCase().includes(q) || t.description.toLowerCase().includes(q) || t.tags.some((tag) => tag.toLowerCase().includes(q))
1159
+ );
1160
+ }
1161
+ function getCations() {
1162
+ return ION_TEMPLATES.filter((t) => t.tags.includes("cation"));
1163
+ }
1164
+ function getAnions() {
1165
+ return ION_TEMPLATES.filter((t) => t.tags.includes("anion"));
1166
+ }
1167
+ function searchElements(query) {
1168
+ const q = query.toLowerCase();
1169
+ return ELEMENT_TEMPLATES.filter(
1170
+ (t) => t.name.toLowerCase().includes(q) || t.description.toLowerCase().includes(q) || t.tags.some((tag) => tag.toLowerCase().includes(q))
1171
+ );
1172
+ }
1173
+ function getElementsByPeriod(period) {
1174
+ const tag = `period-${period}`;
1175
+ return ELEMENT_TEMPLATES.filter((t) => t.tags.includes(tag));
1176
+ }
1177
+ function getElementsByGroup(group) {
1178
+ const tag = `group-${group}`;
1179
+ return ELEMENT_TEMPLATES.filter((t) => t.tags.includes(tag));
1180
+ }
467
1181
 
468
1182
  // src/greek-presets.ts
469
1183
  var GREEK_LOWERCASE_GROUP = {
@@ -563,20 +1277,28 @@ export {
563
1277
  CALCULUS_TEMPLATES,
564
1278
  COMPOUND_TEMPLATES,
565
1279
  ELECTROCHEM_TEMPLATES,
1280
+ ELEMENT_TEMPLATES,
566
1281
  GREEK_GROUPS,
567
1282
  GREEK_LOWERCASE_GROUP,
568
1283
  GREEK_UPPERCASE_GROUP,
1284
+ ION_TEMPLATES,
569
1285
  LINEAR_ALGEBRA_TEMPLATES,
570
1286
  PHYSICS_TEMPLATES,
571
1287
  REACTION_TEMPLATES,
572
1288
  STATS_TEMPLATES,
573
1289
  TRIG_TEMPLATES,
574
1290
  getAcids,
1291
+ getAnions,
575
1292
  getBases,
1293
+ getCations,
1294
+ getElementsByGroup,
1295
+ getElementsByPeriod,
576
1296
  getTemplateById,
577
1297
  getTemplatesByCategory,
578
1298
  searchCompounds,
1299
+ searchElements,
579
1300
  searchGreek,
580
1301
  searchGreekWithVariants,
1302
+ searchIons,
581
1303
  searchTemplates
582
1304
  };