@ca-plant-list/ca-plant-list 0.3.6 → 0.4.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 (94) hide show
  1. package/.vscode/settings.json +7 -1
  2. package/data/synonyms.csv +109 -3
  3. package/data/taxa.csv +65 -29
  4. package/data/text/Antennaria-media.md +1 -0
  5. package/data/text/Antennaria-rosea-subsp-rosea.md +1 -0
  6. package/data/text/Antirrhinum-thompsonii.md +1 -0
  7. package/data/text/Calyptridium-monospermum.md +1 -0
  8. package/data/text/Calyptridium-umbellatum.md +1 -0
  9. package/data/text/Camassia-leichtlinii-subsp-suksdorfii.md +1 -0
  10. package/data/text/Camassia-quamash-subsp-breviflora.md +1 -0
  11. package/data/text/Clarkia-affinis.md +1 -0
  12. package/data/text/Clarkia-breweri.md +1 -0
  13. package/data/text/Clarkia-concinna-subsp-automixa.md +1 -0
  14. package/data/text/Clarkia-modesta.md +1 -0
  15. package/data/text/Clarkia-purpurea-subsp-quadrivulnera.md +1 -0
  16. package/data/text/Clarkia-rubicunda.md +1 -0
  17. package/data/text/Delphinium-californicum-subsp-californicum.md +1 -1
  18. package/data/text/Delphinium-californicum-subsp-interius.md +1 -0
  19. package/data/text/Delphinium-glaucum.md +1 -0
  20. package/data/text/Delphinium-hesperium-subsp-hesperium.md +1 -1
  21. package/data/text/Delphinium-hesperium-subsp-pallescens.md +1 -0
  22. package/data/text/Delphinium-nuttallianum.md +1 -0
  23. package/data/text/Delphinium-parryi-subsp-parryi.md +1 -0
  24. package/data/text/Drymocallis-glandulosa-var-glandulosa.md +1 -0
  25. package/data/text/Drymocallis-lactea-var-austiniae.md +1 -0
  26. package/data/text/Erigeron-compositus.md +1 -0
  27. package/data/text/Erigeron-glacialis-var-glacialis.md +1 -0
  28. package/data/text/Erythranthe-breweri.md +1 -0
  29. package/data/text/Erythranthe-erubescens.md +1 -0
  30. package/data/text/Erythranthe-moschata.md +1 -0
  31. package/data/text/Erythranthe-primuloides.md +1 -0
  32. package/data/text/Erythranthe-tilingii.md +1 -0
  33. package/data/text/Lilium-pardalinum-subsp-shastense.md +1 -0
  34. package/data/text/Logfia-filaginoides.md +1 -0
  35. package/data/text/Logfia-gallica.md +1 -0
  36. package/data/text/Malacothamnus-arcuatus-var-elmeri.md +1 -0
  37. package/data/text/Malacothamnus-fremontii-var-fremontii.md +1 -0
  38. package/data/text/Navarretia-leptalea-subsp-bicolor.md +1 -0
  39. package/data/text/Navarretia-leptalea-subsp-leptalea.md +1 -0
  40. package/data/text/Polemonium-californicum.md +1 -0
  41. package/data/text/Polemonium-pulcherrimum-var-pulcherrimum.md +1 -0
  42. package/data/text/Primula-jeffreyi.md +1 -0
  43. package/data/text/Primula-tetrandra.md +1 -0
  44. package/data/text/Trifolium-obtusiflorum.md +1 -0
  45. package/data/text/Trifolium-willdenovii.md +1 -0
  46. package/lib/basepagerenderer.js +3 -4
  47. package/lib/config.js +42 -19
  48. package/lib/csv.js +54 -36
  49. package/lib/ebook/ebook.js +84 -57
  50. package/lib/ebook/ebookpage.js +22 -11
  51. package/lib/ebook/ebooksitegenerator.js +36 -14
  52. package/lib/ebook/glossarypages.js +20 -17
  53. package/lib/ebook/images.js +59 -42
  54. package/lib/ebook/pages/page_list_families.js +0 -2
  55. package/lib/ebook/pages/page_list_flower_color.js +14 -9
  56. package/lib/ebook/pages/page_list_flowers.js +59 -41
  57. package/lib/ebook/pages/page_list_species.js +15 -9
  58. package/lib/ebook/pages/taxonpage.js +3 -6
  59. package/lib/ebook/pages/tocpage.js +26 -20
  60. package/lib/ebook/plantbook.js +6 -13
  61. package/lib/ebook/{image.js → taxonimage.js} +2 -2
  62. package/lib/ebook/xhtml.js +3 -5
  63. package/lib/exceptions.js +42 -26
  64. package/lib/externalsites.js +11 -4
  65. package/lib/families.js +10 -10
  66. package/lib/flowercolor.js +42 -0
  67. package/lib/genera.js +13 -23
  68. package/lib/genericpage.js +38 -18
  69. package/lib/html.js +11 -23
  70. package/lib/htmltaxon.js +114 -14
  71. package/lib/index.d.ts +54 -0
  72. package/lib/index.js +2 -30
  73. package/lib/jekyll.js +49 -21
  74. package/lib/jepson.js +7 -8
  75. package/lib/markdown.js +13 -9
  76. package/lib/pagerenderer.js +162 -82
  77. package/lib/plants/glossary.js +14 -14
  78. package/lib/program.js +47 -0
  79. package/lib/rareplants.js +44 -30
  80. package/lib/sitegenerator.js +41 -24
  81. package/lib/taxa.js +25 -142
  82. package/lib/taxon.js +3 -5
  83. package/lib/web/glossarypages.js +37 -18
  84. package/lib/web/pagetaxon.js +1 -5
  85. package/package.json +5 -3
  86. package/schemas/exceptions.schema.json +57 -0
  87. package/scripts/build-ebook.js +39 -48
  88. package/scripts/build-site.js +49 -28
  89. package/types/classes.d.ts +154 -0
  90. package/lib/commandandtaxaprocessor.js +0 -25
  91. package/lib/commandprocessor.js +0 -108
  92. package/lib/generictaxaloader.js +0 -48
  93. package/lib/taxaloader.js +0 -48
  94. package/lib/taxaprocessor.js +0 -34
package/data/taxa.csv CHANGED
@@ -101,16 +101,19 @@ Amsinckia vernicosa,,N,13155,335,58051
101
101
  Anaphalis margaritacea,pearly everlasting,N,846,341,52833
102
102
  Ancistrocarphus filagineus,woolly fishhook,N,849,345,50795
103
103
  Androsace elongata subsp. acuta,,N,49111,348,58299,,,,,1799,4.2,,,S3S4,G5?T3T4
