@ca-plant-list/ca-plant-list 0.2.18 → 0.3.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/data/exceptions.json +83 -68
- package/data/illustrations/inkscape/asteraceae_floret.svg +125 -83
- package/data/illustrations/inkscape/peduncle.svg +38 -34
- package/data/synonyms.csv +20 -20
- package/data/taxa.csv +11 -14
- package/ebook/css/main.css +3 -6
- package/jekyll/_layouts/default.html +56 -0
- package/jekyll/_layouts/html.html +5 -56
- package/jekyll/assets/css/main.css +5 -0
- package/lib/basepagerenderer.js +7 -3
- package/lib/commandandtaxaprocessor.js +3 -0
- package/lib/ebook/ebooksitegenerator.js +34 -0
- package/lib/ebook/glossarypages.js +6 -67
- package/lib/ebook/images.js +10 -8
- package/lib/ebook/pages/taxonpage.js +5 -1
- package/lib/ebook/pages/tocpage.js +2 -2
- package/lib/ebook/plantbook.js +12 -9
- package/lib/errorlog.js +4 -0
- package/lib/files.js +5 -0
- package/lib/index.d.ts +17 -2
- package/lib/jekyll.js +13 -1
- package/lib/sitegenerator.js +79 -0
- package/lib/taxa.js +30 -7
- package/lib/taxaprocessor.js +1 -1
- package/lib/web/glossarypages.js +23 -18
- package/package.json +3 -2
- package/data/illustrations/optimized/asteraceae_floret.svg +0 -28
- package/data/illustrations/optimized/f-blue.svg +0 -11
- package/data/illustrations/optimized/f-orange.svg +0 -11
- package/data/illustrations/optimized/f-pink.svg +0 -11
- package/data/illustrations/optimized/f-red.svg +0 -11
- package/data/illustrations/optimized/f-white.svg +0 -11
- package/data/illustrations/optimized/f-yellow.svg +0 -11
- package/data/illustrations/optimized/peduncle.svg +0 -21
- package/jekyll/glossary.md +0 -5
package/data/synonyms.csv
CHANGED
@@ -25,7 +25,7 @@ Achnatherum lemmonii subsp. lemmonii,Stipa lemmonii var. lemmonii
|
|
25
25
|
Acmispon strigosus var. hirtellus,Acmispon strigosus
|
26
26
|
Acroptilon repens,Rhaponticum repens
|
27
27
|
Actaea rubra subsp. arguta,Actaea rubra
|
28
|
-
Adelinia
|
28
|
+
Adelinia grandis,Adelinia grandis,INAT
|
29
29
|
Adiantum boreale,Adiantum aleuticum
|
30
30
|
Adiantum pedatum subsp. calderi,Adiantum aleuticum
|
31
31
|
Adiantum pedatum var. aleuticum,Adiantum aleuticum
|
@@ -461,6 +461,7 @@ Cordylanthus rigidus var. ferrisianus,Cordylanthus rigidus subsp. rigidus
|
|
461
461
|
Coreopsis calliopsidea,Leptosyne calliopsidea
|
462
462
|
Coreopsis hamiltonii,Leptosyne hamiltonii
|
463
463
|
Coreopsis stillmanii,Leptosyne stillmanii
|
464
|
+
Corethrogyne filaginifolia var. californica,Corethrogyne filaginifolia
|
464
465
|
Cornus ×californica,Cornus sericea subsp. sericea
|
465
466
|
Cornus californica var. nevadensis,Cornus sericea subsp. sericea
|
466
467
|
Cornus californica,Cornus sericea subsp. sericea
|
@@ -831,6 +832,8 @@ Heracleum lanatum,Heracleum maximum
|
|
831
832
|
Herniaria cinerea,Herniaria hirsuta var. cinerea,INAT
|
832
833
|
Herniaria hirsuta subsp. cinerea,Herniaria hirsuta var. cinerea
|
833
834
|
Herpestris pilosa,Mimetanthe pilosa
|
835
|
+
Hesperocyparis macrocarpa,Hesperocyparis macrocarpa,INAT
|
836
|
+
Hesperocyparis sargentii,Hesperocyparis sargentii,INAT
|
834
837
|
Hesperomecon filiformis,Hesperomecon linearis
|
835
838
|
Hesperoscordum hyacinthinum,Triteleia hyacinthina
|
836
839
|
Hesperoscordum lacteum,Triteleia hyacinthina
|
@@ -904,6 +907,8 @@ Iva axillaris var. robustior,Iva axillaris
|
|
904
907
|
Jacobaea vulgaris,Senecio jacobaea,INAT
|
905
908
|
Johnstonella micromeres,Cryptantha micromeres,INAT
|
906
909
|
Juglans californica var. californica,Juglans californica
|
910
|
+
Juncoides comosa var. subsessilis,Luzula subsessilis
|
911
|
+
Juncoides subsessilis,Luzula subsessilis
|
907
912
|
Juncus amuricus,Juncus bufonius var. occidentalis,INAT
|
908
913
|
Juncus arcticus var. balticus,Juncus balticus subsp. ater
|
909
914
|
Juncus arcticus var. mexicanus,Juncus mexicanus
|
@@ -973,7 +978,6 @@ Leptosiphon luteus,Leptosiphon parviflorus
|
|
973
978
|
Leptosiphon micranthus,Leptosiphon parviflorus
|
974
979
|
Leptotaenia californica,Lomatium californicum
|
975
980
|
Lepturus cylindricus,Hainardia cylindrica
|
976
|
-
Lessingia filaginifolia var. californica,Corethrogyne filaginifolia
|
977
981
|
Lessingia filaginifolia var. filaginifolia,Corethrogyne filaginifolia
|
978
982
|
Lessingia germanorum var. parvula,Lessingia tenuis
|
979
983
|
Lessingia germanorum var. tenuis,Lessingia tenuis
|
@@ -1083,8 +1087,6 @@ Lupinus subvexus var. transmontanus,Lupinus microcarpus var. microcarpus
|
|
1083
1087
|
Lupinus subvexus,Lupinus microcarpus var. microcarpus
|
1084
1088
|
Lupinus vallicola,Lupinus nanus
|
1085
1089
|
Lupinus variicolor,Lupinus littoralis var. variicolor
|
1086
|
-
Luzula comosa var. congesta,Luzula comosa var. comosa
|
1087
|
-
Luzula comosa var. macrantha,Luzula subsessilis
|
1088
1090
|
Luzula comosa var. subsessilis,Luzula subsessilis
|
1089
1091
|
Lythrum alatum var. linearifolium,Lythrum californicum
|
1090
1092
|
Lythrum sanfordii,Lythrum californicum
|
@@ -1102,13 +1104,12 @@ Mahonia nervosa var. mendocinensis,Berberis nervosa
|
|
1102
1104
|
Mahonia pinnata subsp. pinnata,Berberis pinnata subsp. pinnata
|
1103
1105
|
Maianthemum racemosum subsp. amplexicaule,Maianthemum racemosum
|
1104
1106
|
Malacothamnus arcuatus var. elmeri,Malacothamnus hallii,INAT
|
1105
|
-
Malacothamnus
|
1106
|
-
Malacothamnus helleri,Malacothamnus fremontii
|
1107
|
-
Malacothamnus howellii,Malacothamnus fremontii
|
1107
|
+
Malacothamnus hallii,Malacothamnus arcuatus var. elmeri
|
1108
1108
|
Malacothrix coulteri var. cognata,Malacothrix coulteri
|
1109
1109
|
Malacothrix senecioides,Malacothrix clevelandii
|
1110
1110
|
Malva pseudolavatera,Malva multiflora
|
1111
1111
|
Malvastrum exilis,Eremalche exilis
|
1112
|
+
Malvastrum hallii,Malacothamnus arcuatus var. elmeri
|
1112
1113
|
Marah fabacea var. agrestis,Marah fabacea
|
1113
1114
|
Maruta cotula,Anthemis cotula
|
1114
1115
|
Meconella linearis,Hesperomecon linearis
|
@@ -1267,7 +1268,6 @@ Myosurus minimus subsp. major,Myosurus minimus
|
|
1267
1268
|
Myosurus minimus var. filiformis,Myosurus minimus
|
1268
1269
|
Myosurus minimus var. major,Myosurus minimus
|
1269
1270
|
Myosurus minimus var. sessiliflorus,Myosurus sessilis
|
1270
|
-
Myosurus minimus,Myosurus minimus subsp. minimus,INAT
|
1271
1271
|
Myrica californica,Morella californica
|
1272
1272
|
Myriophyllum brasiliense,Myriophyllum aquaticum
|
1273
1273
|
Myriophyllum exalbescens,Myriophyllum sibiricum
|
@@ -1352,8 +1352,6 @@ Parvisedum pentandrum,Sedella pentandra
|
|
1352
1352
|
Paspalum distichum var. indutum,Paspalum distichum
|
1353
1353
|
Paspalum paspalodes,Paspalum distichum
|
1354
1354
|
Pectocarya pusilla,Gruvelia pusilla,INAT
|
1355
|
-
Pedicularis aurantiaca,Pedicularis densiflora
|
1356
|
-
Pedicularis densiflora subsp. aurantiaca,Pedicularis densiflora
|
1357
1355
|
Penstemon heterophyllus subsp. heterophyllus,Penstemon heterophyllus var. heterophyllus
|
1358
1356
|
Penstemon heterophyllus subsp. purdyi,Penstemon heterophyllus var. purdyi
|
1359
1357
|
Pentagramma triangularis subsp. semipallida,Pentagramma triangularis
|
@@ -1828,6 +1826,7 @@ Spergularia bocconei,Spergularia bocconi,INAT
|
|
1828
1826
|
Spergularia marina var. tenuis,Spergularia marina
|
1829
1827
|
Spergularia maritima,Spergularia media var. media
|
1830
1828
|
Spergularia salina,Spergularia marina
|
1829
|
+
Sphaeralcea fasciculata var. elmeri,Malacothamnus arcuatus var. elmeri
|
1831
1830
|
Spirodela oligorrhiza,Landoltia punctata
|
1832
1831
|
Spirodela punctata,Landoltia punctata
|
1833
1832
|
Sporobolus alterniflorus,Spartina alterniflora,INAT
|
@@ -1859,9 +1858,7 @@ Streptanthus albidus subsp. peramoenus,Streptanthus glandulosus subsp. glandulos
|
|
1859
1858
|
Streptanthus breweri var. breweri,Streptanthus breweri
|
1860
1859
|
Streptanthus coulteri var. lemmonii,Caulanthus lemmonii
|
1861
1860
|
Streptanthus flavescens,Caulanthus flavescens
|
1862
|
-
Streptanthus glandulosus subsp. arkii,Streptanthus glandulosus subsp. glandulosus
|
1863
1861
|
Streptanthus glandulosus subsp. glandulosus,Streptanthus albidus subsp. peramoenus,INAT
|
1864
|
-
Streptanthus glandulosus subsp. raichei,Streptanthus glandulosus subsp. glandulosus
|
1865
1862
|
Streptanthus lemmonii,Caulanthus lemmonii
|
1866
1863
|
Stropholirion californicum,Dichelostemma volubile
|
1867
1864
|
Stylocline amphibola,Micropus amphibolus
|
@@ -1914,30 +1911,33 @@ Toxicodendron trilobatum,Rhus aromatica
|
|
1914
1911
|
Trientalis borealis subsp. latifolia,Lysimachia latifolia
|
1915
1912
|
Trientalis latifolia,Lysimachia latifolia
|
1916
1913
|
Trifolium albopurpureum var. albopurpureum,Trifolium albopurpureum
|
1914
|
+
Trifolium albopurpureum var. columbinum,Trifolium columbinum
|
1917
1915
|
Trifolium albopurpureum var. dichotomum,Trifolium dichotomum
|
1918
1916
|
Trifolium albopurpureum var. olivaceum,Trifolium columbinum
|
1919
1917
|
Trifolium amplectens var. hydrophilum,Trifolium hydrophilum
|
1920
1918
|
Trifolium amplectens var. truncatum,Trifolium depauperatum var. truncatum
|
1921
|
-
Trifolium appendiculatum var.
|
1922
|
-
Trifolium appendiculatum var. rostratum,Trifolium variegatum var. variegatum
|
1919
|
+
Trifolium appendiculatum var. rostratum,Trifolium variegatum
|
1923
1920
|
Trifolium barbigerum var. andrewsii,Trifolium grayi
|
1924
1921
|
Trifolium barbigerum var. barbigerum,Trifolium barbigerum
|
1922
|
+
Trifolium bifidum var. bifidum,Trifolium bifidum
|
1923
|
+
Trifolium bifidum var. decipiens,Trifolium bifidum
|
1925
1924
|
Trifolium depauperatum var. hydrophilum,Trifolium hydrophilum
|
1926
1925
|
Trifolium fucatum var. gambelii,Trifolium fucatum
|
1927
1926
|
Trifolium fucatum var. virescens,Trifolium fucatum
|
1928
|
-
Trifolium geminiflorum,Trifolium variegatum
|
1927
|
+
Trifolium geminiflorum,Trifolium variegatum
|
1929
1928
|
Trifolium gracilentum var. gracilentum,Trifolium gracilentum
|
1930
1929
|
Trifolium gracilentum var. inconspicuum,Trifolium gracilentum
|
1931
1930
|
Trifolium microdon var. pilosum,Trifolium microdon
|
1932
1931
|
Trifolium minutissimum,Trifolium barbigerum
|
1933
1932
|
Trifolium olivaceum,Trifolium columbinum,INAT
|
1934
|
-
Trifolium pauciflorum,Trifolium variegatum
|
1933
|
+
Trifolium pauciflorum,Trifolium variegatum
|
1935
1934
|
Trifolium procumbens,Trifolium campestre
|
1936
1935
|
Trifolium tomentosum var. tomentosum,Trifolium tomentosum
|
1937
1936
|
Trifolium tridentatum var. aciculare,Trifolium willdenovii
|
1938
1937
|
Trifolium tridentatum,Trifolium willdenovii
|
1939
|
-
Trifolium variegatum var.
|
1940
|
-
Trifolium variegatum var.
|
1938
|
+
Trifolium variegatum var. geminiflorum,Trifolium variegatum
|
1939
|
+
Trifolium variegatum var. pauciflorum,Trifolium variegatum
|
1940
|
+
Trifolium variegatum var. trilobatum,Trifolium variegatum
|
1941
1941
|
Trillium chloropetalum var. giganteum,Trillium chloropetalum
|
1942
1942
|
Trisetum cernuum var. canescens,Trisetum canescens
|
1943
1943
|
Triteleia angustiflora,Triteleia laxa
|
@@ -2000,8 +2000,8 @@ Vulpia myuros var. myuros,Festuca myuros
|
|
2000
2000
|
Vulpia octoflora var. hirtella,Festuca octoflora
|
2001
2001
|
Vulpia octoflora,Festuca octoflora
|
2002
2002
|
Woodwardia chamissoi,Woodwardia fimbriata
|
2003
|
-
Xanthium strumarium var. canadense,Xanthium
|
2004
|
-
Xanthium strumarium var. glabratum,Xanthium
|
2003
|
+
Xanthium strumarium var. canadense,Xanthium orientale
|
2004
|
+
Xanthium strumarium var. glabratum,Xanthium orientale
|
2005
2005
|
Xerobotrys glaucus,Arctostaphylos glauca
|
2006
2006
|
Zauschneria californica subsp. californica,Epilobium canum subsp. canum
|
2007
2007
|
Zauschneria cana,Epilobium canum subsp. canum
|
package/data/taxa.csv
CHANGED
@@ -27,7 +27,7 @@ Acmispon parviflorus,least trefoil,N,91717,11299,57048
|
|
27
27
|
Acmispon strigosus,,N,91722,11305,58152
|
28
28
|
Acmispon wrangelianus,common trefoil,N,82483,11306,57050
|
29
29
|
Actaea rubra,baneberry,N,11894,93,49870
|
30
|
-
Adelinia grandis,hound's tongue,N,101954,14544,
|
30
|
+
Adelinia grandis,hound's tongue,N,101954,14544,1520640,blue
|
31
31
|
Adenocaulon bicolor,American trailplant,N,721,94,56854
|
32
32
|
Adenostoma fasciculatum,chamise,N,11939,97,47146
|
33
33
|
Adiantum aleuticum,five-finger fern,N,11945,100,52667
|
@@ -201,7 +201,7 @@ Balsamorhiza deltoidea,,N,1634,1047,70383
|
|
201
201
|
Balsamorhiza macrolepis,,N,1639,1051,69665,,,,350,1B.2,,,S2,G2
|
202
202
|
Barbarea orthoceras,winter cress,N,15481,1057,52976
|
203
203
|
Bassia hyssopifolia,,X,15511,1060,58125
|
204
|
-
Bellardia trixago,,X,
|
204
|
+
Bellardia trixago var. trixago,,X,8635,14706,1115038
|
205
205
|
Bellis perennis,English daisy,X,1652,1065,55563
|
206
206
|
Berberis aquifolium var. aquifolium,,N,71483,1068,126887
|
207
207
|
Berberis aquifolium var. dictyota,,N,76967,1069,775436
|
@@ -846,8 +846,8 @@ Hesperevax acaulis var. ambusticola,fire evax,N,59934,4108,80930
|
|
846
846
|
Hesperevax caulescens,hogwallow starfish,N,28021,4110,60135,,,,1931,4.2,,,S3,G3
|
847
847
|
Hesperevax sparsiflora var. sparsiflora,,N,59937,4113,61172
|
848
848
|
Hesperocnide tenella,black haired nettle,N,28033,4118,59036
|
849
|
-
Hesperocyparis macrocarpa,Monterey cypress,N,89298,11190,
|
850
|
-
Hesperocyparis sargentii,Sargent cypress,N,89302,10803,
|
849
|
+
Hesperocyparis macrocarpa,Monterey cypress,N,89298,11190,77378,,,,536,1B.2,,,S1,G1
|
850
|
+
Hesperocyparis sargentii,Sargent cypress,N,89302,10803,77381
|
851
851
|
Hesperolinon breweri,Brewer's dwarf flax,N,28038,4121,77385,,,,404,1B.2,,,S2,G2
|
852
852
|
Hesperolinon californicum,California dwarf flax,N,28039,4122,77386
|
853
853
|
Hesperolinon clevelandii,,N,28040,4123,77387
|
@@ -1103,8 +1103,9 @@ Madia radiata,showy madia,N,4053,5296,77924,,,,1054,1B.1,,,S3,G3
|
|
1103
1103
|
Madia sativa,coast tarweed,N,4055,5298,53143,yellow
|
1104
1104
|
Maianthemum racemosum,false Solomon's seal,N,32495,10096,51062
|
1105
1105
|
Maianthemum stellatum,,N,32497,9629,53268
|
1106
|
+
Malacothamnus arcuatus var. elmeri,,N,108345,14681,1497404
|
1106
1107
|
Malacothamnus fremontii,white-coat mallow,N,32524,5312,70397
|
1107
|
-
Malacothamnus hallii
|
1108
|
+
Malacothamnus hallii,,N,108345,14681,1497404,,,,1065,1B.2,,,S2,G2
|
1108
1109
|
Malacothrix californica,,N,4059,5325,58026
|
1109
1110
|
Malacothrix clevelandii,Cleveland's malacothrix,N,4060,5326,58841
|
1110
1111
|
Malacothrix coulteri,snake's-head,N,4061,5327,58027
|
@@ -1145,7 +1146,7 @@ Mentha spicata,spearmint,X,33209,10111,62652
|
|
1145
1146
|
Mentha suaveolens,pineapple mint,X,33212,5417,77993
|
1146
1147
|
Mentzelia affinis,,N,33219,5418,58194
|
1147
1148
|
Mentzelia dispersa,,N,33236,5423,58196
|
1148
|
-
Mentzelia laevicaulis,blazingstar,N,
|
1149
|
+
Mentzelia laevicaulis var. laevicaulis,blazingstar,N,61864,14741,241687
|
1149
1150
|
Mentzelia lindleyi,,N,33255,5432,53923
|
1150
1151
|
Mentzelia micrantha,,N,33259,5433,58933
|
1151
1152
|
Mentzelia pectinata,,N,33274,5439,58198
|
@@ -1186,7 +1187,6 @@ Myosotis discolor,,X,34209,5721,70265
|
|
1186
1187
|
Myosotis latifolia,forget-me-not,X,34211,5722,49132
|
1187
1188
|
Myosotis laxa,,N,34212,5723,78150
|
1188
1189
|
Myosurus minimus subsp. apus,little mousetail,N,,5731,181537,,,,1159,3.1,,,S2,G5T2Q
|
1189
|
-
Myosurus minimus subsp. minimus,,N,,,58306
|
1190
1190
|
Myosurus minimus,mouse-tail,N,34224,5729,58306
|
1191
1191
|
Myosurus sessilis,,N,34226,5732,60235
|
1192
1192
|
Myriophyllum aquaticum,parrot's feather,X,34261,5735,60202
|
@@ -1378,7 +1378,7 @@ Pogogyne douglasii,,N,38936,6704,63943
|
|
1378
1378
|
Pogogyne serpylloides,,N,38939,6708,57118
|
1379
1379
|
Pogogyne zizyphoroides,,N,78298,6709,60209
|
1380
1380
|
Polemonium carneum,royal sky pilot,N,38971,6712,78665,,,,3345,2B.2,,,S2,G3G4
|
1381
|
-
Polycarpon tetraphyllum
|
1381
|
+
Polycarpon tetraphyllum subsp. tetraphyllum,four-leaved allseed,X,80560,14756,81277
|
1382
1382
|
Polygonum argyrocoleon,persian knotweed,X,39158,6738,78676
|
1383
1383
|
Polygonum aviculare subsp. aviculare,,X,80990,10667,80151
|
1384
1384
|
Polygonum aviculare subsp. depressum,,X,80993,11034,63967
|
@@ -1728,8 +1728,7 @@ Trichostema lanceolatum,vinegar weed,N,46991,8032,54875
|
|
1728
1728
|
Trifolium albopurpureum,Indian clover,N,47029,8043,58162
|
1729
1729
|
Trifolium angustifolium,narrowleaf clover,X,47040,8051,69939
|
1730
1730
|
Trifolium barbigerum,bearded clover,N,47049,8054,57074
|
1731
|
-
Trifolium bifidum
|
1732
|
-
Trifolium bifidum var. decipiens,,N,67259,8060,57075
|
1731
|
+
Trifolium bifidum,Pinole clover,N,47053,8058,60196
|
1733
1732
|
Trifolium campestre,hop clover,X,47059,8064,57076
|
1734
1733
|
Trifolium ciliolatum,foothill clover,N,47063,8065,60197
|
1735
1734
|
Trifolium columbinum,olive clover,N,47030,13577,79425
|
@@ -1756,9 +1755,7 @@ Trifolium pratense,red clover,X,47160,8104,51875
|
|
1756
1755
|
Trifolium repens,white clover,X,47164,8105,55745
|
1757
1756
|
Trifolium subterraneum,subterranean clover,X,47174,8106,60201
|
1758
1757
|
Trifolium tomentosum,woolly clover,X,47177,8586,61024
|
1759
|
-
Trifolium variegatum
|
1760
|
-
Trifolium variegatum var. major,,N,67348,12115,81437
|
1761
|
-
Trifolium variegatum var. variegatum,,N,74014,12116,81438
|
1758
|
+
Trifolium variegatum,,N,47179,8108,57080
|
1762
1759
|
Trifolium willdenovii,tomcat clover,N,47186,8109,57081
|
1763
1760
|
Trifolium wormskioldii,cow clover,N,47188,8110,71146
|
1764
1761
|
Triglochin concinna var. concinna,slender arrow-grass,N,74018,8112,81439
|
@@ -1829,8 +1826,8 @@ Woodwardia fimbriata,giant chain fern,N,48619,8355,52685
|
|
1829
1826
|
Wyethia angustifolia,narrowleaf mule-ears,N,5572,8356,56987,yellow
|
1830
1827
|
Wyethia glabra,mules ears,N,5578,8359,56988,yellow
|
1831
1828
|
Wyethia helenioides,woolly mules ears,N,5579,8360,50799,yellow
|
1829
|
+
Xanthium orientale,cocklebur,N,5618,14779,506262
|
1832
1830
|
Xanthium spinosum,spiny cocklebur,X,5590,8366,58045
|
1833
|
-
Xanthium strumarium,cocklebur,N,5591,8367,57920
|
1834
1831
|
Yabea microcarpa,California hedge parsley,N,48745,8373,56847
|
1835
1832
|
Zannichellia palustris,horned-pondweed,N,48827,8379,79546
|
1836
1833
|
Zantedeschia aethiopica,calla-lily,X,48829,8380,56006
|
package/ebook/css/main.css
CHANGED
@@ -0,0 +1,56 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html lang="en">
|
3
|
+
|
4
|
+
<head>
|
5
|
+
<meta charset="utf-8">
|
6
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7
|
+
<link href="{{site.bootstrap-prefix}}/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
|
8
|
+
<title>{{page.title}}</title>
|
9
|
+
<link href="{{site.baseurl}}/assets/css/main.css" rel="stylesheet">
|
10
|
+
</head>
|
11
|
+
|
12
|
+
<body>
|
13
|
+
|
14
|
+
<nav class="navbar navbar-expand-md">
|
15
|
+
<div class="container-xxl px-5">
|
16
|
+
<button id="hamburger" class="navbar-toggler" type="button" data-bs-toggle="collapse"
|
17
|
+
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false"
|
18
|
+
aria-label="Toggle navigation">
|
19
|
+
<span class="navbar-toggler-icon"></span>
|
20
|
+
</button>
|
21
|
+
<a class="navbar-brand" href="{{'/' | relative_url}}">{{site.navbar-name}}</a>
|
22
|
+
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
23
|
+
<ul class="navbar-nav me-auto mb-lg-0">
|
24
|
+
<li class="nav-item">
|
25
|
+
<a class="nav-link" href="{{site.baseurl}}/index_lists.html">Plant Lists</a>
|
26
|
+
</li>
|
27
|
+
<li class="nav-item">
|
28
|
+
<a class="nav-link" href="{{site.baseurl}}/rare_plants.html">Rare Plants</a>
|
29
|
+
</li>
|
30
|
+
<li class="nav-item">
|
31
|
+
<a class="nav-link" href="{{site.baseurl}}/name_search.html">Name Search</a>
|
32
|
+
</li>
|
33
|
+
<li class="nav-item">
|
34
|
+
<a class="nav-link" href="{{site.baseurl}}/glossary.html">Glossary</a>
|
35
|
+
</li>
|
36
|
+
{%include menu_extra.html %}
|
37
|
+
</ul>
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
</nav>
|
41
|
+
|
42
|
+
<div class="container-xxl px-5">
|
43
|
+
{{content}}
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<script src="{{site.bootstrap-prefix}}/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
47
|
+
|
48
|
+
{%if page.js%}
|
49
|
+
<script src="{{site.baseurl}}/assets/js/{{page.js}}" type="module"></script>{%endif%}
|
50
|
+
|
51
|
+
<script src="{{site.baseurl}}/assets/js/ui.js" type="module"></script>
|
52
|
+
|
53
|
+
{%include analytics.html%}
|
54
|
+
</body>
|
55
|
+
|
56
|
+
</html>
|
@@ -1,57 +1,6 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
---
|
2
|
+
layout: default
|
3
|
+
---
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
7
|
-
<link href="{{site.bootstrap-prefix}}/css/bootstrap.min.css" rel="stylesheet" crossorigin="anonymous">
|
8
|
-
<title>{{page.title}}</title>
|
9
|
-
<link href="{{site.baseurl}}/assets/css/main.css" rel="stylesheet">
|
10
|
-
</head>
|
11
|
-
|
12
|
-
<body>
|
13
|
-
|
14
|
-
<nav class="navbar navbar-expand-md">
|
15
|
-
<div class="container-xxl px-5">
|
16
|
-
<button id="hamburger" class="navbar-toggler" type="button" data-bs-toggle="collapse"
|
17
|
-
data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false"
|
18
|
-
aria-label="Toggle navigation">
|
19
|
-
<span class="navbar-toggler-icon"></span>
|
20
|
-
</button>
|
21
|
-
<a class="navbar-brand" href="{{'/' | relative_url}}">{{site.navbar-name}}</a>
|
22
|
-
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
23
|
-
<ul class="navbar-nav me-auto mb-lg-0">
|
24
|
-
<li class="nav-item">
|
25
|
-
<a class="nav-link" href="{{site.baseurl}}/index_lists.html">Plant Lists</a>
|
26
|
-
</li>
|
27
|
-
<li class="nav-item">
|
28
|
-
<a class="nav-link" href="{{site.baseurl}}/rare_plants.html">Rare Plants</a>
|
29
|
-
</li>
|
30
|
-
<li class="nav-item">
|
31
|
-
<a class="nav-link" href="{{site.baseurl}}/name_search.html">Name Search</a>
|
32
|
-
</li>
|
33
|
-
<li class="nav-item">
|
34
|
-
<a class="nav-link" href="{{site.baseurl}}/glossary.html">Glossary</a>
|
35
|
-
</li>
|
36
|
-
{%include menu_extra.html %}
|
37
|
-
</ul>
|
38
|
-
</div>
|
39
|
-
</div>
|
40
|
-
</nav>
|
41
|
-
|
42
|
-
<div class="container-xxl px-5">
|
43
|
-
<h1>{{page.title}}</h1>
|
44
|
-
{{content}}
|
45
|
-
</div>
|
46
|
-
|
47
|
-
<script src="{{site.bootstrap-prefix}}/js/bootstrap.bundle.min.js" crossorigin="anonymous"></script>
|
48
|
-
|
49
|
-
{%if page.js%}
|
50
|
-
<script src="{{site.baseurl}}/assets/js/{{page.js}}" type="module"></script>{%endif%}
|
51
|
-
|
52
|
-
<script src="{{site.baseurl}}/assets/js/ui.js" type="module"></script>
|
53
|
-
|
54
|
-
{%include analytics.html%}
|
55
|
-
</body>
|
56
|
-
|
57
|
-
</html>
|
5
|
+
<h1>{{page.title}}</h1>
|
6
|
+
{{content}}
|
package/lib/basepagerenderer.js
CHANGED
@@ -1,24 +1,28 @@
|
|
1
1
|
import { Config } from "./config.js";
|
2
2
|
import { Families } from "./families.js";
|
3
3
|
import { Files } from "./files.js";
|
4
|
+
import { Jekyll } from "./jekyll.js";
|
5
|
+
import { Taxa } from "./taxa.js";
|
4
6
|
import { GlossaryPages } from "./web/glossarypages.js";
|
5
7
|
|
6
8
|
class BasePageRenderer {
|
7
9
|
|
8
10
|
static render( outputDir, taxa, familyCols ) {
|
9
11
|
|
12
|
+
const siteGenerator = new Jekyll( outputDir );
|
13
|
+
|
10
14
|
// Copy static files
|
11
|
-
Files.rmDir( outputDir );
|
12
15
|
// First copy default Jekyll files from package.
|
13
16
|
Files.copyDir( Config.getPackageDir() + "/jekyll", outputDir );
|
14
17
|
// Then copy Jekyll files from current dir (which may override default files).
|
15
18
|
Files.copyDir( "jekyll", outputDir );
|
19
|
+
|
16
20
|
// Copy illustrations.
|
17
|
-
|
21
|
+
siteGenerator.copyIllustrations( Taxa.getFlowerColors() );
|
18
22
|
|
19
23
|
Families.renderPages( outputDir, familyCols );
|
20
24
|
|
21
|
-
new GlossaryPages(
|
25
|
+
new GlossaryPages( siteGenerator ).renderPages();
|
22
26
|
|
23
27
|
this.renderTools( outputDir, taxa );
|
24
28
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { CommandProcessor } from "./commandprocessor.js";
|
2
|
+
import { Files } from "./files.js";
|
2
3
|
import { TaxaProcessor } from "./taxaprocessor.js";
|
3
4
|
|
4
5
|
class CommandAndTaxaProcessor extends CommandProcessor {
|
@@ -14,6 +15,8 @@ class CommandAndTaxaProcessor extends CommandProcessor {
|
|
14
15
|
if ( this.helpShown() ) {
|
15
16
|
return;
|
16
17
|
}
|
18
|
+
Files.rmDir( this.getOptions().outputdir );
|
19
|
+
|
17
20
|
await this.#taxaProcessor.process( commandRunner );
|
18
21
|
}
|
19
22
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { Files } from "../files.js";
|
2
|
+
import { SiteGenerator } from "../sitegenerator.js";
|
3
|
+
|
4
|
+
class EBookSiteGenerator extends SiteGenerator {
|
5
|
+
|
6
|
+
constructor( baseDir ) {
|
7
|
+
super( baseDir );
|
8
|
+
}
|
9
|
+
|
10
|
+
#pageEnd() {
|
11
|
+
return "</body></html>";
|
12
|
+
}
|
13
|
+
|
14
|
+
#pageStart( depth, attributes ) {
|
15
|
+
let html = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
|
16
|
+
html += "<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:epub=\"http://www.idpf.org/2007/ops\">";
|
17
|
+
html += "<head><title>" + attributes.title + "</title>";
|
18
|
+
html += "<link href=\"" + "../".repeat( depth ) + "css/main.css\" rel=\"stylesheet\" />";
|
19
|
+
html += "</head><body>";
|
20
|
+
return html;
|
21
|
+
}
|
22
|
+
|
23
|
+
#wrap( depth, content, attributes ) {
|
24
|
+
return this.#pageStart( depth, attributes ) + content + this.#pageEnd();
|
25
|
+
}
|
26
|
+
|
27
|
+
writeTemplate( content, attributes, filename ) {
|
28
|
+
const depth = ( filename.match( /\//g ) || [] ).length;
|
29
|
+
Files.write( Files.join( this.getBaseDir(), filename ), this.#wrap( depth, content, attributes ) );
|
30
|
+
}
|
31
|
+
|
32
|
+
}
|
33
|
+
|
34
|
+
export { EBookSiteGenerator };
|
@@ -1,46 +1,15 @@
|
|
1
|
-
import
|
2
|
-
|
3
|
-
import { EBookPage } from "./ebookpage.js";
|
4
|
-
import { XHTML } from "./xhtml.js";
|
5
|
-
|
6
|
-
import { HTML } from "../html.js";
|
7
|
-
import { Markdown } from "../markdown.js";
|
1
|
+
import { GlossaryPages as BaseGlossaryPages } from "../web/glossarypages.js";
|
8
2
|
import { EBook } from "./ebook.js";
|
9
3
|
|
10
|
-
|
11
|
-
|
12
|
-
class GlossaryPages {
|
13
|
-
|
14
|
-
#glossary;
|
15
|
-
|
16
|
-
constructor() {
|
17
|
-
this.#glossary = new Glossary();
|
18
|
-
}
|
19
|
-
|
20
|
-
createPages( contentDir ) {
|
21
|
-
|
22
|
-
const termList = [];
|
23
|
-
|
24
|
-
// Create target directory.
|
25
|
-
const dirTarget = contentDir + "/g";
|
26
|
-
fs.mkdirSync( dirTarget, { recursive: true } );
|
27
|
-
|
28
|
-
for ( const entry of this.#glossary.getEntries() ) {
|
29
|
-
|
30
|
-
new PageGlossaryEntry( contentDir, entry ).create();
|
31
|
-
|
32
|
-
// Add term to index page list.
|
33
|
-
termList.push( HTML.getLink( "g/" + entry.getHTMLFileName(), entry.getTermName() ) );
|
34
|
-
|
35
|
-
}
|
4
|
+
class GlossaryPages extends BaseGlossaryPages {
|
36
5
|
|
37
|
-
|
38
|
-
|
6
|
+
constructor( siteGenerator ) {
|
7
|
+
super( siteGenerator );
|
39
8
|
}
|
40
9
|
|
41
10
|
getManifestEntries() {
|
42
11
|
|
43
|
-
const glossaryEntries = this
|
12
|
+
const glossaryEntries = this.getGlossary().getEntries();
|
44
13
|
const manifestEntries = [];
|
45
14
|
|
46
15
|
manifestEntries.push( EBook.getManifestEntry( "g", "glossary.html" ) );
|
@@ -54,7 +23,7 @@ class GlossaryPages {
|
|
54
23
|
|
55
24
|
getSpineEntries() {
|
56
25
|
|
57
|
-
const glossaryEntries = this
|
26
|
+
const glossaryEntries = this.getGlossary().getEntries();
|
58
27
|
const spineEntries = [];
|
59
28
|
|
60
29
|
spineEntries.push( EBook.getSpineEntry( "g", "glossary.html" ) );
|
@@ -68,34 +37,4 @@ class GlossaryPages {
|
|
68
37
|
|
69
38
|
}
|
70
39
|
|
71
|
-
class PageGlossary extends EBookPage {
|
72
|
-
|
73
|
-
#entries;
|
74
|
-
|
75
|
-
constructor( outputDir, entries ) {
|
76
|
-
super( outputDir + "/glossary.html", "Glossary" );
|
77
|
-
this.#entries = entries;
|
78
|
-
}
|
79
|
-
|
80
|
-
renderPageBody() {
|
81
|
-
const html = XHTML.textElement( "h1", this.getTitle() );
|
82
|
-
return html + XHTML.wrap( "ol", XHTML.arrayToLI( this.#entries ) );
|
83
|
-
}
|
84
|
-
}
|
85
|
-
|
86
|
-
class PageGlossaryEntry extends EBookPage {
|
87
|
-
|
88
|
-
#entry;
|
89
|
-
|
90
|
-
constructor( outputDir, entry ) {
|
91
|
-
super( outputDir + "/g/" + entry.getHTMLFileName(), entry.getTermName(), "../" );
|
92
|
-
this.#entry = entry;
|
93
|
-
}
|
94
|
-
|
95
|
-
renderPageBody() {
|
96
|
-
const html = XHTML.textElement( "h1", this.getTitle() );
|
97
|
-
return html + Markdown.strToHTML( this.#entry.getMarkdown() );
|
98
|
-
}
|
99
|
-
}
|
100
|
-
|
101
40
|
export { GlossaryPages };
|
package/lib/ebook/images.js
CHANGED
@@ -7,14 +7,17 @@ import { Config, CSV, Files } from "@ca-plant-list/ca-plant-list";
|
|
7
7
|
|
8
8
|
import { Image } from "./image.js";
|
9
9
|
import { EBook } from "./ebook.js";
|
10
|
+
import { Taxa } from "../taxa.js";
|
10
11
|
|
11
12
|
class Images {
|
12
13
|
|
13
|
-
#
|
14
|
+
#siteGenerator;
|
14
15
|
#contentDir;
|
16
|
+
#taxa;
|
15
17
|
#images = {};
|
16
18
|
|
17
|
-
constructor( contentDir, taxa ) {
|
19
|
+
constructor( siteGenerator, contentDir, taxa ) {
|
20
|
+
this.#siteGenerator = siteGenerator;
|
18
21
|
this.#contentDir = contentDir;
|
19
22
|
this.#taxa = taxa;
|
20
23
|
}
|
@@ -55,20 +58,16 @@ class Images {
|
|
55
58
|
await Files.fetch( src, srcFileName );
|
56
59
|
}
|
57
60
|
|
58
|
-
await new sharp( srcFileName ).resize( { width:
|
61
|
+
await new sharp( srcFileName ).resize( { width: 300 } ).jpeg( { quality: 40 } ).toFile( targetFileName );
|
59
62
|
|
60
63
|
imageList.push( new Image( imagePrefix + "/" + filename, row[ "credit" ] ) );
|
61
64
|
|
62
65
|
}
|
63
66
|
|
64
|
-
this.#
|
67
|
+
this.#siteGenerator.copyIllustrations( Taxa.getFlowerColors() );
|
65
68
|
|
66
69
|
}
|
67
70
|
|
68
|
-
#getIllustrations() {
|
69
|
-
Files.copyDir( Config.getPackageDir() + "/data/illustrations/optimized", this.#contentDir + "/i" );
|
70
|
-
}
|
71
|
-
|
72
71
|
getManifestEntries() {
|
73
72
|
|
74
73
|
const entries = [];
|
@@ -83,6 +82,9 @@ class Images {
|
|
83
82
|
return entries.join( "" );
|
84
83
|
}
|
85
84
|
|
85
|
+
getTaxonImages( name ) {
|
86
|
+
return this.#images[ name ];
|
87
|
+
}
|
86
88
|
}
|
87
89
|
|
88
90
|
export { Images };
|
@@ -67,6 +67,7 @@ class TaxonPage extends EBookPage {
|
|
67
67
|
html += renderCustomText( this.#taxon.getBaseFileName() );
|
68
68
|
|
69
69
|
if ( this.#photos ) {
|
70
|
+
let photoHTML = "";
|
70
71
|
for ( const photo of this.#photos ) {
|
71
72
|
const src = photo.getSrc();
|
72
73
|
const dimensions = sizeOf( this.#outputDir + "/" + src );
|
@@ -75,7 +76,10 @@ class TaxonPage extends EBookPage {
|
|
75
76
|
if ( caption ) {
|
76
77
|
img += XHTML.textElement( "figcaption", caption );
|
77
78
|
}
|
78
|
-
|
79
|
+
photoHTML += XHTML.wrap( "figure", img );
|
80
|
+
}
|
81
|
+
if ( photoHTML ) {
|
82
|
+
html += XHTML.wrap( "div", photoHTML );
|
79
83
|
}
|
80
84
|
}
|
81
85
|
|
@@ -1,6 +1,6 @@
|
|
1
|
+
import { Taxa } from "../../taxa.js";
|
1
2
|
import { EBookPage } from "../ebookpage.js";
|
2
3
|
import { XHTML } from "../xhtml.js";
|
3
|
-
import { FLOWER_COLOR_NAMES } from "../../taxa.js";
|
4
4
|
import { PageListFlowers } from "./page_list_flowers.js";
|
5
5
|
|
6
6
|
class TOCPage extends EBookPage {
|
@@ -30,7 +30,7 @@ class TOCPage extends EBookPage {
|
|
30
30
|
#getFlowerColorLinks() {
|
31
31
|
const html = XHTML.textElement( "span", "Flower Color" );
|
32
32
|
const links = [];
|
33
|
-
for ( const colorName of
|
33
|
+
for ( const colorName of Taxa.getFlowerColorNames() ) {
|
34
34
|
links.push( XHTML.getLink( "list_fc_" + colorName + ".html", colorName ) );
|
35
35
|
}
|
36
36
|
return html + XHTML.wrap( "ol", XHTML.arrayToLI( links ) );
|