@ca-plant-list/ca-plant-list 0.2.1 → 0.2.2
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/data/exceptions.json +43 -1
- package/data/photos.csv +2 -1
- package/data/taxa.csv +34 -35
- package/data/text/Bromus-catharticus-var-catharticus.md +1 -0
- package/data/text/Bromus-catharticus-var-elatus.md +1 -0
- package/data/text/Bromus-sitchensis-var-carinatus.md +1 -0
- package/data/text/Bromus-sitchensis-var-marginatus.md +1 -0
- package/data/text/Castilleja-foliolosa.md +1 -0
- package/data/text/Grindelia-camporum.md +1 -0
- package/data/text/Grindelia-hirsutula.md +1 -0
- package/data/text/Layia-chrysanthemoides.md +1 -0
- package/data/text/Layia-gaillardioides.md +1 -0
- package/data/text/Layia-hieracioides.md +1 -0
- package/data/text/Layia-platyglossa.md +1 -0
- package/data/text/Lithophragma-affine.md +1 -0
- package/data/text/Lithophragma-heterophyllum.md +1 -0
- package/data/text/Lithophragma-parviflorum-var-parviflorum.md +1 -0
- package/data/text/Lupinus-formosus-var-formosus.md +1 -0
- package/data/text/Lupinus-latifolius-var-latifolius.md +1 -0
- package/data/text/Lupinus-microcarpus-var-densiflorus.md +1 -0
- package/data/text/Lupinus-microcarpus-var-microcarpus.md +1 -0
- package/data/text/Lupinus-succulentus.md +1 -0
- package/data/text/Wyethia-angustifolia.md +1 -0
- package/data/text/Wyethia-glabra.md +1 -0
- package/data/text/Wyethia-helenioides.md +1 -0
- package/ebook/css/main.css +9 -52
- package/ebook/i/f-blue.svg +5 -0
- package/ebook/i/f-orange.svg +5 -0
- package/ebook/i/f-pink.svg +5 -0
- package/ebook/i/f-red.svg +5 -0
- package/ebook/i/f-white.svg +5 -0
- package/ebook/i/f-yellow.svg +5 -0
- package/jekyll/assets/css/main.css +6 -0
- package/lib/ebook/ebook.js +3 -3
- package/lib/ebook/ebookpage.js +4 -0
- package/lib/ebook/pages/page_list_families.js +27 -0
- package/lib/ebook/pages/page_list_flower_color.js +26 -0
- package/lib/ebook/pages/page_list_species.js +26 -0
- package/lib/ebook/pages/taxonpage.js +4 -2
- package/lib/ebook/pages/tocpage.js +18 -11
- package/lib/ebook/plantbook.js +67 -10
- package/lib/exceptions.js +14 -4
- package/lib/families.js +4 -0
- package/lib/index.d.ts +10 -6
- package/lib/pagetaxon.js +2 -2
- package/lib/taxa.js +53 -2
- package/package.json +1 -1
package/data/exceptions.json
CHANGED
@@ -1 +1,43 @@
|
|
1
|
-
{
|
1
|
+
{
|
2
|
+
"Castilleja ambigua subsp. ambigua": {
|
3
|
+
"rpi": {
|
4
|
+
"translation-to-rpi": "Castilleja ambigua var. ambigua"
|
5
|
+
}
|
6
|
+
},
|
7
|
+
"Castilleja ambigua var. ambigua": {
|
8
|
+
"rpi": {
|
9
|
+
"translation": "Castilleja ambigua subsp. ambigua"
|
10
|
+
}
|
11
|
+
},
|
12
|
+
"Erysimum capitatum var. angustatum": {
|
13
|
+
"calflora": {
|
14
|
+
"badjepsonid": true
|
15
|
+
},
|
16
|
+
"jepson": {
|
17
|
+
"allowsynonym": true
|
18
|
+
}
|
19
|
+
},
|
20
|
+
"Heterotheca oregona var. rudis": {
|
21
|
+
"inat": {
|
22
|
+
"notintaxondata": true
|
23
|
+
}
|
24
|
+
},
|
25
|
+
"Horkelia californica var. frondosa": {
|
26
|
+
"inat": {
|
27
|
+
"notintaxondata": true
|
28
|
+
}
|
29
|
+
},
|
30
|
+
"Myosurus minimus subsp. apus": {
|
31
|
+
"jepson": {
|
32
|
+
"notineflora": "in CNPS Rare Plant Inventory"
|
33
|
+
}
|
34
|
+
},
|
35
|
+
"Streptanthus albidus subsp. peramoenus": {
|
36
|
+
"calflora": {
|
37
|
+
"notintaxondata": true
|
38
|
+
},
|
39
|
+
"jepson": {
|
40
|
+
"allowsynonym": true
|
41
|
+
}
|
42
|
+
}
|
43
|
+
}
|
package/data/photos.csv
CHANGED
@@ -3,4 +3,5 @@ Calochortus argillosus,https://inaturalist-open-data.s3.amazonaws.com/photos/210
|
|
3
3
|
Calochortus luteus,https://inaturalist-open-data.s3.amazonaws.com/photos/257812293/original.jpg,,"(c) eeneill, some rights reserved (CC BY-NC)"
|
4
4
|
Calochortus venustus,https://inaturalist-open-data.s3.amazonaws.com/photos/268338027/original.jpg,,"(c) Gena Bentall, some rights reserved (CC BY-NC)"
|
5
5
|
Ceanothus cuneatus,https://inaturalist-open-data.s3.amazonaws.com/photos/266280254/original.jpg,,"(c) Ixchel Gonzalez-Ramirez, some rights reserved (CC BY-NC)"
|
6
|
-
Claytonia gypsophiloides,https://inaturalist-open-data.s3.amazonaws.com/photos/268277390/original.jpeg,,"(c) Christian Naventi, some rights reserved (CC BY-NC)"
|
6
|
+
Claytonia gypsophiloides,https://inaturalist-open-data.s3.amazonaws.com/photos/268277390/original.jpeg,,"(c) Christian Naventi, some rights reserved (CC BY-NC)"
|
7
|
+
Lithophragma heterophyllum,https://inaturalist-open-data.s3.amazonaws.com/photos/104408/medium.jpg,,"(c) dloarie, some rights reserved (CC BY)"
|
package/data/taxa.csv
CHANGED
@@ -104,7 +104,7 @@ Angelica californica,,N,13406,364,75448
|
|
104
104
|
Anisocarpus madioides,,N,77551,10770,53137
|
105
105
|
Anthemis cotula,"mayweed,dog-fennel",X,1067,392,52841
|
106
106
|
Anthoxanthum occidentale,,N,13521,11332,75474
|
107
|
-
Anthriscus caucalis,bur-chervil,X,13523,396,52846
|
107
|
+
Anthriscus caucalis,bur-chervil,X,13523,396,52846,white
|
108
108
|
Antirrhinum kelloggii,,N,13568,401,165675
|
109
109
|
Antirrhinum majus,snapdragon,X,13557,404,48969
|
110
110
|
Antirrhinum thompsonii,Sierra snapdragon,N,108978,14286,168306
|
@@ -326,14 +326,14 @@ Carex tumulicola,,N,17908,1645,64183
|
|
326
326
|
Carex unilateralis,lateral sedge,N,17915,1646,76123
|
327
327
|
Carpobrotus chilensis,sea fig,X,77164,1659,56026
|
328
328
|
Carpobrotus edulis,freeway iceplant,X,17975,1660,49322
|
329
|
-
Castilleja affinis subsp. affinis,Indian paintbrush,N,70068,1669,50043
|
329
|
+
Castilleja affinis subsp. affinis,Indian paintbrush,N,70068,1669,50043,red
|
330
330
|
Castilleja ambigua subsp. ambigua,johnny-nip,N,49732,1673,61110,,3361,4.2
|
331
331
|
Castilleja applegatei subsp. martinii,,N,76733,1679,1041230
|
332
332
|
Castilleja attenuata,valley tassels,N,18175,1683,49341
|
333
333
|
Castilleja densiflora subsp. densiflora,owl's-clover,N,49740,1691,61233
|
334
334
|
Castilleja exserta subsp. exserta,purple owl's-clover,N,49744,1695,59012
|
335
335
|
Castilleja exserta subsp. latifolia,,N,49745,1696,61109
|
336
|
-
Castilleja foliolosa,woolly paintbrush,N,18205,1698,56760
|
336
|
+
Castilleja foliolosa,woolly paintbrush,N,18205,1698,56760,red
|
337
337
|
Castilleja rubicundula subsp. lithospermoides,cream sacs,N,49761,1729,57269
|
338
338
|
Castilleja subinclusa subsp. franciscana,,N,76740,1733,53916
|
339
339
|
Castilleja subinclusa subsp. subinclusa,,N,74693,1734,53917
|
@@ -430,7 +430,7 @@ Claytonia exigua subsp. glauca,,N,76949,2233,57229
|
|
430
430
|
Claytonia gypsophiloides,candy stripers,N,19620,2234,55344,pink
|
431
431
|
Claytonia parviflora subsp. parviflora,,N,74695,2242,58296
|
432
432
|
Claytonia perfoliata subsp. mexicana,,N,76956,2245,53004
|
433
|
-
Claytonia perfoliata subsp. perfoliata,Miner's lettuce,N,49921,2246,53002
|
433
|
+
Claytonia perfoliata subsp. perfoliata,Miner's lettuce,N,49921,2246,53002,white
|
434
434
|
Claytonia rubra subsp. depressa,red stem spring beauty,N,76957,2248,79751
|
435
435
|
Clematis lasiantha,pipestems,N,19682,2254,49876
|
436
436
|
Clematis ligusticifolia,virgin's bower,N,19683,2255,58996
|
@@ -446,7 +446,7 @@ Collinsia sparsiflora var. sparsiflora,,N,56723,2291,64295
|
|
446
446
|
Collinsia tinctoria,,N,20008,2293,51850
|
447
447
|
Collomia diversifolia,serpentine collomia,N,20020,2299,62230,,126,4.3
|
448
448
|
Collomia heterophylla,,N,20022,2301,52996
|
449
|
-
Conium maculatum,poison hemlock,X,20136,2317,52998
|
449
|
+
Conium maculatum,poison hemlock,X,20136,2317,52998,white
|
450
450
|
Consolida ajacis,,X,20161,9821,401314
|
451
451
|
Convolvulus arvensis,bindweed,X,20203,2321,53021
|
452
452
|
Convolvulus simulans,,N,20208,2322,76433,,1636,4.2
|
@@ -801,7 +801,7 @@ Gilia achilleifolia subsp. achilleifolia,,N,50744,3813,51101
|
|
801
801
|
Gilia achilleifolia subsp. multicaulis,,N,50745,3814,51102
|
802
802
|
Gilia capitata subsp. capitata,,N,50764,3834,57798
|
803
803
|
Gilia capitata subsp. staminea,,N,50769,3839,57801
|
804
|
-
Gilia clivorum
|
804
|
+
Gilia clivorum,purplespot gilia,N,26880,3842,56630
|
805
805
|
Gilia millefoliata,,N,95310,3869,57797,,1923,1B.2,,,S2,G2
|
806
806
|
Gilia tricolor subsp. diffusa,bird's-eye gilia,N,50826,3900,79920
|
807
807
|
Gilia tricolor subsp. tricolor,bird's-eye gilia,N,50827,3901,79921
|
@@ -814,9 +814,9 @@ Glyceria leptostachya,narrow mannagrass,N,27079,3929,77292
|
|
814
814
|
Glycyrrhiza lepidota,wild licorice,N,27117,3933,58896
|
815
815
|
Gnaphalium palustre,lowland cudweed,N,3082,3946,57980
|
816
816
|
Gratiola ebracteata,bractless hedge hyssop,N,27292,3952,77300
|
817
|
-
Grindelia camporum,,N,3099,3956,56953
|
818
|
-
Grindelia hirsutula,,N,3107,3960,55364
|
819
|
-
Grindelia stricta var. angustifolia,marsh gumplant,N,77358,3968,61991
|
817
|
+
Grindelia camporum,,N,3099,3956,56953,yellow
|
818
|
+
Grindelia hirsutula,,N,3107,3960,55364,yellow
|
819
|
+
Grindelia stricta var. angustifolia,marsh gumplant,N,77358,3968,61991,yellow
|
820
820
|
Gruvelia pusilla,little combseed,N,105901,14570,57694
|
821
821
|
Gutierrezia californica,California matchweed,N,3140,3977,57978
|
822
822
|
Hainardia cylindrica,,X,27553,3996,60285
|
@@ -856,7 +856,6 @@ Heterotheca oregona var. rudis,Oregon goldenaster,N,7614,4146
|
|
856
856
|
Heterotheca oregona var. scaberrima,goldenaster,N,7616,4147,80937
|
857
857
|
Heterotheca sessiliflora subsp. bolanderi,Bolander's goldenaster,N,74443,4151,61170
|
858
858
|
Heterotheca sessiliflora subsp. echioides,,N,74445,4152,58834
|
859
|
-
Heterotheca sessiliflora var. bolanderioides,,N,,,58834
|
860
859
|
Heuchera micrantha,alumroot,N,28126,4171,51274
|
861
860
|
Hibiscus lasiocarpos var. occidentalis,rose-mallow,N,91751,11194,80940,,906,1B.2
|
862
861
|
Hieracium albiflorum,white hawkweed,N,3471,4184,63937
|
@@ -964,12 +963,12 @@ Lasthenia platycarpha,,N,3741,4595,60138
|
|
964
963
|
Lathyrus jepsonii var. californicus,,N,76680,4607,81010
|
965
964
|
Lathyrus jepsonii var. jepsonii,delta tule pea,N,76681,4608,81011,,956,1B.2
|
966
965
|
Lathyrus latifolius,perennial sweet-pea,X,30318,4613,61009
|
967
|
-
Lathyrus vestitus var. vestitus,Pacific pea,N,75728,4629,53109
|
968
|
-
Layia chrysanthemoides,,N,3745,4636,60139
|
969
|
-
Layia gaillardioides
|
966
|
+
Lathyrus vestitus var. vestitus,Pacific pea,N,75728,4629,53109,white
|
967
|
+
Layia chrysanthemoides,,N,3745,4636,60139,yellow
|
968
|
+
Layia gaillardioides,woodland tidy-tips,N,3748,4639,64246,yellow
|
970
969
|
Layia glandulosa,,N,3749,4640,58003
|
971
|
-
Layia hieracioides
|
972
|
-
Layia platyglossa,tidy-tips,N,3757,4649,50876
|
970
|
+
Layia hieracioides,tall tidy-tips,N,3751,4642,58838,yellow
|
971
|
+
Layia platyglossa,tidy-tips,N,3757,4649,50876,yellow
|
973
972
|
Leersia oryzoides,rice cutgrass,N,30431,4652,64177
|
974
973
|
Legenere limosa,false Venus' looking glass,N,30433,4653,60168,,965,1B.1
|
975
974
|
Lemna gibba,,N,30457,4656,63913
|
@@ -1031,11 +1030,11 @@ Linanthus dichotomus subsp. dichotomus,evening snow,N,51286,10624,80000
|
|
1031
1030
|
Linanthus dichotomus subsp. meridianus,,N,51287,10625,80001
|
1032
1031
|
Linum bienne,,X,31144,4906,55679
|
1033
1032
|
Linum lewisii var. lewisii,blue flax,N,60912,4910,60495
|
1034
|
-
Lithophragma affine,woodland star,N,31236,4922,50803
|
1033
|
+
Lithophragma affine,woodland star,N,31236,4922,50803,white
|
1035
1034
|
Lithophragma bolanderi,,N,31238,4923,77787
|
1036
1035
|
Lithophragma cymbalaria,,N,31241,4925,58323
|
1037
|
-
Lithophragma heterophyllum
|
1038
|
-
Lithophragma parviflorum var. parviflorum,,N,60952,4930,81027
|
1036
|
+
Lithophragma heterophyllum,hill starflower,N,31244,4927,53124,white
|
1037
|
+
Lithophragma parviflorum var. parviflorum,,N,60952,4930,81027,white
|
1039
1038
|
Lobularia maritima,sweet alyssum,X,31347,4939,56992
|
1040
1039
|
Logfia filaginoides,herba impia,N,81847,10960,64254
|
1041
1040
|
Logfia gallica,,X,31363,9521,56949
|
@@ -1064,13 +1063,13 @@ Lupinus benthamii,spider lupine,N,31791,5117,59565
|
|
1064
1063
|
Lupinus bicolor,miniature lupine,N,31793,5118,50614,blue
|
1065
1064
|
Lupinus chamissonis,beach blue lupine,N,31831,5125,61011
|
1066
1065
|
Lupinus concinnus,Bajada lupine,N,31835,5129,58901
|
1067
|
-
Lupinus formosus var. formosus,summer lupine,N,61315,5148,61822
|
1066
|
+
Lupinus formosus var. formosus,summer lupine,N,61315,5148,61822,blue
|
1068
1067
|
Lupinus latifolius var. dudleyi,,N,76660,5161,81063
|
1069
|
-
Lupinus latifolius var. latifolius,wood lupine,N,75772,5162,64242
|
1068
|
+
Lupinus latifolius var. latifolius,wood lupine,N,75772,5162,64242,blue
|
1070
1069
|
Lupinus littoralis var. variicolor,,N,80538,14304
|
1071
1070
|
Lupinus luteolus,butter lupine,N,31956,5176,77875
|
1072
|
-
Lupinus microcarpus var. densiflorus,,N,76668,5184,241537
|
1073
|
-
Lupinus microcarpus var. microcarpus,chick lupine,N,75776,5186,58159
|
1071
|
+
Lupinus microcarpus var. densiflorus,,N,76668,5184,241537,"yellow,white"
|
1072
|
+
Lupinus microcarpus var. microcarpus,chick lupine,N,75776,5186,58159,"pink,blue"
|
1074
1073
|
Lupinus nanus,sky lupine,N,31978,5189,50612,blue
|
1075
1074
|
Lupinus pachylobus,big pod lupine,N,31998,5196,50613
|
1076
1075
|
Lupinus succulentus,arroyo lupine,N,32095,5217,56759,blue
|
@@ -1089,11 +1088,11 @@ Lythrum hyssopifolia,grass-poly,X,32401,10626,58934
|
|
1089
1088
|
Lythrum salicaria,,X,32407,5261,61321
|
1090
1089
|
Lythrum tribracteatum,,X,32409,5262,77919
|
1091
1090
|
Madia anomala,,N,4038,5279,69927
|
1092
|
-
Madia elegans,common madia,N,4044,5284,56974
|
1091
|
+
Madia elegans,common madia,N,4044,5284,56974,yellow
|
1093
1092
|
Madia exigua,threadstem madia,N,4045,5289,56971
|
1094
|
-
Madia gracilis,slender tarweed,N,4047,5291,53135
|
1093
|
+
Madia gracilis,slender tarweed,N,4047,5291,53135,yellow
|
1095
1094
|
Madia radiata,showy madia,N,4053,5296,77924,,1054,1B.1
|
1096
|
-
Madia sativa,coast tarweed,N,4055,5298,53143
|
1095
|
+
Madia sativa,coast tarweed,N,4055,5298,53143,yellow
|
1097
1096
|
Maianthemum racemosum,false Solomon's seal,N,32495,10096,51062
|
1098
1097
|
Maianthemum stellatum,,N,32497,9629,53268
|
1099
1098
|
Malacothamnus fremontii,white-coat mallow,N,32524,5312,70397
|
@@ -1122,9 +1121,9 @@ Medicago polymorpha,burclover,X,32938,5385,53151
|
|
1122
1121
|
Medicago sativa,alfalfa,X,32943,5387,57057
|
1123
1122
|
Melica bulbosa,,N,33073,5390,77979
|
1124
1123
|
Melica californica,California melic,N,33075,5392,57186
|
1125
|
-
Melica imperfecta
|
1124
|
+
Melica imperfecta,little California melic,N,33080,5399,52802
|
1126
1125
|
Melica subulata,,N,33089,5403,77986
|
1127
|
-
Melica torreyana
|
1126
|
+
Melica torreyana,Torrey's melic,N,33090,5404,52804
|
1128
1127
|
Melilotus albus,white sweetclover,X,33153,10971,58907
|
1129
1128
|
Melilotus indicus,sourclover,X,33149,5406,57065
|
1130
1129
|
Melissa officinalis,lemon balm,X,33161,5408,59901
|
@@ -1280,11 +1279,11 @@ Petunia parviflora,wild petunia,N,37378,6279,159650
|
|
1280
1279
|
Phacelia breweri,,N,37425,6292,68813
|
1281
1280
|
Phacelia californica,rock phacelia,N,37426,6293,53170
|
1282
1281
|
Phacelia ciliata,great valley phacelia,N,37432,6302,58180
|
1283
|
-
Phacelia distans,sordid phacelia,N,37450,6318,56631
|
1282
|
+
Phacelia distans,"sordid phacelia,distant phacelia",N,37450,6318,56631
|
1284
1283
|
Phacelia divaricata,,N,37451,6319,51093
|
1285
1284
|
Phacelia douglasii,,N,37452,6320,58182
|
1286
1285
|
Phacelia egena,,N,37455,6322,58183
|
1287
|
-
Phacelia imbricata var. imbricata
|
1286
|
+
Phacelia imbricata var. imbricata,mountain phacelia,N,78483,13159,53172,white
|
1288
1287
|
Phacelia malvifolia var. malvifolia,,N,73204,13162,58923
|
1289
1288
|
Phacelia malvifolia,stinging phacelia,N,37514,6358,58923
|
1290
1289
|
Phacelia nemoralis var. nemoralis,bristly phacelia,N,78488,13163,53174
|
@@ -1570,7 +1569,7 @@ Scirpus microcarpus,,N,43718,7398,59068
|
|
1570
1569
|
Scoliopus bigelovii,,N,43824,7416,48990
|
1571
1570
|
Scolymus hispanicus,golden thistle,X,4661,7417,79009
|
1572
1571
|
Scribneria bolanderi,,N,43846,7420,57196
|
1573
|
-
Scrophularia californica,California figwort,N,43849,7422,50812
|
1572
|
+
Scrophularia californica,California figwort,N,43849,7422,50812,white
|
1574
1573
|
Scutellaria californica,,N,43883,7432,59791
|
1575
1574
|
Scutellaria galericulata,,N,43891,7433,79016,,1767,2B.2,,,S2,G5
|
1576
1575
|
Scutellaria siphocampyloides,,N,43926,7437,59792
|
@@ -1588,7 +1587,7 @@ Senecio hydrophilus,water ragwort,N,4759,7501,64165
|
|
1588
1587
|
Senecio jacobaea,tansy ragwort,X,4770,7508,62498
|
1589
1588
|
Senecio minimus,Australian fireweed,X,2580,11076,60980
|
1590
1589
|
Senecio sylvaticus,woodland ragwort,X,4853,7522,53210
|
1591
|
-
Senecio vulgaris,common groundsel,X,4866,7524,53211
|
1590
|
+
Senecio vulgaris,common groundsel,X,4866,7524,53211,yellow
|
1592
1591
|
Sequoia sempervirens,coast redwood,N,44175,7531,47372
|
1593
1592
|
Sesuvium verrucosum,sea-purslane,N,44236,7534,60112
|
1594
1593
|
Setaria parviflora,marsh brittlegrass,N,44257,11079,79068
|
@@ -1653,7 +1652,7 @@ Stachys albens,,N,45339,7754,58192
|
|
1653
1652
|
Stachys bullata,,N,45343,7756,58930
|
1654
1653
|
Stachys pycnantha,short-spike hedge nettle,N,45389,7759,57123
|
1655
1654
|
Stachys rigida var. quercetorum,,N,80610,12038,81388
|
1656
|
-
Stachys rigida var. rigida,hedge nettle,N,80611,12039,53296
|
1655
|
+
Stachys rigida var. rigida,hedge nettle,N,80611,12039,53296,pink
|
1657
1656
|
Stebbinsoseris heterocarpa,,N,76210,7768,50804
|
1658
1657
|
Stellaria media,common chickweed,X,45497,7776,53298
|
1659
1658
|
Stellaria nitens,shining chickweed,N,45502,7777,57007
|
@@ -1690,7 +1689,7 @@ Tamarix ramosissima,saltcedar,X,46076,7917,56015
|
|
1690
1689
|
Tanacetum parthenium,feverfew,X,5215,7919,54520
|
1691
1690
|
Taraxacum erythrospermum,red-seeded dandelion,X,5225,12084,79317
|
1692
1691
|
Taraxacum officinale,common dandelion,X,5231,7922,47602
|
1693
|
-
Taraxia ovata,sun cup,N,89233,12085,68182
|
1692
|
+
Taraxia ovata,sun cup,N,89233,12085,68182,yellow
|
1694
1693
|
Tauschia hartwegii,,N,46097,7925,54948
|
1695
1694
|
Taxus brevifolia,,N,46109,7929,55209
|
1696
1695
|
Tellima grandiflora,fringe cups,N,46142,7931,51655
|
@@ -1706,8 +1705,8 @@ Tonella tenella,,N,46732,8000,79369
|
|
1706
1705
|
Torilis arvensis,tall sock-destroyer,X,46743,8004,56846
|
1707
1706
|
Torilis nodosa,short sock-destroyer,X,46747,8007,53304
|
1708
1707
|
Torreyochloa pallida var. pauciflora,,N,67197,8010,81431
|
1709
|
-
Toxicodendron diversilobum,poison-oak,N,46791,8015,51080
|
1710
|
-
Toxicoscordion fremontii,zigadene,N,89163,11103,49649
|
1708
|
+
Toxicodendron diversilobum,poison-oak,N,46791,8015,51080,white
|
1709
|
+
Toxicoscordion fremontii,zigadene,N,89163,11103,49649,white
|
1711
1710
|
Toxicoscordion paniculatum,,N,46802,11105,79380
|
1712
1711
|
Toxicoscordion venenosum var. venenosum,death-camas,N,93851,11106,81432
|
1713
1712
|
Tradescantia fluminensis,,X,77137,8017,79382
|
@@ -0,0 +1 @@
|
|
1
|
+
Lemma awn < 4mm.
|
@@ -0,0 +1 @@
|
|
1
|
+
Lemma awn 4mm or longer. 9-11 prominent veins on distal half of lemma.
|
@@ -0,0 +1 @@
|
|
1
|
+
Most awns 7mm or longer. 7 lemma veins; veins obscure.
|
@@ -0,0 +1 @@
|
|
1
|
+
Most awns 4-7mm.
|
@@ -0,0 +1 @@
|
|
1
|
+
Gray-green to densely white-woolly, hairs branched.
|
@@ -0,0 +1 @@
|
|
1
|
+
Phyllaries flattened only at bases (rounded in cross section distally), phyllary tips often reflexed, or coiled; plants generally not hairy.
|
@@ -0,0 +1 @@
|
|
1
|
+
Phyllaries flattened, plants generally hairy.
|
@@ -0,0 +1 @@
|
|
1
|
+
Plant not glandular. Ray flowers often white-tipped.
|
@@ -0,0 +1 @@
|
|
1
|
+
Plant glandular, strongly scented. Stem purple-streaked. Ray flowers often white-tipped.
|
@@ -0,0 +1 @@
|
|
1
|
+
Plant glandular. Stem with purple spots or streaks. Ray flowers yellow, 1-4mm.
|
@@ -0,0 +1 @@
|
|
1
|
+
Plant glandular. Stem without black dots or streaks. Anthers usually purple. Ray flowers often white-tipped.
|
@@ -0,0 +1 @@
|
|
1
|
+
Pedicel 3-10 mm, floral tube conical at base. In open, grassy areas.
|
@@ -0,0 +1 @@
|
|
1
|
+
Pedicel 2 mm or less, floral tube squared off at base. In shaded areas.
|
@@ -0,0 +1 @@
|
|
1
|
+
Basal leaves either compound or deeply divided (more than half way to base of blade).
|
@@ -0,0 +1 @@
|
|
1
|
+
Perennial. Keel margins not hairy.
|
@@ -0,0 +1 @@
|
|
1
|
+
Perennial. Fruit densely hairy.
|
@@ -0,0 +1 @@
|
|
1
|
+
Annual. At least lower part of stem clearly hollow. Lower keel margins usually not hairy or less hairy than upper. Flowers generally yellow or white.
|
@@ -0,0 +1 @@
|
|
1
|
+
Annual. At least lower part of stem clearly hollow. Lower keel margins usually not hairy or less hairy than upper. Flowers generally pink or purple.
|
@@ -0,0 +1 @@
|
|
1
|
+
Annual. Fruit not densely hairy.
|
@@ -0,0 +1 @@
|
|
1
|
+
Outer phyllaries narrow and roughly the same width as inner.
|
@@ -0,0 +1 @@
|
|
1
|
+
Outer phyllaries wide, leaf-like, and usually much larger than inner phyllaries. Generally not hairy or with some glandular hairs.
|
@@ -0,0 +1 @@
|
|
1
|
+
Outer phyllaries wide, leaf-like, and usually much larger than inner phyllaries. Plant densely tomentose.
|
package/ebook/css/main.css
CHANGED
@@ -1,59 +1,16 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
}
|
4
|
-
|
5
|
-
figure {
|
6
|
-
page-break-inside: avoid;
|
7
|
-
}
|
8
|
-
|
9
|
-
span.color {
|
10
|
-
border: solid black 1px;
|
11
|
-
border-radius: .25rem;
|
12
|
-
margin-right: .5rem;
|
13
|
-
padding: .25rem;
|
14
|
-
}
|
15
|
-
|
16
|
-
span.color.blue {
|
17
|
-
background-color: blue;
|
18
|
-
color: white;
|
19
|
-
}
|
20
|
-
|
21
|
-
span.color.pink {
|
22
|
-
background-color: pink;
|
23
|
-
color: white;
|
24
|
-
}
|
25
|
-
|
26
|
-
span.color.red {
|
27
|
-
background-color: red;
|
28
|
-
color: white;
|
29
|
-
}
|
30
|
-
|
31
|
-
span.color.yellow {
|
32
|
-
background-color: yellow;
|
33
|
-
color: black;
|
34
|
-
}
|
35
|
-
|
36
|
-
span.color.white {
|
37
|
-
background-color: white;
|
38
|
-
color: black;
|
39
|
-
}
|
40
|
-
|
41
|
-
span.color.blue::after {
|
42
|
-
content: "Blue"
|
1
|
+
* {
|
2
|
+
font-family: Georgia, 'Times New Roman', Times, serif;
|
43
3
|
}
|
44
4
|
|
45
|
-
|
46
|
-
|
47
|
-
}
|
48
|
-
|
49
|
-
span.color.red::after {
|
50
|
-
content: "Red"
|
5
|
+
img {
|
6
|
+
width: 100%;
|
51
7
|
}
|
52
8
|
|
53
|
-
|
54
|
-
|
9
|
+
img.flr {
|
10
|
+
height: 32px;
|
11
|
+
width: 32px;
|
55
12
|
}
|
56
13
|
|
57
|
-
|
58
|
-
|
14
|
+
figure {
|
15
|
+
page-break-inside: avoid;
|
59
16
|
}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
|
2
|
+
viewBox="0 0 16 16">
|
3
|
+
<path fill="white" stroke="blue"
|
4
|
+
d="M11.424 8c.437-.052.811-.136 1.04-.268a2 2 0 0 0-2-3.464c-.229.132-.489.414-.752.767C9.886 4.63 10 4.264 10 4a2 2 0 1 0-4 0c0 .264.114.63.288 1.035-.263-.353-.523-.635-.752-.767a2 2 0 0 0-2 3.464c.229.132.603.216 1.04.268-.437.052-.811.136-1.04.268a2 2 0 1 0 2 3.464c.229-.132.489-.414.752-.767C6.114 11.37 6 11.736 6 12a2 2 0 1 0 4 0c0-.264-.114-.63-.288-1.035.263.353.523.635.752.767a2 2 0 1 0 2-3.464c-.229-.132-.603-.216-1.04-.268zM9 4a1.468 1.468 0 0 1-.045.205c-.039.132-.1.295-.183.484a12.88 12.88 0 0 1-.637 1.223L8 6.142a21.73 21.73 0 0 1-.135-.23 12.88 12.88 0 0 1-.637-1.223 4.216 4.216 0 0 1-.183-.484A1.473 1.473 0 0 1 7 4a1 1 0 1 1 2 0zM3.67 5.5a1 1 0 0 1 1.366-.366 1.472 1.472 0 0 1 .156.142c.094.1.204.233.326.4.245.333.502.747.742 1.163l.13.232a21.86 21.86 0 0 1-.265.002 12.88 12.88 0 0 1-1.379-.06 4.214 4.214 0 0 1-.51-.083 1.47 1.47 0 0 1-.2-.064A1 1 0 0 1 3.67 5.5zm1.366 5.366a1 1 0 0 1-1-1.732c.001 0 .016-.008.047-.02.037-.013.087-.028.153-.044.134-.032.305-.06.51-.083a12.88 12.88 0 0 1 1.379-.06c.09 0 .178 0 .266.002a21.82 21.82 0 0 1-.131.232c-.24.416-.497.83-.742 1.163a4.1 4.1 0 0 1-.327.4 1.483 1.483 0 0 1-.155.142zM9 12a1 1 0 0 1-2 0 1.476 1.476 0 0 1 .045-.206c.039-.131.1-.294.183-.483.166-.378.396-.808.637-1.223L8 9.858l.135.23c.241.415.47.845.637 1.223.083.19.144.352.183.484A1.338 1.338 0 0 1 9 12zm3.33-6.5a1 1 0 0 1-.366 1.366 1.478 1.478 0 0 1-.2.064c-.134.032-.305.06-.51.083-.412.045-.898.061-1.379.06-.09 0-.178 0-.266-.002l.131-.232c.24-.416.497-.83.742-1.163a4.1 4.1 0 0 1 .327-.4c.046-.05.085-.086.114-.11.026-.022.04-.03.041-.032a1 1 0 0 1 1.366.366zm-1.366 5.366a1.494 1.494 0 0 1-.155-.141 4.225 4.225 0 0 1-.327-.4A12.88 12.88 0 0 1 9.74 9.16a22 22 0 0 1-.13-.232l.265-.002c.48-.001.967.015 1.379.06.205.023.376.051.51.083.066.016.116.031.153.044l.048.02a1 1 0 1 1-1 1.732zM8 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" />
|
5
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
|
2
|
+
viewBox="0 0 16 16">
|
3
|
+
<path fill="white" stroke="orange"
|
4
|
+
d="M11.424 8c.437-.052.811-.136 1.04-.268a2 2 0 0 0-2-3.464c-.229.132-.489.414-.752.767C9.886 4.63 10 4.264 10 4a2 2 0 1 0-4 0c0 .264.114.63.288 1.035-.263-.353-.523-.635-.752-.767a2 2 0 0 0-2 3.464c.229.132.603.216 1.04.268-.437.052-.811.136-1.04.268a2 2 0 1 0 2 3.464c.229-.132.489-.414.752-.767C6.114 11.37 6 11.736 6 12a2 2 0 1 0 4 0c0-.264-.114-.63-.288-1.035.263.353.523.635.752.767a2 2 0 1 0 2-3.464c-.229-.132-.603-.216-1.04-.268zM9 4a1.468 1.468 0 0 1-.045.205c-.039.132-.1.295-.183.484a12.88 12.88 0 0 1-.637 1.223L8 6.142a21.73 21.73 0 0 1-.135-.23 12.88 12.88 0 0 1-.637-1.223 4.216 4.216 0 0 1-.183-.484A1.473 1.473 0 0 1 7 4a1 1 0 1 1 2 0zM3.67 5.5a1 1 0 0 1 1.366-.366 1.472 1.472 0 0 1 .156.142c.094.1.204.233.326.4.245.333.502.747.742 1.163l.13.232a21.86 21.86 0 0 1-.265.002 12.88 12.88 0 0 1-1.379-.06 4.214 4.214 0 0 1-.51-.083 1.47 1.47 0 0 1-.2-.064A1 1 0 0 1 3.67 5.5zm1.366 5.366a1 1 0 0 1-1-1.732c.001 0 .016-.008.047-.02.037-.013.087-.028.153-.044.134-.032.305-.06.51-.083a12.88 12.88 0 0 1 1.379-.06c.09 0 .178 0 .266.002a21.82 21.82 0 0 1-.131.232c-.24.416-.497.83-.742 1.163a4.1 4.1 0 0 1-.327.4 1.483 1.483 0 0 1-.155.142zM9 12a1 1 0 0 1-2 0 1.476 1.476 0 0 1 .045-.206c.039-.131.1-.294.183-.483.166-.378.396-.808.637-1.223L8 9.858l.135.23c.241.415.47.845.637 1.223.083.19.144.352.183.484A1.338 1.338 0 0 1 9 12zm3.33-6.5a1 1 0 0 1-.366 1.366 1.478 1.478 0 0 1-.2.064c-.134.032-.305.06-.51.083-.412.045-.898.061-1.379.06-.09 0-.178 0-.266-.002l.131-.232c.24-.416.497-.83.742-1.163a4.1 4.1 0 0 1 .327-.4c.046-.05.085-.086.114-.11.026-.022.04-.03.041-.032a1 1 0 0 1 1.366.366zm-1.366 5.366a1.494 1.494 0 0 1-.155-.141 4.225 4.225 0 0 1-.327-.4A12.88 12.88 0 0 1 9.74 9.16a22 22 0 0 1-.13-.232l.265-.002c.48-.001.967.015 1.379.06.205.023.376.051.51.083.066.016.116.031.153.044l.048.02a1 1 0 1 1-1 1.732zM8 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" />
|
5
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
|
2
|
+
viewBox="0 0 16 16">
|
3
|
+
<path fill="white" stroke="pink"
|
4
|
+
d="M11.424 8c.437-.052.811-.136 1.04-.268a2 2 0 0 0-2-3.464c-.229.132-.489.414-.752.767C9.886 4.63 10 4.264 10 4a2 2 0 1 0-4 0c0 .264.114.63.288 1.035-.263-.353-.523-.635-.752-.767a2 2 0 0 0-2 3.464c.229.132.603.216 1.04.268-.437.052-.811.136-1.04.268a2 2 0 1 0 2 3.464c.229-.132.489-.414.752-.767C6.114 11.37 6 11.736 6 12a2 2 0 1 0 4 0c0-.264-.114-.63-.288-1.035.263.353.523.635.752.767a2 2 0 1 0 2-3.464c-.229-.132-.603-.216-1.04-.268zM9 4a1.468 1.468 0 0 1-.045.205c-.039.132-.1.295-.183.484a12.88 12.88 0 0 1-.637 1.223L8 6.142a21.73 21.73 0 0 1-.135-.23 12.88 12.88 0 0 1-.637-1.223 4.216 4.216 0 0 1-.183-.484A1.473 1.473 0 0 1 7 4a1 1 0 1 1 2 0zM3.67 5.5a1 1 0 0 1 1.366-.366 1.472 1.472 0 0 1 .156.142c.094.1.204.233.326.4.245.333.502.747.742 1.163l.13.232a21.86 21.86 0 0 1-.265.002 12.88 12.88 0 0 1-1.379-.06 4.214 4.214 0 0 1-.51-.083 1.47 1.47 0 0 1-.2-.064A1 1 0 0 1 3.67 5.5zm1.366 5.366a1 1 0 0 1-1-1.732c.001 0 .016-.008.047-.02.037-.013.087-.028.153-.044.134-.032.305-.06.51-.083a12.88 12.88 0 0 1 1.379-.06c.09 0 .178 0 .266.002a21.82 21.82 0 0 1-.131.232c-.24.416-.497.83-.742 1.163a4.1 4.1 0 0 1-.327.4 1.483 1.483 0 0 1-.155.142zM9 12a1 1 0 0 1-2 0 1.476 1.476 0 0 1 .045-.206c.039-.131.1-.294.183-.483.166-.378.396-.808.637-1.223L8 9.858l.135.23c.241.415.47.845.637 1.223.083.19.144.352.183.484A1.338 1.338 0 0 1 9 12zm3.33-6.5a1 1 0 0 1-.366 1.366 1.478 1.478 0 0 1-.2.064c-.134.032-.305.06-.51.083-.412.045-.898.061-1.379.06-.09 0-.178 0-.266-.002l.131-.232c.24-.416.497-.83.742-1.163a4.1 4.1 0 0 1 .327-.4c.046-.05.085-.086.114-.11.026-.022.04-.03.041-.032a1 1 0 0 1 1.366.366zm-1.366 5.366a1.494 1.494 0 0 1-.155-.141 4.225 4.225 0 0 1-.327-.4A12.88 12.88 0 0 1 9.74 9.16a22 22 0 0 1-.13-.232l.265-.002c.48-.001.967.015 1.379.06.205.023.376.051.51.083.066.016.116.031.153.044l.048.02a1 1 0 1 1-1 1.732zM8 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" />
|
5
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
|
2
|
+
viewBox="0 0 16 16">
|
3
|
+
<path fill="white" stroke="red"
|
4
|
+
d="M11.424 8c.437-.052.811-.136 1.04-.268a2 2 0 0 0-2-3.464c-.229.132-.489.414-.752.767C9.886 4.63 10 4.264 10 4a2 2 0 1 0-4 0c0 .264.114.63.288 1.035-.263-.353-.523-.635-.752-.767a2 2 0 0 0-2 3.464c.229.132.603.216 1.04.268-.437.052-.811.136-1.04.268a2 2 0 1 0 2 3.464c.229-.132.489-.414.752-.767C6.114 11.37 6 11.736 6 12a2 2 0 1 0 4 0c0-.264-.114-.63-.288-1.035.263.353.523.635.752.767a2 2 0 1 0 2-3.464c-.229-.132-.603-.216-1.04-.268zM9 4a1.468 1.468 0 0 1-.045.205c-.039.132-.1.295-.183.484a12.88 12.88 0 0 1-.637 1.223L8 6.142a21.73 21.73 0 0 1-.135-.23 12.88 12.88 0 0 1-.637-1.223 4.216 4.216 0 0 1-.183-.484A1.473 1.473 0 0 1 7 4a1 1 0 1 1 2 0zM3.67 5.5a1 1 0 0 1 1.366-.366 1.472 1.472 0 0 1 .156.142c.094.1.204.233.326.4.245.333.502.747.742 1.163l.13.232a21.86 21.86 0 0 1-.265.002 12.88 12.88 0 0 1-1.379-.06 4.214 4.214 0 0 1-.51-.083 1.47 1.47 0 0 1-.2-.064A1 1 0 0 1 3.67 5.5zm1.366 5.366a1 1 0 0 1-1-1.732c.001 0 .016-.008.047-.02.037-.013.087-.028.153-.044.134-.032.305-.06.51-.083a12.88 12.88 0 0 1 1.379-.06c.09 0 .178 0 .266.002a21.82 21.82 0 0 1-.131.232c-.24.416-.497.83-.742 1.163a4.1 4.1 0 0 1-.327.4 1.483 1.483 0 0 1-.155.142zM9 12a1 1 0 0 1-2 0 1.476 1.476 0 0 1 .045-.206c.039-.131.1-.294.183-.483.166-.378.396-.808.637-1.223L8 9.858l.135.23c.241.415.47.845.637 1.223.083.19.144.352.183.484A1.338 1.338 0 0 1 9 12zm3.33-6.5a1 1 0 0 1-.366 1.366 1.478 1.478 0 0 1-.2.064c-.134.032-.305.06-.51.083-.412.045-.898.061-1.379.06-.09 0-.178 0-.266-.002l.131-.232c.24-.416.497-.83.742-1.163a4.1 4.1 0 0 1 .327-.4c.046-.05.085-.086.114-.11.026-.022.04-.03.041-.032a1 1 0 0 1 1.366.366zm-1.366 5.366a1.494 1.494 0 0 1-.155-.141 4.225 4.225 0 0 1-.327-.4A12.88 12.88 0 0 1 9.74 9.16a22 22 0 0 1-.13-.232l.265-.002c.48-.001.967.015 1.379.06.205.023.376.051.51.083.066.016.116.031.153.044l.048.02a1 1 0 1 1-1 1.732zM8 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" />
|
5
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
|
2
|
+
viewBox="0 0 16 16">
|
3
|
+
<path
|
4
|
+
d="M11.424 8c.437-.052.811-.136 1.04-.268a2 2 0 0 0-2-3.464c-.229.132-.489.414-.752.767C9.886 4.63 10 4.264 10 4a2 2 0 1 0-4 0c0 .264.114.63.288 1.035-.263-.353-.523-.635-.752-.767a2 2 0 0 0-2 3.464c.229.132.603.216 1.04.268-.437.052-.811.136-1.04.268a2 2 0 1 0 2 3.464c.229-.132.489-.414.752-.767C6.114 11.37 6 11.736 6 12a2 2 0 1 0 4 0c0-.264-.114-.63-.288-1.035.263.353.523.635.752.767a2 2 0 1 0 2-3.464c-.229-.132-.603-.216-1.04-.268zM9 4a1.468 1.468 0 0 1-.045.205c-.039.132-.1.295-.183.484a12.88 12.88 0 0 1-.637 1.223L8 6.142a21.73 21.73 0 0 1-.135-.23 12.88 12.88 0 0 1-.637-1.223 4.216 4.216 0 0 1-.183-.484A1.473 1.473 0 0 1 7 4a1 1 0 1 1 2 0zM3.67 5.5a1 1 0 0 1 1.366-.366 1.472 1.472 0 0 1 .156.142c.094.1.204.233.326.4.245.333.502.747.742 1.163l.13.232a21.86 21.86 0 0 1-.265.002 12.88 12.88 0 0 1-1.379-.06 4.214 4.214 0 0 1-.51-.083 1.47 1.47 0 0 1-.2-.064A1 1 0 0 1 3.67 5.5zm1.366 5.366a1 1 0 0 1-1-1.732c.001 0 .016-.008.047-.02.037-.013.087-.028.153-.044.134-.032.305-.06.51-.083a12.88 12.88 0 0 1 1.379-.06c.09 0 .178 0 .266.002a21.82 21.82 0 0 1-.131.232c-.24.416-.497.83-.742 1.163a4.1 4.1 0 0 1-.327.4 1.483 1.483 0 0 1-.155.142zM9 12a1 1 0 0 1-2 0 1.476 1.476 0 0 1 .045-.206c.039-.131.1-.294.183-.483.166-.378.396-.808.637-1.223L8 9.858l.135.23c.241.415.47.845.637 1.223.083.19.144.352.183.484A1.338 1.338 0 0 1 9 12zm3.33-6.5a1 1 0 0 1-.366 1.366 1.478 1.478 0 0 1-.2.064c-.134.032-.305.06-.51.083-.412.045-.898.061-1.379.06-.09 0-.178 0-.266-.002l.131-.232c.24-.416.497-.83.742-1.163a4.1 4.1 0 0 1 .327-.4c.046-.05.085-.086.114-.11.026-.022.04-.03.041-.032a1 1 0 0 1 1.366.366zm-1.366 5.366a1.494 1.494 0 0 1-.155-.141 4.225 4.225 0 0 1-.327-.4A12.88 12.88 0 0 1 9.74 9.16a22 22 0 0 1-.13-.232l.265-.002c.48-.001.967.015 1.379.06.205.023.376.051.51.083.066.016.116.031.153.044l.048.02a1 1 0 1 1-1 1.732zM8 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" />
|
5
|
+
</svg>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"
|
2
|
+
viewBox="0 0 16 16">
|
3
|
+
<path fill="white" stroke="yellow"
|
4
|
+
d="M11.424 8c.437-.052.811-.136 1.04-.268a2 2 0 0 0-2-3.464c-.229.132-.489.414-.752.767C9.886 4.63 10 4.264 10 4a2 2 0 1 0-4 0c0 .264.114.63.288 1.035-.263-.353-.523-.635-.752-.767a2 2 0 0 0-2 3.464c.229.132.603.216 1.04.268-.437.052-.811.136-1.04.268a2 2 0 1 0 2 3.464c.229-.132.489-.414.752-.767C6.114 11.37 6 11.736 6 12a2 2 0 1 0 4 0c0-.264-.114-.63-.288-1.035.263.353.523.635.752.767a2 2 0 1 0 2-3.464c-.229-.132-.603-.216-1.04-.268zM9 4a1.468 1.468 0 0 1-.045.205c-.039.132-.1.295-.183.484a12.88 12.88 0 0 1-.637 1.223L8 6.142a21.73 21.73 0 0 1-.135-.23 12.88 12.88 0 0 1-.637-1.223 4.216 4.216 0 0 1-.183-.484A1.473 1.473 0 0 1 7 4a1 1 0 1 1 2 0zM3.67 5.5a1 1 0 0 1 1.366-.366 1.472 1.472 0 0 1 .156.142c.094.1.204.233.326.4.245.333.502.747.742 1.163l.13.232a21.86 21.86 0 0 1-.265.002 12.88 12.88 0 0 1-1.379-.06 4.214 4.214 0 0 1-.51-.083 1.47 1.47 0 0 1-.2-.064A1 1 0 0 1 3.67 5.5zm1.366 5.366a1 1 0 0 1-1-1.732c.001 0 .016-.008.047-.02.037-.013.087-.028.153-.044.134-.032.305-.06.51-.083a12.88 12.88 0 0 1 1.379-.06c.09 0 .178 0 .266.002a21.82 21.82 0 0 1-.131.232c-.24.416-.497.83-.742 1.163a4.1 4.1 0 0 1-.327.4 1.483 1.483 0 0 1-.155.142zM9 12a1 1 0 0 1-2 0 1.476 1.476 0 0 1 .045-.206c.039-.131.1-.294.183-.483.166-.378.396-.808.637-1.223L8 9.858l.135.23c.241.415.47.845.637 1.223.083.19.144.352.183.484A1.338 1.338 0 0 1 9 12zm3.33-6.5a1 1 0 0 1-.366 1.366 1.478 1.478 0 0 1-.2.064c-.134.032-.305.06-.51.083-.412.045-.898.061-1.379.06-.09 0-.178 0-.266-.002l.131-.232c.24-.416.497-.83.742-1.163a4.1 4.1 0 0 1 .327-.4c.046-.05.085-.086.114-.11.026-.022.04-.03.041-.032a1 1 0 0 1 1.366.366zm-1.366 5.366a1.494 1.494 0 0 1-.155-.141 4.225 4.225 0 0 1-.327-.4A12.88 12.88 0 0 1 9.74 9.16a22 22 0 0 1-.13-.232l.265-.002c.48-.001.967.015 1.379.06.205.023.376.051.51.083.066.016.116.031.153.044l.048.02a1 1 0 1 1-1 1.732zM8 9a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" />
|
5
|
+
</svg>
|
package/lib/ebook/ebook.js
CHANGED
@@ -32,9 +32,9 @@ class EBook {
|
|
32
32
|
this.#createPackageFile();
|
33
33
|
|
34
34
|
// Copy assets
|
35
|
-
const cssDirTarget = contentDir + "/css";
|
36
|
-
fs.mkdirSync( cssDirTarget, { recursive: true } );
|
37
|
-
fs.cpSync( Config.getPackageDir() + "/ebook
|
35
|
+
// const cssDirTarget = contentDir + "/css";
|
36
|
+
// fs.mkdirSync( cssDirTarget, { recursive: true } );
|
37
|
+
fs.cpSync( Config.getPackageDir() + "/ebook", contentDir, { recursive: true } );
|
38
38
|
|
39
39
|
this.createZip();
|
40
40
|
|
package/lib/ebook/ebookpage.js
CHANGED
@@ -0,0 +1,27 @@
|
|
1
|
+
import { EBookPage } from "../ebookpage.js";
|
2
|
+
import { XHTML } from "../xhtml.js";
|
3
|
+
import { Families } from "../../families.js";
|
4
|
+
|
5
|
+
class PageListFamilies extends EBookPage {
|
6
|
+
|
7
|
+
constructor( outputDir ) {
|
8
|
+
super( outputDir + "/list_families.html", "All Families" );
|
9
|
+
}
|
10
|
+
|
11
|
+
renderPageBody() {
|
12
|
+
|
13
|
+
const html = XHTML.textElement( "h1", this.getTitle() );
|
14
|
+
|
15
|
+
const links = [];
|
16
|
+
for ( const family of Families.getFamilies() ) {
|
17
|
+
if ( !family.getTaxa() ) {
|
18
|
+
continue;
|
19
|
+
}
|
20
|
+
links.push( XHTML.getLink( family.getFileName(), family.getName() ) );
|
21
|
+
}
|
22
|
+
|
23
|
+
return html + XHTML.wrap( "ol", XHTML.arrayToLI( links ) );
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
export { PageListFamilies };
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { EBookPage } from "../ebookpage.js";
|
2
|
+
import { XHTML } from "../xhtml.js";
|
3
|
+
|
4
|
+
class PageListFlowerColor extends EBookPage {
|
5
|
+
|
6
|
+
#color;
|
7
|
+
|
8
|
+
constructor( outputDir, color ) {
|
9
|
+
super( outputDir + "/" + color.getFileName(), color.getColorName( true ) + " Flowers" );
|
10
|
+
this.#color = color;
|
11
|
+
}
|
12
|
+
|
13
|
+
renderPageBody() {
|
14
|
+
|
15
|
+
const html = XHTML.textElement( "h1", this.getTitle() );
|
16
|
+
|
17
|
+
const links = [];
|
18
|
+
for ( const taxon of this.#color.getTaxa() ) {
|
19
|
+
links.push( XHTML.getLink( taxon.getFileName(), taxon.getName() ) );
|
20
|
+
}
|
21
|
+
|
22
|
+
return html + XHTML.wrap( "ol", XHTML.arrayToLI( links ) );
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
export { PageListFlowerColor };
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { EBookPage } from "../ebookpage.js";
|
2
|
+
import { XHTML } from "../xhtml.js";
|
3
|
+
|
4
|
+
class PageListSpecies extends EBookPage {
|
5
|
+
|
6
|
+
#taxa;
|
7
|
+
|
8
|
+
constructor( outputDir, taxa, filename, title ) {
|
9
|
+
super( outputDir + "/" + filename, title );
|
10
|
+
this.#taxa = taxa;
|
11
|
+
}
|
12
|
+
|
13
|
+
renderPageBody() {
|
14
|
+
|
15
|
+
const html = XHTML.textElement( "h1", this.getTitle() );
|
16
|
+
|
17
|
+
const links = [];
|
18
|
+
for ( const taxon of this.#taxa ) {
|
19
|
+
links.push( XHTML.getLink( taxon.getFileName(), taxon.getName() ) );
|
20
|
+
}
|
21
|
+
|
22
|
+
return html + XHTML.wrap( "ol", XHTML.arrayToLI( links ) );
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
export { PageListSpecies };
|
@@ -25,7 +25,8 @@ class TaxonPage extends EBookPage {
|
|
25
25
|
}
|
26
26
|
let html = "";
|
27
27
|
for ( const color of colors ) {
|
28
|
-
html += XHTML.textElement( "span", "", { class: "color " + color } );
|
28
|
+
// html += XHTML.textElement( "span", "", { class: "color " + color } );
|
29
|
+
html += XHTML.textElement( "img", "", { src: "./i/f-" + color + ".svg", class: "flr" } );
|
29
30
|
}
|
30
31
|
return html;
|
31
32
|
}
|
@@ -45,7 +46,8 @@ class TaxonPage extends EBookPage {
|
|
45
46
|
const name = this.#taxon.getName();
|
46
47
|
let html = XHTML.textElement( "h1", name );
|
47
48
|
|
48
|
-
|
49
|
+
const family = this.#taxon.getFamily();
|
50
|
+
html += XHTML.wrap( "div", XHTML.getLink( family.getFileName(), family.getName() ) );
|
49
51
|
|
50
52
|
const cn = this.#taxon.getCommonNames();
|
51
53
|
if ( cn && cn.length > 0 ) {
|
@@ -1,30 +1,37 @@
|
|
1
|
-
import { HTML } from "@ca-plant-list/ca-plant-list";
|
2
1
|
import { EBookPage } from "../ebookpage.js";
|
2
|
+
import { XHTML } from "../xhtml.js";
|
3
|
+
import { FLOWER_COLOR_NAMES } from "../../taxa.js";
|
3
4
|
|
4
5
|
class TOCPage extends EBookPage {
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
constructor( outputDir, taxa ) {
|
7
|
+
constructor( outputDir ) {
|
9
8
|
super( outputDir + "/toc.xhtml", "Table of Contents" );
|
10
|
-
this.#taxa = taxa;
|
11
9
|
}
|
12
10
|
|
13
11
|
renderPageBody() {
|
14
12
|
|
15
13
|
let html = "<nav id=\"toc\" role=\"doc-toc\" epub:type=\"toc\">";
|
16
|
-
html += "<
|
14
|
+
html += "<h1 epub:type=\"title\">Table of Contents</h1>";
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
html += "
|
16
|
+
const mainLinks = [];
|
17
|
+
mainLinks.push( this.#getFlowerColorLinks() );
|
18
|
+
mainLinks.push( XHTML.getLink( "./list_families.html", "All Families" ) );
|
19
|
+
mainLinks.push( XHTML.getLink( "./list_species.html", "All Species" ) );
|
20
|
+
html += XHTML.wrap( "ol", XHTML.arrayToLI( mainLinks ) );
|
23
21
|
|
24
22
|
html += "</nav>";
|
25
23
|
|
26
24
|
return html;
|
27
25
|
}
|
26
|
+
|
27
|
+
#getFlowerColorLinks() {
|
28
|
+
const html = XHTML.textElement( "span", "Flower Color" );
|
29
|
+
const links = [];
|
30
|
+
for ( const colorName of FLOWER_COLOR_NAMES ) {
|
31
|
+
links.push( XHTML.getLink( "list_fc_" + colorName + ".html", colorName ) );
|
32
|
+
}
|
33
|
+
return html + XHTML.wrap( "ol", XHTML.arrayToLI( links ) );
|
34
|
+
}
|
28
35
|
}
|
29
36
|
|
30
37
|
export { TOCPage };
|
package/lib/ebook/plantbook.js
CHANGED
@@ -4,9 +4,13 @@ import sharp from "sharp";
|
|
4
4
|
import { CSV, Families, Files, Taxa } from "@ca-plant-list/ca-plant-list";
|
5
5
|
import { EBook } from "./ebook.js";
|
6
6
|
import { Image } from "./image.js";
|
7
|
+
import { PageListFamilies } from "./pages/page_list_families.js";
|
8
|
+
import { PageListFlowerColor } from "./pages/page_list_flower_color.js";
|
9
|
+
import { PageListSpecies } from "./pages/page_list_species.js";
|
7
10
|
import { TaxonPage } from "./pages/taxonpage.js";
|
8
11
|
import { TOCPage } from "./pages/tocpage.js";
|
9
12
|
import { Config } from "../config.js";
|
13
|
+
import { FLOWER_COLOR_NAMES } from "../taxa.js";
|
10
14
|
|
11
15
|
class PlantBook extends EBook {
|
12
16
|
|
@@ -21,29 +25,38 @@ class PlantBook extends EBook {
|
|
21
25
|
Config.getConfigValue( "ebook", "title" )
|
22
26
|
);
|
23
27
|
|
24
|
-
Families.init();
|
25
|
-
|
26
28
|
}
|
27
29
|
|
28
30
|
async createPages() {
|
31
|
+
|
32
|
+
console.log( "checking images" );
|
29
33
|
await this.#importImages();
|
30
34
|
|
31
35
|
const contentDir = this.getContentDir();
|
36
|
+
|
37
|
+
console.log( "creating taxon pages" );
|
32
38
|
const taxa = Taxa.getTaxa();
|
33
39
|
for ( const taxon of taxa ) {
|
34
40
|
const name = taxon.getName();
|
35
41
|
new TaxonPage( contentDir, taxon, this.#images[ name ] ).create();
|
36
42
|
}
|
37
|
-
new TOCPage( contentDir, taxa ).create();
|
38
|
-
}
|
39
43
|
|
40
|
-
|
41
|
-
const
|
42
|
-
|
43
|
-
return value;
|
44
|
+
// Create lists.
|
45
|
+
for ( const colorName of FLOWER_COLOR_NAMES ) {
|
46
|
+
new PageListFlowerColor( contentDir, Taxa.getFlowerColor( colorName ) ).create();
|
44
47
|
}
|
45
|
-
|
46
|
-
|
48
|
+
new PageListFamilies( contentDir ).create();
|
49
|
+
for ( const family of Families.getFamilies() ) {
|
50
|
+
const taxa = family.getTaxa();
|
51
|
+
if ( !taxa ) {
|
52
|
+
continue;
|
53
|
+
}
|
54
|
+
const name = family.getName();
|
55
|
+
new PageListSpecies( contentDir, taxa, name + ".html", name ).create();
|
56
|
+
}
|
57
|
+
new PageListSpecies( contentDir, taxa, "list_species.html", "All Species" ).create();
|
58
|
+
|
59
|
+
new TOCPage( contentDir ).create();
|
47
60
|
}
|
48
61
|
|
49
62
|
async #importImages() {
|
@@ -90,8 +103,33 @@ class PlantBook extends EBook {
|
|
90
103
|
}
|
91
104
|
|
92
105
|
renderManifestEntries() {
|
106
|
+
|
93
107
|
let xml = "";
|
94
108
|
|
109
|
+
xml += "<item id=\"f0\" href=\"i/f-blue.svg\" media-type=\"image/svg+xml\" />";
|
110
|
+
xml += "<item id=\"f1\" href=\"i/f-orange.svg\" media-type=\"image/svg+xml\" />";
|
111
|
+
xml += "<item id=\"f2\" href=\"i/f-pink.svg\" media-type=\"image/svg+xml\" />";
|
112
|
+
xml += "<item id=\"f3\" href=\"i/f-red.svg\" media-type=\"image/svg+xml\" />";
|
113
|
+
xml += "<item id=\"f4\" href=\"i/f-white.svg\" media-type=\"image/svg+xml\" />";
|
114
|
+
xml += "<item id=\"f5\" href=\"i/f-yellow.svg\" media-type=\"image/svg+xml\" />";
|
115
|
+
|
116
|
+
// Add lists.
|
117
|
+
xml += "<item id=\"lspecies\" href=\"list_species.html\" media-type=\"application/xhtml+xml\" />";
|
118
|
+
xml += "<item id=\"lfamilies\" href=\"list_families.html\" media-type=\"application/xhtml+xml\" />";
|
119
|
+
for ( const colorName of FLOWER_COLOR_NAMES ) {
|
120
|
+
const color = Taxa.getFlowerColor( colorName );
|
121
|
+
xml += "<item id=\"l" + color.getColorName() + "\" href=\"" + color.getFileName() + "\" media-type=\"application/xhtml+xml\" />";
|
122
|
+
}
|
123
|
+
|
124
|
+
// Add family pages.
|
125
|
+
for ( const family of Families.getFamilies() ) {
|
126
|
+
const taxa = family.getTaxa();
|
127
|
+
if ( !taxa ) {
|
128
|
+
continue;
|
129
|
+
}
|
130
|
+
xml += "<item id=\"fam" + family.getName() + "\" href=\"" + family.getFileName() + "\" media-type=\"application/xhtml+xml\" />";
|
131
|
+
}
|
132
|
+
|
95
133
|
// Add taxon pages.
|
96
134
|
const taxa = Taxa.getTaxa();
|
97
135
|
for ( let index = 0; index < taxa.length; index++ ) {
|
@@ -112,6 +150,25 @@ class PlantBook extends EBook {
|
|
112
150
|
|
113
151
|
renderSpineElements() {
|
114
152
|
let xml = "";
|
153
|
+
|
154
|
+
// Add lists.
|
155
|
+
for ( const colorName of FLOWER_COLOR_NAMES ) {
|
156
|
+
const color = Taxa.getFlowerColor( colorName );
|
157
|
+
xml += "<itemref idref=\"l" + color.getColorName() + "\"/>";
|
158
|
+
}
|
159
|
+
xml += "<itemref idref=\"lfamilies\"/>";
|
160
|
+
xml += "<itemref idref=\"lspecies\"/>";
|
161
|
+
|
162
|
+
// Add families.
|
163
|
+
for ( const family of Families.getFamilies() ) {
|
164
|
+
const taxa = family.getTaxa();
|
165
|
+
if ( !taxa ) {
|
166
|
+
continue;
|
167
|
+
}
|
168
|
+
xml += "<itemref idref=\"fam" + family.getName() + "\"/>";
|
169
|
+
}
|
170
|
+
|
171
|
+
// Add taxa.
|
115
172
|
for ( let index = 0; index < Taxa.getTaxa().length; index++ ) {
|
116
173
|
xml += "<itemref idref=\"t" + index + "\"/>";
|
117
174
|
}
|
package/lib/exceptions.js
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
import { Config } from "./config.js";
|
1
2
|
import { Files } from "./files.js";
|
2
3
|
|
3
4
|
class Exceptions {
|
@@ -32,11 +33,20 @@ class Exceptions {
|
|
32
33
|
}
|
33
34
|
|
34
35
|
static init( dir ) {
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
console.log( e );
|
36
|
+
|
37
|
+
function readConfig( fileName ) {
|
38
|
+
return JSON.parse( Files.read( fileName ) );
|
39
39
|
}
|
40
|
+
|
41
|
+
// Read default configuration.
|
42
|
+
this.#exceptions = readConfig( Config.getPackageDir() + "/data/exceptions.json" );
|
43
|
+
|
44
|
+
// Add/overwrite with local configuration.
|
45
|
+
const localExceptions = readConfig( dir + "/exceptions.json" );
|
46
|
+
for ( const [ k, v ] of Object.entries( localExceptions ) ) {
|
47
|
+
this.#exceptions[ k ] = v;
|
48
|
+
}
|
49
|
+
|
40
50
|
}
|
41
51
|
|
42
52
|
}
|
package/lib/families.js
CHANGED
@@ -10,6 +10,10 @@ class Families {
|
|
10
10
|
|
11
11
|
static #families;
|
12
12
|
|
13
|
+
static getFamilies() {
|
14
|
+
return Object.values( this.#families ).sort( ( a, b ) => a.getName().localeCompare( b.getName() ) );
|
15
|
+
}
|
16
|
+
|
13
17
|
static getFamily( familyName ) {
|
14
18
|
return this.#families[ familyName ];
|
15
19
|
}
|
package/lib/index.d.ts
CHANGED
@@ -33,14 +33,15 @@ export class ErrorLog {
|
|
33
33
|
static write(fileName: any): void;
|
34
34
|
}
|
35
35
|
export class Exceptions {
|
36
|
-
static "__#
|
36
|
+
static "__#17@#exceptions": {};
|
37
37
|
static getExceptions(): [string, any][];
|
38
38
|
static getValue(name: any, cat: any, subcat: any, defaultValue: any): any;
|
39
39
|
static hasException(name: any, cat: any, subcat: any): boolean;
|
40
40
|
static init(dir: any): void;
|
41
41
|
}
|
42
42
|
export class Families {
|
43
|
-
static "__#
|
43
|
+
static "__#11@#families": any;
|
44
|
+
static getFamilies(): any[];
|
44
45
|
static getFamily(familyName: any): any;
|
45
46
|
static init(): void;
|
46
47
|
static renderPages(outputDir: any, taxaColumns: any): void;
|
@@ -154,18 +155,21 @@ export class RarePlants {
|
|
154
155
|
static getRPIRankDescription(rank: any): any;
|
155
156
|
static getRPIRankAndThreatDescriptions(rank: any): any[];
|
156
157
|
}
|
158
|
+
export const FLOWER_COLOR_NAMES: string[];
|
157
159
|
export class Taxa {
|
158
|
-
static "__#
|
159
|
-
static "__#
|
160
|
+
static "__#10@#taxa": {};
|
161
|
+
static "__#10@#flower_colors": {};
|
162
|
+
static "__#10@#sortedTaxa": any;
|
160
163
|
static getHTMLTable(taxa: any, columns?: {
|
161
164
|
title: string;
|
162
165
|
data: (t: any) => any;
|
163
166
|
}[]): string;
|
167
|
+
static getFlowerColor(name: any): any;
|
164
168
|
static getTaxa(): any;
|
165
169
|
static getTaxon(name: any): any;
|
166
170
|
static init(inclusionList: any, taxaMeta?: {}, taxonClass?: typeof Taxon, extraTaxa?: any[], extraSynonyms?: any[]): void;
|
167
|
-
static "__#
|
168
|
-
static "__#
|
171
|
+
static "__#10@#loadSyns"(synCSV: any, inclusionList: any): void;
|
172
|
+
static "__#10@#loadTaxa"(taxaCSV: any, inclusionList: any, taxaMeta: any, taxonClass: any): void;
|
169
173
|
}
|
170
174
|
export namespace TAXA_LIST_COLS {
|
171
175
|
namespace CESA {
|
package/lib/pagetaxon.js
CHANGED
@@ -153,8 +153,8 @@ class PageTaxon extends GenericPage {
|
|
153
153
|
|
154
154
|
html += "</div>";
|
155
155
|
|
156
|
-
html += "<div class=\"grid\">";
|
157
|
-
html += this.#getListSectionHTML( this.#getInfoLinks(), "
|
156
|
+
html += "<div class=\"grid borders\">";
|
157
|
+
html += this.#getListSectionHTML( this.#getInfoLinks(), "References", "info" );
|
158
158
|
html += this.#getListSectionHTML( this.#getObsLinks(), "Observations", "obs" );
|
159
159
|
html += this.#getListSectionHTML( this.#getRelatedTaxaLinks(), "Related Species", "rel-taxa" );
|
160
160
|
html += this.#getListSectionHTML( this.#getSynonyms(), "Synonyms", "synonyms" );
|
package/lib/taxa.js
CHANGED
@@ -5,6 +5,8 @@ import { HTML } from "./html.js";
|
|
5
5
|
import { CSV } from "./csv.js";
|
6
6
|
import { RarePlants } from "./rareplants.js";
|
7
7
|
|
8
|
+
const FLOWER_COLOR_NAMES = [ "white", "red", "pink", "orange", "yellow", "blue" ];
|
9
|
+
|
8
10
|
const TAXA_LIST_COLS = {
|
9
11
|
CESA: {
|
10
12
|
title: "California",
|
@@ -34,11 +36,45 @@ const TAXA_LIST_COLS = {
|
|
34
36
|
|
35
37
|
const DEFAULT_COLUMNS = [ TAXA_LIST_COLS.SPECIES, TAXA_LIST_COLS.COMMON_NAME ];
|
36
38
|
|
39
|
+
class FlowerColor {
|
40
|
+
|
41
|
+
#color;
|
42
|
+
#taxa = [];
|
43
|
+
|
44
|
+
constructor( color ) {
|
45
|
+
this.#color = color;
|
46
|
+
}
|
47
|
+
|
48
|
+
addTaxon( taxon ) {
|
49
|
+
this.#taxa.push( taxon );
|
50
|
+
}
|
51
|
+
|
52
|
+
getColorName( uc = false ) {
|
53
|
+
return uc ? ( this.#color[ 0 ].toUpperCase() + this.#color.substring( 1 ) ) : this.#color;
|
54
|
+
}
|
55
|
+
|
56
|
+
getFileName() {
|
57
|
+
return "list_fc_" + this.#color + ".html";
|
58
|
+
}
|
59
|
+
|
60
|
+
getTaxa() {
|
61
|
+
return this.#taxa;
|
62
|
+
}
|
63
|
+
|
64
|
+
}
|
65
|
+
|
37
66
|
class Taxa {
|
38
67
|
|
39
68
|
static #taxa = {};
|
69
|
+
static #flower_colors = {};
|
40
70
|
static #sortedTaxa;
|
41
71
|
|
72
|
+
static {
|
73
|
+
for ( const color of FLOWER_COLOR_NAMES ) {
|
74
|
+
this.#flower_colors[ color ] = new FlowerColor( color );
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
42
78
|
static getHTMLTable( taxa, columns = DEFAULT_COLUMNS ) {
|
43
79
|
|
44
80
|
let html = "<table><thead>";
|
@@ -67,6 +103,10 @@ class Taxa {
|
|
67
103
|
return html;
|
68
104
|
}
|
69
105
|
|
106
|
+
static getFlowerColor( name ) {
|
107
|
+
return this.#flower_colors[ name ];
|
108
|
+
}
|
109
|
+
|
70
110
|
static getTaxa() {
|
71
111
|
return this.#sortedTaxa;
|
72
112
|
}
|
@@ -134,7 +174,18 @@ class Taxa {
|
|
134
174
|
if ( status !== undefined ) {
|
135
175
|
row[ "status" ] = status;
|
136
176
|
}
|
137
|
-
|
177
|
+
const taxon = new taxonClass( row, taxaMeta[ name ] );
|
178
|
+
this.#taxa[ name ] = taxon;
|
179
|
+
const colors = taxon.getFlowerColors();
|
180
|
+
if ( colors ) {
|
181
|
+
for ( const colorName of colors ) {
|
182
|
+
const color = this.#flower_colors[ colorName ];
|
183
|
+
if ( !color ) {
|
184
|
+
throw new Error( "flower color \"" + colorName + "\" not found" );
|
185
|
+
}
|
186
|
+
color.addTaxon( taxon );
|
187
|
+
}
|
188
|
+
}
|
138
189
|
|
139
190
|
}
|
140
191
|
|
@@ -143,4 +194,4 @@ class Taxa {
|
|
143
194
|
|
144
195
|
}
|
145
196
|
|
146
|
-
export { Taxa, TAXA_LIST_COLS };
|
197
|
+
export { FLOWER_COLOR_NAMES, Taxa, TAXA_LIST_COLS };
|