104
+ Anemone occidentalis,white pasqueflower,N,13385,357,60482,perennial,white,5,9
104
105
  Anemopsis californica,yerba mansa,N,13392,360,60241
105
106
  Angelica californica,,N,13406,364,75448
106
107
  Anisocarpus madioides,,N,77551,10770,53137
108
+ Antennaria media,Rocky Mountain pussytoes,N,935,383,75466,perennial,white,7,8
109
+ Antennaria rosea subsp. rosea,rosy pussytoes,N,5718,388,79575,perennial,"white,pink",6,8
107
110
  Anthemis cotula,"mayweed,dog-fennel",X,1067,392,52841
108
111
  Anthoxanthum occidentale,,N,13521,11332,75474
109
112
  Anthriscus caucalis,bur-chervil,X,13523,396,52846,,white
110
113
  Antirrhinum kelloggii,,N,13568,401,165675
111
114
  Antirrhinum majus,snapdragon,X,13557,404,48969
112
115
  Antirrhinum thompsonii,Sierra snapdragon,N,108978,14286,168306,,pink,4,8
113
- Antirrhinum vexillocalyculatum subsp. vexillocalyculatum,,N,88873,10499,840919,,purple,6,8
116
+ Antirrhinum vexillocalyculatum subsp. vexillocalyculatum,,N,88873,10499,840919,annual,purple,6,8
114
117
  Aphyllon californicum subsp. jepsonii,,N,103325,13438,802459
115
118
  Aphyllon epigalium subsp. epigalium,,N,103327,13527,809377
116
119
  Aphyllon fasciculatum,clustered broom-rape,N,100018,13441,802543
@@ -157,6 +160,7 @@ Arundo donax,giant reed,X,14319,732,64017
157
160
  Asarum caudatum,wild-ginger,N,14334,733,52858
158
161
  Asclepias californica,California milkweed,N,14357,739,51272,perennial,purple,4,7
159
162
  Asclepias cordifolia,purple milkweed,N,14360,741,62248
163
+ Asclepias eriocarpa,kotolo,N,14369,745,58796,perennial,white,5,10
160
164
  Asclepias fascicularis,narrow-leaf milkweed,N,14375,747,56851,perennial,white,5,10
161
165
  Asclepias speciosa,milkweed,N,14422,751,62292
162
166
  Asparagus asparagoides,,X,14480,755,64107
@@ -223,7 +227,7 @@ Bolboschoenus robustus,seacoast bulrush,N,77450,10798,75840
223
227
  Bowlesia incana,,N,15999,1133,56822
224
228
  Brachypodium distachyon,false-brome,X,16042,1137,57158
225
229
  Brassica juncea,India mustard,X,16072,1142,64241
226
- Brassica nigra,black mustard,X,16079,1144,1451050,,yellow
230
+ Brassica nigra,black mustard,X,16079,1144,1555489,,yellow
227
231
  Brassica oleracea,cabbage,X,16080,9040,54516
228
232
  Brassica rapa,field mustard,X,16081,1145,53271,,yellow
229
233
  Brickellia californica,California brickelbush,N,1794,1152,58803
@@ -278,6 +282,8 @@ Calochortus venustus,butterfly mariposa lily,N,16772,1313,53902,bulb,"white,red"
278
282
  Caltha palustris,marsh-marigold,X,16802,8708,56224
279
283
  Calycadenia multiglandulosa,,N,1875,1324,56863
280
284
  Calycadenia truncata,rosin weed,N,1884,1328,62567
285
+ Calyptridium monospermum,one-seeded pussypaws,N,16846,1335,75958,perennial,"pink,white",4,9
286
+ Calyptridium umbellatum,Mount Hood pussypaws,N,16852,1344,127100,perennial,white,5,10
281
287
  Calystegia malacophylla subsp. pedicellata,woolly morning-glory,N,76596,1364,79655
282
288
  Calystegia occidentalis subsp. occidentalis,,N,49559,1368,56086
283
289
  Calystegia purpurata subsp. purpurata,,N,49560,1371,58882
@@ -286,6 +292,8 @@ Calystegia sepium subsp. limnophila,hedge bindweed,N,49568,1374,60182
286
292
  Calystegia silvatica subsp. disjuncta,shortstalk false bindweed,X,78991,8524,79658
287
293
  Calystegia soldanella,beach morning-glory,N,16876,1375,60880
288
294
  Calystegia subacaulis subsp. subacaulis,hill morning-glory,N,49576,1379,57014
295
+ Camassia leichtlinii subsp. suksdorfii,great camas,N,49578,9754,79659,bulb,blue,5,8
296
+ Camassia quamash subsp. breviflora,small camas,N,49580,1381,79660,bulb,blue,5,7
289
297
  Camissonia campestris subsp. campestris,Mojave suncup,N,49602,1401,56781
290
298
  Camissonia contorta,,N,16910,1420,58216
291
299
  Camissonia strigulosa,,N,16947,1453,56779
@@ -413,15 +421,15 @@ Cirsium quercetorum,brownie thistle,N,2232,2146,60954
413
421
  Cirsium remotifolium var. odontolepis,,N,7076,11533,80596
414
422
  Cirsium vulgare,bull thistle,X,2285,2151,52989
415
423
  Citrullus lanatus var. citroides,watermelon,X,56575,9813,841204
416
- Clarkia affinis,chaparral clarkia,N,19563,2159,58943,annual
424
+ Clarkia affinis,chaparral clarkia,N,19563,2159,58943,annual,pink,5,6
417
425
  Clarkia biloba subsp. biloba,twolobe clarkia,N,49891,2168,51857,annual
418
- Clarkia breweri,Brewer's clarkia,N,19571,2174,56067,annual,,,,159,4.2,,,S4,G4
419
- Clarkia concinna subsp. automixa,Santa Clara red ribbons,N,49895,2176,51856,annual,,,,1629,4.3,,,S3,G5?T3
426
+ Clarkia breweri,Brewer's clarkia,N,19571,2174,56067,annual,pink,4,6,159,4.2,,,S4,G4
427
+ Clarkia concinna subsp. automixa,Santa Clara red ribbons,N,49895,2176,51856,annual,pink,4,6,1629,4.3,,,S3,G5?T3
420
428
  Clarkia concinna subsp. concinna,red ribbons,N,49896,2177,51855,annual
421
429
  Clarkia epilobioides,,N,19577,2185,58945,annual
422
430
  Clarkia franciscana,Presidio clarkia,N,19579,2187,61899,annual,,,,162,1B.1,CE,FE,S1,G1
423
431
  Clarkia gracilis subsp. gracilis,slender clarkia,N,49901,2190,61896,annual,pink,4,7
