(* Index file sorted by full classification line *) maintainIndexf := ( Print["Running maintainIndexf ..."]; filesample = ToFileName[{dirwork, "templates"}, "indexf.htm"]; checkfile[filesample]; text = Import[filesample, "Text"]; spanRead[text]; spanNew["topline"] = toplinefix[spanOld["topline"]]; line0 = linef0 = ""; type0 = ""; spanNew["items"] = Table[ {{itype, kingdom, phylum, class, order, family, name, type, sciname, synonyms, link}, name} = namedata; (* see maintain-sort.m *) {kingdom, phylum, class, order, family} = If[# === "zzzUndefined", "Not assigned", #] &/@ {kingdom, phylum, class, order, family}; type1 = Replace[type, {"mushroom" -> "Fungi", "lichen" -> "Lichens", "slime mold" -> "Slime molds", "unknown" -> "Other categories"}]; namehtml = sciname; familyen = ToUpperCase[family]; nofamily = "not assigned"; familyL = ToLowerCase[family]; If[familyL === nofamily, familyen = "NOT ASSIGNED to a family"]; line1 = classlinefix["kingdom > phylum > class > order"]; classlinefull = classlinefix["kingdom > phylum > class > order > family > species"]; nameL = ToLowerCase[name]; nameUnd = StringReplace[name, " " -> "_"]; nameLUnd = ToLowerCase[nameUnd]; nameen0 = commonName[name]; nameen = If[nameen0 === "", name, capitalize[nameen0] <> " (" <> name <> ")"]; nameen1 = If[nameen0 === "", name, name <> " " <> longdash <> " " <> nameen0]; usynonyms = usedSynonyms[name]; msynonyms = Length[synonyms]; synonyms = If[MemberQ[usynonyms, #], "" <> # <> "", #] &/@ synonyms; synline = If[msynonyms == 0, "", If[msynonyms == 1, synonyms[[1]], StringJoin[Riffle[synonyms, ", "]] ]]; synlineen = If[msynonyms == 0, "", If[msynonyms == 1, "
Synonym: " <> synline <> ".
", "Synonyms: " <> synline <> ".
" ]]; spanNew["type"] = If[type1 === type0, "", noPrint[type," - starts from: ",name]; StringReplace[spanOld["type"], "TYPE" -> "