424
- Clarkia modesta,,N,19588,2200,58946,annual
432
+ Clarkia modesta,,N,19588,2200,58946,annual,pink,4,5
425
433
  Clarkia purpurea subsp. purpurea,purple clarkia,N,49906,2207,79741,annual
426
434
  Clarkia purpurea subsp. quadrivulnera,four-spot,N,49907,2208,57146,annual,pink,4,8
427
435
  Clarkia purpurea subsp. viminea,four-spot,N,49908,2209,57147,annual
@@ -449,7 +457,7 @@ Collinsia sparsiflora var. collina,,N,56722,2290,57290
449
457
  Collinsia sparsiflora var. sparsiflora,,N,56723,2291,64295
450
458
  Collinsia tinctoria,,N,20008,2293,51850
451
459
  Collomia diversifolia,serpentine collomia,N,20020,2299,62230,,,,,126,4.3,,,S4,G4
452
- Collomia grandiflora,large-flowered collomia,N,20021,,61871,annual,orange,4,6
460
+ Collomia grandiflora,large-flowered collomia,N,20021,2300,61871,annual,orange,4,6
453
461
  Collomia heterophylla,,N,20022,2301,52996
454
462
  Conium maculatum,poison hemlock,X,20136,2317,52998,,white
455
463
  Consolida ajacis,,X,20161,9821,401314
@@ -521,7 +529,7 @@ Cyperus eragrostis,,N,21820,2581,59055
521
529
  Cyperus erythrorhizos,,N,21822,2582,59060
522
530
  Cyperus esculentus,yellow nut sedge,N,21824,2583,76584
523
531
  Cyperus involucratus,umbrella-sedge,X,21853,2585,414284
524
- Cyperus niger,,N,21881,2588,76591
532
+ Cyperus niger,,N,21881,2588,1551513
525
533
  Cyperus odoratus,,N,21885,2589,63329
526
534
  Cyperus strigosus,,N,21948,2593,59063
527
535
  Cypselea humifusa,,X,21994,2597,1355489
@@ -541,17 +549,19 @@ Deinandra kelloggii,,N,79196,10829,76615
541
549
  Deinandra lobbii,,N,77606,10830,58813
542
550
  Delairea odorata,German-ivy,X,80449,9623,53208
543
551
  Delphinium californicum subsp. californicum,,N,50072,2631,51860,perennial,white,4,6
544
- Delphinium californicum subsp. interius,California larkspur,N,50073,2632,51859,perennial,,,,551,1B.2,,,S3,G3T3
552
+ Delphinium californicum subsp. interius,California larkspur,N,50073,2632,51859,perennial,white,4,6,551,1B.2,,,S3,G3T3
545
553
  Delphinium decorum subsp. decorum,coast larkspur,N,50079,2635,79784,perennial,"blue,purple",3,5
554
+ Delphinium glaucum,Sierra larkspur,N,22471,2638,76625,perennial,"purple,blue",7,9
546
555
  Delphinium gracilentum,,N,22474,2639,76626,perennial
547
556
  Delphinium gypsophilum,gypsum-loving larkspur,N,22476,2640,56068,perennial
548
557
  Delphinium hansenii subsp. hansenii,Hansen's larkspur,N,50088,2645,79787,perennial
549
558
  Delphinium hesperium subsp. hesperium,western larkspur,N,50091,2649,57238,perennial,"blue,purple",3,6
550
- Delphinium hesperium subsp. pallescens,,N,50092,2650,58997,perennial
559
+ Delphinium hesperium subsp. pallescens,,N,50092,2650,58997,perennial,white,3,5
551
560
  Delphinium nudicaule,red larkspur,N,22492,2655,50642,perennial,red,3,6
552
- Delphinium parryi subsp. parryi,Parry's larkspur,N,50107,2665,58999,perennial
561
+ Delphinium nuttallianum,dwarf larkspur,N,22494,2656,76630,perennial,purple,5,7
562
+ Delphinium parryi subsp. parryi,Parry's larkspur,N,50107,2665,58999,perennial,blue,4,6
553
563
  Delphinium patens subsp. patens,spreading larkspur,N,50113,2670,57246,perennial,blue,3,6
554
- Delphinium recurvatum,valley larkspur,N,22516,2673,58305,perennial,,,,222,1B.2,,,S2?,G2?
564
+ Delphinium recurvatum,valley larkspur,N,22516,2673,58305,perennial,,,,222,1B.2,,,S2,G2?
555
565
  Delphinium variegatum subsp. variegatum,royal larkspur,N,50119,2682,50633,perennial,"blue,purple",3,5
556
566
  Dendromecon rigida,bush poppy,N,22541,2686,58224
557
567
  Deschampsia cespitosa subsp. cespitosa,tufted hairgrass,N,50130,2689,61199
@@ -560,7 +570,7 @@ Deschampsia danthonioides,annual hairgrass,N,22598,2691,57164
560
570
  Deschampsia elongata,slender hairgrass,N,22600,2692,52722
561
571
  Descurainia pinnata subsp. brachycarpa,tansy mustard,N,50146,11596,59235
562
572
  Desmazeria rigida,,X,22633,2706,288259
563
- Dianthus nudiflorus,,X,85151,14658,1143003
573
+ Dianthus nudiflorus,,X,85151,14658,1143003,annual,pink
564
574
  Dicentra formosa,bleeding heart,N,22766,2711,51048
565
575
  Dichelostemma congestum,ookow,N,22850,2721,56593
566
576
  Dichelostemma multiflorum,,N,22853,2723,62262
@@ -588,7 +598,9 @@ Downingia ornatissima var. mirabilis,,N,84766,14563
588
598
  Downingia pulchella,,N,23282,2782,60167
589
599
  Draba cuneifolia,,N,23332,2798,1138678
590
600
  Draba verna,spring whitlow-grass,X,23442,2816,55823,,white,2,5
601
+ Drymocallis glandulosa var. glandulosa,sticky cinquefoil,N,82059,11609,80678,perennial,"yellow,white",5,7
591
602
  Drymocallis glandulosa var. wrangelliana,sticky cinquefoil,N,82064,11612,80681
603
+ Drymocallis lactea var. austiniae,Austin's woodbeauty,N,82054,11615,80682,perennial,yellow,5,9
592
604
  Dryopteris arguta,coastal wood fern,N,23524,2823,52671
593
605
  Duchesnea indica var. indica,mock-strawberry,X,91747,11621,243824
594
606
  Dudleya cymosa subsp. cymosa,,N,50235,2845,64259
@@ -604,7 +616,7 @@ Echinochloa muricata var. microstachya,,N,58092,9886,80690
604
616
  Echinodorus berteroi,burhead,N,23812,2886,76761
605
617
  Echium candicans,Pride of Madeira,X,77286,2888,57723
606
618
  Eclipta prostrata,,N,2527,2892,76765
607
- Egeria densa,Brazilian waterweed,X,23849,2893,60465
619
+ Egeria densa,Brazilian waterweed,X,23849,2893,1555600
608
620
  Ehrendorferia chrysantha,golden ear-drops,N,88966,9511,58952
609
621
  Ehrharta erecta,Stebbins' grass,X,23854,2895,64140
610
622
  Eichhornia crassipes,water-hyacinth,X,23856,2896,962637
@@ -669,7 +681,9 @@ Ericameria linearifolia,interior goldenbush,N,2598,3085,57971
669
681
  Ericameria nauseosa var. mohavensis,rabbitbrush,N,80505,11665,57936
670
682
  Erigeron bonariensis,,X,2305,11666,76904
671
683
  Erigeron canadensis,horseweed,N,2312,11667,76907
684
+ Erigeron compositus,cut-leaf fleabane,N,2650,3121,76912,perennial,white,5,9
672
685
  Erigeron foliosus var. franciscensis,,N,58408,3137,80740
686
+ Erigeron glacialis var. glacialis,subalpine fleabane,N,82188,10882,80743,perennial,"white,purple",7,9
673
687
  Erigeron petrophilus var. petrophilus,,N,58427,3159,58825
674
688
  Erigeron philadelphicus var. philadelphicus,,N,7324,9105,80752,,white,5,6
675
689
  Erigeron reductus var. angustatus,,N,58431,3166,80754
@@ -693,7 +707,7 @@ Eriogonum roseum,virgate buckwheat,N,24922,3360,58280
693
707
  Eriogonum truncatum,Mt. Diablo buckwheat,N,24957,3383,77039,,,,,766,1B.1,,,S1,G1
694
708
  Eriogonum umbellatum var. bahiiforme,sulfur flower,N,58755,3388,80851,,,,,1338,4.2,,,S3,G5T3
695
709
  Eriogonum wrightii var. trachygonum,,N,58801,3413,59244
696
- Eriogonum wrightii var. subscaposum,short-stemmed bastard-sage,N,58800,,,perennial,"white,pink",6,9
710
+ Eriogonum wrightii var. subscaposum,short-stemmed bastard-sage,N,58800,3412,58985,perennial,"white,pink",6,9
697
711
  Eriophyllum confertiflorum var. confertiflorum,golden-yarrow,N,69866,3423,53397,perennial,yellow,4,8
698
712
  Eriophyllum jepsonii,Jepson's woolly-sunflower,N,2816,3426,77048,,,,,776,4.3,,,S3,G3
699
713
  Eriophyllum lanatum var. achilleoides,,N,7369,10587,80880
@@ -717,7 +731,9 @@ Erysimum capitatum var. angustatum,Contra Costa wallflower,N,58866,9942,119564,,
717
731
  Erysimum capitatum var. capitatum,western wallflower,N,58866,9943,50627,,"orange,yellow",3,9
718
732
  Erythranthe androsacea,,N,99088,13487,771845
719
733
  Erythranthe arvensis,"villous-bracted monkeyflower,field monkeyflower",N,99091,13552,771848,,yellow,4,7
734
+ Erythranthe breweri,Brewer's monkeyflower,N,99101,13489,548766,annual,pink,6,8
720
735
  Erythranthe cardinalis,scarlet monkeyflower,N,25147,13490,319974,,red,5,9
736
+ Erythranthe erubescens,blushing monkeyflower,N,100565,13558,771871,perennial,pink,6,8
721
737
  Erythranthe floribunda,many-flowered monkeyflower,N,99122,13492,701582,,yellow,4,8
722
738
  Erythranthe grandis,magnificent seep monkeyflower,N,99129,13560,771876,,yellow,5,7
723
739
  Erythranthe guttata,seep monkeyflower,N,99131,13493,470643,,yellow,4,9
@@ -725,7 +741,10 @@ Erythranthe inconspicua,small-flowered monkeyflower,N,99135,13416,771882,,pink,4
725
741
  Erythranthe laciniata,,N,99142,13417,546557,,,,,1093,4.3,,,S4,G4
726
742
  Erythranthe latidens,broad-tooth monkeyflower,N,99144,13495,771886,,"white,pink",4,6
727
743
  Erythranthe microphylla,small leaved monkeyflower,N,99152,13498,453717
744
+ Erythranthe moschata,musk monkeyflower,N,99156,13494,453644,perennial,yellow,6,8
728
745
  Erythranthe nasuta,shy monkeyflower,N,99158,13637,545973,,yellow,3,7
746
+ Erythranthe primuloides,primrose monkeyflower,N,99174,13501,635401,perennial,yellow,6,8
747
+ Erythranthe tilingii,Tiling's monkeyflower,N,99191,13507,555996,perennial,yellow,6,9
729
748
  Eschscholzia caespitosa,tufted poppy,N,25205,3511,58954
730
749
  Eschscholzia californica,California poppy,N,25206,3512,48225
731
750
  Eschscholzia rhombipetala,,N,25218,3527,77087,,,,,806,1B.1,,,S1,G1
@@ -829,7 +848,7 @@ Grindelia hirsutula,,N,3107,3960,55364,,yellow
829
848
  Grindelia stricta var. angustifolia,marsh gumplant,N,77358,3968,61991,,yellow
830
849
  Gruvelia pusilla,little combseed,N,105901,14570,57694
831
850
  Gutierrezia californica,California matchweed,N,3140,3977,57978
832
- Hainardia cylindrica,,X,27553,3996,60285
851
+ Hainardia cylindrica,,X,27553,3996,1477514
833
852
  Hedera canariensis,Canary Islands ivy,X,81236,8467,64113,,white,8,11
834
853
  Hedera helix,English ivy,X,27768,4023,55882,,white,8,11
835
854
  Hedypnois rhagadioloides,,X,99769,13134,492864
@@ -879,7 +898,7 @@ Holocarpha heermannii,Heermann's tarweed,N,3557,4204,62568,annual,yellow
879
898
  Holocarpha macradenia,Santa Cruz tarplant,N,3558,4205,62573,annual,,,,907,1B.1,CE,FT,S1,G1
880
899
  Holocarpha obconica,,N,3559,4206,62571,annual
881
900
  Holocarpha virgata subsp. virgata,,N,6108,4210,53102,annual,yellow,5,11
882
- Holodiscus discolor var. discolor,"cream bush,oceanspray",N,28344,4211,53414,perennial,white,5,8
901
+ Holodiscus discolor var. discolor,"cream bush,oceanspray",N,75685,11727,80941,perennial,white,5,8
883
902
  Holozonia filipes,Greene's white crown,N,3561,4216,77430,perennial,white,6,10
884
903
  Hordeum brachyantherum subsp. brachyantherum,meadow barley,N,76411,4219,61834
885
904
  Hordeum brachyantherum subsp. californicum,California barley,N,76414,4220,59092
@@ -908,6 +927,7 @@ Hypochaeris radicata,rough cat's ear,X,3625,4314,53104,perennial,yellow,4,7
908
927
  Idahoa scapigera,flat-pod,N,28891,4316,77486
909
928
  Ilex aquifolium,English holly,X,28898,4317,53856
910
929
  Impatiens balfourii,touch-me-not,X,28954,4320,77490
930
+ Ipomopsis aggregata subsp. aggregata,scarlet gilia,N,51025,11765,52142,perennial,red,6,9
911
931
  Iris douglasiana,Douglas' iris,N,29188,4346,50854
912
932
  Iris foetidissima,stinking iris,X,29193,8604,64331
913
933
  Iris longipetala,central coast iris,N,29293,4354,67703,,,,,3169,4.2,,,S3,G3
@@ -920,7 +940,7 @@ Isolepis cernua,,N,79218,9605,60257
920
940
  Iva axillaris,poverty weed,N,3654,10020,58837
921
941
  Jaumea carnosa,,N,3667,4424,60969
922
942
  Juglans californica,Southern California black walnut,N,29566,4428,54503,,,,,1704,4.2,,,S4,G4
923
- Juglans hindsii,Northern California black walnut,N,29568,,,perennial,,4,5
943
+ Juglans hindsii,Northern California black walnut,N,29568,8943,54502,perennial,,4,5
924
944
  Juncus acuminatus,tapered rush,N,29592,4432,77549
925
945
  Juncus ambiguus,frog rush,X,29601,4434,436606
926
946
  Juncus articulatus subsp. articulatus,jointed rush,N,91767,11773,79958
@@ -1024,11 +1044,14 @@ Lessingia nemaclada,,N,3785,4753,60508
1024
1044
  Lessingia pectinata var. tenuipes,,N,81838,11800,81020
1025
1045
  Lessingia ramulosa,,N,3786,4755,77716
1026
1046
  Lessingia tenuis,spring lessingia,N,3778,4756,58025,,,,,684,4.3,,,S4,G4
1027
- Lewisia rediviva var. rediviva,bitterroot,N,60818,10066,81025,,"white,pink",3,6
1047
+ Lewisia leeana,quill-leaved lewisia,N,30833,10065,77728,perennial,"pink,white",6,8
1048
+ Lewisia rediviva var. rediviva,bitterroot,N,60818,10066,81025,perennial,"white,pink",3,6
1028
1049
  Ligusticum apiifolium,,N,30890,4794,59298
1029
1050
  Ligustrum lucidum,Chinese privet,X,30906,8656,77740
1030
1051
  Lilaeopsis masonii,Mason's lilaeopsis,N,30919,4798,77742,,,,,974,1B.1,CR,,S2,G2
1031
1052
  Lilium pardalinum subsp. pardalinum,leopard lily,N,51254,4810,61829
1053
+ Lilium pardalinum subsp. shastense,Shasta lily,N,51255,4812,62231,perennial,orange,7,8
1054
+ Lilium rubescens,redwood lily,N,30961,4817,60499,perennial,"white,pink",5,8,980,4.2,,,S3,G3
1032
1055
  Limnanthes douglasii subsp. douglasii,meadowfoam,N,51259,4826,51341
1033
1056
  Limnanthes douglasii subsp. nivea,meadowfoam,N,51260,4827,51342
1034
1057
  Limnanthes douglasii subsp. rosea,,N,51261,4828,51339
@@ -1040,6 +1063,7 @@ Limosella aquatica,,N,31028,4844,59016
1040
1063
  Limosella australis,delta mudwort,X,31029,10069,60248,,,,,1715,2B.1,,,S2,G4G5
1041
1064
  Linanthus dichotomus subsp. dichotomus,evening snow,N,51286,10624,80000
1042
1065
  Linanthus dichotomus subsp. meridianus,,N,51287,10625,80001
1066
+ Linanthus pungens subsp. pulchriflorus,granite prickly phlox,N,98684,14586,861790,perennial,"white,pink",5,8
1043
1067
  Linum bienne,,X,31144,4906,55679
1044
1068
  Linum lewisii var. lewisii,blue flax,N,60912,4910,60495
1045
1069
  Lithophragma affine,woodland star,N,31236,4922,50803,,white,3,4
@@ -1048,8 +1072,8 @@ Lithophragma cymbalaria,,N,31241,4925,58323
1048
1072
  Lithophragma heterophyllum,hill starflower,N,31244,4927,53124,,white
1049
1073
  Lithophragma parviflorum var. parviflorum,,N,60952,4930,81027,,"white,pink",3,7
1050
1074
  Lobularia maritima,sweet alyssum,X,31347,4939,56992
1051
- Logfia filaginoides,herba impia,N,81847,10960,64254
1052
- Logfia gallica,,X,31363,9521,56949
1075
+ Logfia filaginoides,herba impia,N,81847,10960,64254,annual,red,2,5
1076
+ Logfia gallica,,X,31363,9521,56949,annual,"brown,yellow",3,7
1053
1077
  Lomatium californicum,chu-chu-pate,N,31389,4950,56824,,yellow,4,6
1054
1078
  Lomatium caruifolium var. caruifolium,,N,61026,4953,64328
1055
1079
  Lomatium caruifolium var. denticulatum,,N,61027,4954,60123
@@ -1087,6 +1111,7 @@ Lupinus nanus,sky lupine,N,31978,5189,50612,,blue,3,6
1087
1111
  Lupinus pachylobus,big pod lupine,N,31998,5196,50613
1088
1112
  Lupinus succulentus,arroyo lupine,N,32095,5217,56759,annual,blue,2,5
1089
1113
  Luzula comosa var. comosa,wood rush,N,72790,11810,81079
1114
+ Luzula macrantha,prairie woodrush,N,100427,14739,890625,perennial,brown,4,7
1090
1115
  Luzula subsessilis,,N,32171,11815,77901
1091
1116
  Lychnis coronaria,rose campion,X,32177,5229,485191
1092
1117
  Lycopus americanus,cutleaf bugleweed,N,32313,5247,60206
@@ -1108,8 +1133,8 @@ Madia radiata,showy madia,N,4053,5296,77924,,,,,1054,1B.1,,,S3,G3
1108
1133
  Madia sativa,coast tarweed,N,4055,5298,53143,,yellow
1109
1134
  Maianthemum racemosum,false Solomon's seal,N,32495,10096,51062
1110
1135
  Maianthemum stellatum,,N,32497,9629,53268
1111
- Malacothamnus arcuatus var. elmeri,,N,108345,14681,1497404,,,,,1065,1B.2,,,S2,G2
1112
- Malacothamnus fremontii,white-coat mallow,N,32524,5312,70397
1136
+ Malacothamnus arcuatus var. elmeri,,N,108345,14681,1497404,perennial,pink,4,5,1065,1B.2,,,S2,G2
1137
+ Malacothamnus fremontii var. fremontii,long-haired unfurled bushmallow,N,108341,14689,70398,perennial,pink,5,6
1113
1138
  Malacothamnus hallii,,N,108345,14681,1497404,,,,,1065,1B.2,,,S2,G2
1114
1139
  Malacothrix californica,,N,4059,5325,58026
1115
1140
  Malacothrix clevelandii,Cleveland's malacothrix,N,4060,5326,58841
@@ -1123,7 +1148,7 @@ Malvella leprosa,alkali-mallow,N,32649,5356,58203
1123
1148
  Marah fabacea,California man-root,N,101920,11820,205330
1124
1149
  Marah oregana,coast man-root,N,101917,11823,77960
1125
1150
  Marrubium vulgare,horehound,X,32810,5370,54605
1126
- Marsilea vestita subsp. vestita,,N,51529,5372,64188
1151
+ Marsilea vestita subsp. vestita,,N,51529,5372,60111
1127
1152
  Matricaria discoidea,pineapple weed,N,4103,11825,52992
1128
1153
  Matricaria occidentalis,western chamomile,N,4113,9500,57929
1129
1154
  Maytenus boaria,mayten,X,77417,8519,77969
@@ -1212,9 +1237,11 @@ Navarretia gowenii,Gowen's navarretia,N,88836,10741,78180,,,,,3324,1B.1,,,S1,G1
1212
1237
  Navarretia hamata subsp. parviloba,hooked navarretia,N,51666,5780,80048
1213
1238
  Navarretia heterandra,Tehama navarretia,N,34453,5781,78181,,,,,1162,4.3,,,S4,G4
1214
1239
  Navarretia intertexta,needleleaf navarretia,N,34455,5783,60225
1240
+ Navarretia leptalea subsp. bicolor,Bridges' gilia,N,81098,9528,80051,annual,purple,6,9
1241
+ Navarretia leptalea subsp. leptalea,Bridges' pincushionplant,N,81096,9529,80052,annual,purple,6,8
1215
1242
  Navarretia mellita,,N,34465,5794,58975
1216
1243
  Navarretia nigelliformis subsp. nigelliformis,,N,51676,5797,78186,,,,,3233,4.2,,,S3,G4T3
1217
- Navarretia nigelliformis subsp. radians,adobe navarretia,N,51677,5798,80060,,,,,1738,1B.2,,,S2,G4T2
1244
+ Navarretia nigelliformis subsp. radians,adobe navarretia,N,51677,5798,80060,,,,,1738,1B.2,,,S2S3,G4T2
1218
1245
  Navarretia prostrata,,N,34470,5803,78190,,,,,1983,1B.2,,,S2,G2
1219
1246
  Navarretia pubescens,downy pincushion,N,34471,5804,58976
1220
1247
  Navarretia squarrosa,skunkweed,N,34475,5807,53157
@@ -1272,8 +1299,11 @@ Pennisetum clandestinum,Kikuyu grass,X,36818,6132,60298
1272
1299
  Pennisetum setaceum,fountain grass,X,36827,6133,430581
1273
1300
  Pennisetum villosum,,X,36829,6134,430578
1274
1301
  Penstemon centranthifolius,scarlet bugler,N,36894,6146,56752
1302
+ Penstemon deustus var. deustus,hot rock penstemon,N,63245,10192,81191,perennial,white,5,7
1303
+ Penstemon heterodoxus var. heterodoxus,Sierra penstemon,N,76771,6174,81203,perennial,purple,7,8
1275
1304
  Penstemon heterophyllus var. heterophyllus,chaparral penstemon,N,75906,6178,51852,perennial,purple,4,7
1276
1305
  Penstemon heterophyllus var. purdyi,foothill penstemon,N,76773,6179,81205,perennial,purple,5,6
1306
+ Penstemon newberryi var. newberryi,mountain pride,N,76776,6192,52147,perennial,pink,6,8
1277
1307
  Pentachaeta alsinoides,tiny pygmy daisy,N,4273,6225,58844
1278
1308
  Pentachaeta exilis subsp. exilis,meager pygmy daisy,N,6171,6230,58846
1279
1309
  Pentagramma triangularis,goldback fern,N,77119,6234,52676
@@ -1383,7 +1413,9 @@ Poa secunda subsp. secunda,one-sided bluegrass,N,70516,6694,58383
1383
1413
  Pogogyne douglasii,,N,38936,6704,63943
1384
1414
  Pogogyne serpylloides,,N,38939,6708,57118
1385
1415
  Pogogyne zizyphoroides,,N,78298,6709,60209
1416
+ Polemonium californicum,California Jacob's-ladder,N,38969,6711,67525,perennial,"blue,purple",6,8
1386
1417
  Polemonium carneum,royal sky pilot,N,38971,6712,78665,,,,,3345,2B.2,,,S2,G3G4
1418
+ Polemonium pulcherrimum var. pulcherrimum,pretty Jacob's-ladder,N,75974,6719,81276,perennial,"blue,purple",6,9
1387
1419
  Polycarpon tetraphyllum subsp. tetraphyllum,four-leaved allseed,X,80560,14756,81277
1388
1420
  Polygonum argyrocoleon,persian knotweed,X,39158,6738,78676
1389
1421
  Polygonum aviculare subsp. aviculare,,X,80990,10667,80151
@@ -1417,6 +1449,8 @@ Poterium sanguisorba,burnet,X,91917,11953,55736
1417
1449
  Primula clevelandii var. gracilis,,N,98403,13220,487172
1418
1450
  Primula clevelandii var. patula,shooting star,N,98401,13222,487173,,purple,3,5
1419
1451
  Primula hendersonii,shooting star,N,98398,13225,487175,,purple,3,7
1452
+ Primula jeffreyi,Sierra shooting star,N,98397,13226,498114,perennial,purple,6,8
1453
+ Primula tetrandra,alpine shooting star,N,98394,13228,499563,perennial,purple,6,8
1420
1454
  Proboscidea lutea,devil's claw,X,77314,6875,164032
1421
1455
  Prosartes hookeri,fairy bells,N,39938,10263,51071
1422
1456
  Prosartes smithii,,N,80335,9513,57506
@@ -1587,12 +1621,14 @@ Scoliopus bigelovii,,N,43824,7416,48990
1587
1621
  Scolymus hispanicus,golden thistle,X,4661,7417,79009
1588
1622
  Scribneria bolanderi,,N,43846,7420,57196
1589
1623
  Scrophularia californica,California figwort,N,43849,7422,50812,,white
1590
- Scutellaria bolanderi subsp. bolanderi,Sierra skullcap,N,52896,,,perennial,"white,blue",6,7
1624
+ Scutellaria bolanderi subsp. bolanderi,Sierra skullcap,N,52896,7431,80184,perennial,"white,blue",6,7
1591
1625
  Scutellaria californica,,N,43883,7432,59791,perennial
1592
1626
  Scutellaria galericulata,,N,43891,7433,79016,perennial,,,,1767,2B.2,,,S2,G5
1593
1627
  Scutellaria siphocampyloides,,N,43926,7437,59792,perennial,blue,5,7
1594
1628
  Scutellaria tuberosa,,N,43930,7438,57122,perennial
1595
1629
  Sedella pentandra,,N,43952,9590,58884
1630
+ Sedum lanceolatum,lanceleaf stonecrop,N,43981,7443,79026,perennial,yellow,5,8
1631
+ Sedum obtusatum,Sierra stonecrop,N,43994,7450,60847,perennial,yellow,6,8
1596
1632
  Sedum radiatum subsp. radiatum,,N,52943,14601,238486
1597
1633
  Sedum radiatum,coast range stonecrop,N,44006,7457,61471
1598
1634
  Sedum spathulifolium,broadleaf stonecrop,N,44016,7459,58886
@@ -1621,7 +1657,7 @@ Silene laciniata subsp. californica,,N,82538,11084,62222
1621
1657
  Silene lemmonii,,N,44533,7603,60523
1622
1658
  Silene verecunda,,N,44589,7617,60581
1623
1659
  Silybum marianum,milk-thistle,X,4918,7622,52586
1624
- Sinapis arvensis,charlock,X,44609,7625,1451052
1660
+ Sinapis arvensis,charlock,X,44609,7625,1562069
1625
1661
  Sisymbrium irio,London rocket,X,44651,7628,58085
1626
1662
  Sisymbrium officinale,hedge mustard,X,44653,7630,53266
1627
1663
  Sisymbrium orientale,,X,44654,7631,58086
@@ -1756,14 +1792,14 @@ Trifolium incarnatum,crimson clover,X,47100,8084,64268
1756
1792
  Trifolium macraei,Macrae's clover,N,47122,8094,61020
1757
1793
  Trifolium microcephalum,small-head clover,N,47129,8096,58911
1758
1794
  Trifolium microdon,thimble clover,N,47130,8097,57079
1759
- Trifolium obtusiflorum,clammy clover,N,47144,8101,58912
1795
+ Trifolium obtusiflorum,clammy clover,N,47144,8101,58912,annual,"purple,white",4,7
1760
1796
  Trifolium oliganthum,few-flowered clover,N,47145,8102,71122
1761
1797
  Trifolium pratense,red clover,X,47160,8104,51875
1762
1798
  Trifolium repens,white clover,X,47164,8105,55745
1763
1799
  Trifolium subterraneum,subterranean clover,X,47174,8106,60201
1764
1800
  Trifolium tomentosum,woolly clover,X,47177,8586,61024
1765
1801
  Trifolium variegatum,,N,47179,8108,57080
1766
- Trifolium willdenovii,tomcat clover,N,47186,8109,57081
1802
+ Trifolium willdenovii,tomcat clover,N,47186,8109,57081,annual,"purple,white",3,6
1767
1803
  Trifolium wormskioldii,cow clover,N,47188,8110,71146
1768
1804
  Triglochin concinna var. concinna,slender arrow-grass,N,74018,8112,81439
1769
1805
  Triglochin maritima,seaside arrow-grass,N,47197,8114,60264
@@ -0,0 +1 @@
1
+ Brown or black phyllaries.
@@ -0,0 +1 @@
1
+ Pink or white phyllaries.
@@ -0,0 +1 @@
1
+ Plant glandular and sticky, hairy.
@@ -0,0 +1 @@
1
+ At least 2 inflorescences per rosette. Usually has some small non-basal leaves.
@@ -0,0 +1 @@
1
+ Only one inflorescence per rosette. Usually has only basal leaves.
@@ -0,0 +1 @@
1
+ Petals and sepals indistinguishable, usually with 5 veins, 20-40 mm long.
@@ -0,0 +1 @@
1
+ Petals and sepals indistinguishable, usually with 3 veins, 10-20 mm long.
@@ -0,0 +1 @@
1
+ [Style](./g/style.html) shorter than stamens. All 4 sepals attached to each other and directed to one side.
@@ -0,0 +1 @@
1
+ Petals with three lobes; middle lobe narrower and longer than the other two. 4 stamens.
@@ -0,0 +1 @@
1
+ Petals with 3 lobes; lobes of equal width. 4 stamens. [Stigma](./g/stigma.html) not protruding beyond anthers.
@@ -0,0 +1 @@
1
+ Petals usually light pink with darker flecks. Petals narrow and not overlapping. All 4 sepals attached to each other and directed to one side. 8 stamens; anthers in two series, with inner series smaller and paler.
@@ -0,0 +1 @@
1
+ [Stigma](./g/stigma.html) not protruding beyond anthers.
@@ -0,0 +1 @@
1
+ Petal red at base. 8 stamens.
@@ -1 +1 @@
1
- Flowers hairy.
1
+ Upper petals, lower surface of leaves, and side sepals hairy. Sepals lavender (subsp. _interius_ has green-white sepals).
@@ -0,0 +1 @@
1
+ Upper petals and leaves not hairy. Sepals green-white (subsp. _californicum_ has lavender sepals).
@@ -0,0 +1 @@
1
+ Tall, often to 1.5 meters or occasionally taller. Lower part of stem leafless and coated with whitish powder.
@@ -1 +1 @@
1
- Flowers dark blue to purple. Sepals dark blue-purple; not bent back.
1
+ Leaves hairy on undersides. Flowers dark blue to purple. Sepals dark blue-purple; not hairy, not bent back.
@@ -0,0 +1 @@
1
+ Leaves hairy on undersides. Flowers white to pink.
@@ -0,0 +1 @@
1
+ Plant usually 50 cm or less in height.
@@ -0,0 +1 @@
1
+ Leaves hairy on both sides. Inflorescence with more than 10 flowers.
@@ -0,0 +1 @@
1
+ Sepals at least as long as petals.
@@ -0,0 +1 @@
1
+ Petals longer than sepals.
@@ -0,0 +1 @@
1
+ Leaves mostly basal and usually dissected into 3 parts; may have small undissected leaves along stem. Basal leaves with dense short hairs. May or may not have ray flowers.
@@ -0,0 +1 @@
1
+ Phyllary hairs glandular, phyllaries roughly equal in length. Leaves not dissected, generally 5-20 cm long, and much longer than they are wide.
@@ -0,0 +1 @@
1
+ Small flowers (tube throat 4-8 mm).
@@ -0,0 +1 @@
1
+ Large flowers (tube throat 20-50 mm). Flowers light pink with dark purple stripes. Plant hairy.
@@ -0,0 +1 @@
1
+ Has leaves along stem, not just basal rosette. Musky smell.
@@ -0,0 +1 @@
1
+ Leaves resemble a basal rosette.
@@ -0,0 +1 @@
1
+ Base of lower lip swollen.
@@ -0,0 +1 @@
1
+ Pollen yellow to orange. Anthers orange to magenta.
@@ -0,0 +1 @@
1
+ Leaf flexible, wider at end than at base.
@@ -0,0 +1 @@
1
+ Leaf awl-shaped and stiff.
@@ -0,0 +1 @@
1
+ Fewer than 6 [calyx](./g/calyx.html) lobes.
@@ -0,0 +1 @@
1
+ At least 6 [calyx](./g/calyx.html) lobes.
@@ -0,0 +1 @@
1
+ Corolla throat yellow, sometimes with purple marks. Corolla throat 2-5 mm long.
@@ -0,0 +1 @@
1
+ Corolla throat purple, 6-8 mm long.
@@ -0,0 +1 @@
1
+ Terminal leaflet fused with adjacent leaflets. Preferred habitat is montane forest.
@@ -0,0 +1 @@
1
+ Terminal leaflet not fused with adjacent leaflets. Preferred habitat is rock talus.
@@ -0,0 +1 @@
1
+ Stem hairy and glandular.
@@ -0,0 +1 @@
1
+ Stem not hairy.
@@ -0,0 +1 @@
1
+ Similar to _T. willdenovii_, but with longer teeth on leaves, [calyx](./g/calyx.html) generally hairy and/or bumpy.
@@ -0,0 +1 @@
1
+ Similar to _T. obtusiflorum_, but with shorter teeth on leaves, [calyx](./g/calyx.html) not hairy or bumpy.
@@ -1,16 +1,15 @@
1
1
  import { Config } from "./config.js";
2
2
  import { Files } from "./files.js";
3
3
  import { Jekyll } from "./jekyll.js";
4
- import { Taxa } from "./taxa.js";
5
4
  import { GlossaryPages } from "./web/glossarypages.js";
6
5
 
7
6
  class BasePageRenderer {
8
7
  /**
9
8
  * @param {string} outputDir
10
9
  * @param {Taxa} taxa
11
- * @param {*} familyCols
10
+ * @param {TaxaCol[]} [familyCols]
12
11
  */
13
- static render(outputDir, taxa, familyCols) {
12
+ static renderBasePages(outputDir, taxa, familyCols) {
14
13
  const siteGenerator = new Jekyll(outputDir);
15
14
 
16
15
  // Copy static files
@@ -20,7 +19,7 @@ class BasePageRenderer {
20
19
  Files.copyDir("jekyll", outputDir);
21
20
 
22
21
  // Copy illustrations.
23
- siteGenerator.copyIllustrations(Taxa.getFlowerColors());
22
+ siteGenerator.copyIllustrations(taxa.getFlowerColors());
24
23
 
25
24
  taxa.getFamilies().renderPages(outputDir, familyCols);
26
25
 
package/lib/config.js CHANGED
@@ -3,46 +3,69 @@ import * as url from "node:url";
3
3
  import { Files } from "./files.js";
4
4
 
5
5
  class Config {
6
+ static #packageDir = path.dirname(
7
+ path.dirname(url.fileURLToPath(import.meta.url))
8
+ );
6
9
 
7
- static #packageDir = path.dirname( path.dirname( url.fileURLToPath( import.meta.url ) ) );
8
-
10
+ /** @type {Object<string,Object<string,Object<string,{}>>>} */
9
11
  #config = {};
10
12
 
11
- constructor( dataDir ) {
12
- this.#config = JSON.parse( Files.read( dataDir + "/config.json" ) );
13
+ /**
14
+ * @param {string} dataDir
15
+ */
16
+ constructor(dataDir) {
17
+ this.#config = JSON.parse(Files.read(dataDir + "/config.json"));
13
18
  }
14
19
 
15
- getConfigValue( prefix, name, subcat, dflt ) {
16
- const obj = this.#config[ prefix ];
17
- if ( obj ) {
18
- if ( Object.hasOwn( obj, name ) ) {
19
- const nameObj = obj[ name ];
20
- if ( nameObj === undefined ) {
20
+ /**
21
+ * @param {string} prefix
22
+ * @param {string} name
23
+ * @param {string|undefined} subcat
24
+ * @param {string} dflt
25
+ * @returns {string}
26
+ */
27
+ getConfigValue(prefix, name, subcat, dflt) {
28
+ const obj = this.#config[prefix];
29
+ if (obj) {
30
+ if (Object.hasOwn(obj, name)) {
31
+ const nameObj = obj[name];
32
+ if (nameObj === undefined) {
21
33
  return dflt;
22
34
  }
23
- if ( subcat === undefined ) {
24
- return nameObj;
35
+ if (subcat === undefined) {
36
+ return typeof nameObj === "string" ? nameObj : dflt;
25
37
  }
26
- if ( Object.hasOwn( nameObj, subcat ) ) {
27
- return nameObj[ subcat ];
38
+ if (Object.hasOwn(nameObj, subcat)) {
39
+ const v = nameObj[subcat];
40
+ return typeof v === "string" ? v : dflt;
28
41
  }
29
42
  }
30
43
  }
31
44
  return dflt;
32
45
  }
33
46
 
47
+ /**
48
+ * @returns {string[]}
49
+ */
34
50
  getCountyCodes() {
35
- return this.#config[ "counties" ];
51
+ const counties = this.#config["counties"];
52
+ if (counties instanceof Array) {
53
+ return counties;
54
+ }
55
+ return [];
36
56
  }
37
57
 
38
- getLabel( name, dflt ) {
39
- return this.getConfigValue( "labels", name, undefined, dflt );
58
+ /**
59
+ * @param {string} name
60
+ * @param {string} dflt
61
+ */
62
+ getLabel(name, dflt) {
63
+ return this.getConfigValue("labels", name, undefined, dflt);
40
64
  }
41
65
 
42
66
  static getPackageDir() {
43
67
  return this.#packageDir;
44
68
  }
45
-
46
69
  }
47
70
 
48
- export { Config };
71
+ export { Config };