npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@floralink/plugins

v0.2.2

Published

Plugin library for using taxon specific data with Floralink Core

Downloads

50

Readme

Plugins for Floralink

Plugin library for using using taxon specific and taxon reference data with Floralink Core. These contain only descriptive information. For database plugins, see @floralink/databases.

General usage

You can add the plugins to your project by using the @floralink/plugins npm package:

$ npm install @floralink/plugins

Then, in your project:

import * as floralink from "@floralink/core";
import { mytaxonspecificplugin } from "@floralink/plugins";

floralink.initializePlugin(mytaxonspecificplugin);

// now floralink can access information on how to operate the data

Plugins in this library

Taxon reference data

| Name | Description | Data origin | Data source | | -------- | ---------------------------------------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------- | | germansl | Taxon reference for plants, mosses, algae and lichens in Germany | local | GermanSL v1.5.1, a taxon reference list for occurrence databases in Germany |

Taxon specific data

| Name | Description | Data origin | Data source | | -------------------------- | ------------------------------------------------------------------------------- | ----------- | ------------------------------------------------------- | | ellenberg | Ellenberg indicator values (1991) | local | GermanSL v1.5.1 | | fukarekhenker | N, F and T status described by Fukarek & Henker (2006) | local | GermanSL v1.5.1 | | rotelistemv (experimental) | Red list classifications for vascular plants in Mecklenburg-Vorpommern, Germany | local | GermanSL v1.5.1 |

Occurrence data

| Name | Data origin | Data source | | ------ | ----------- | --------------------------------------------------------- | | werbeo | API | Flora-MV (through WerBeo API) |

Developing a local database plugin

You can derive a JSON database for your plugin from a CSV table by using Floralink Generator. Look at the plugins in this library for examples.

Source databases to use with Floralink need to have a taxonomic reference. Floralink uses GermanSL (v1.5.1) and doesn't support other taxonomic reference databases (yet).

File structure

Basic file structure of a local database plugin:

/generation
  /source
  |  |__database.csv
  |  |__LICENSE
  |__mappings.js
database.json
index.js
README.md

index.js

Example index.js (Ellenberg plugin):

export default {
  // plugin reference
  pluginType: "taxonspecific",
  name: "ellenberg",
  version: "1991-1",
  taxonReferencePlugin: {
    name: "germansl",
    version: "1.5.1",
  },
  title: "Ökologische Zeigerwerte",
  description:
    "Das ökologische Verhalten gegenüber einem bestimmten Standortfaktor [...]",
  sources: {
    // bibliographic information for citation
    // keys: primary, secondary, description
    primary: {
      citation:
        "Ellenberg, H. (1991): Zeigerwerte der Gefäßpflanzen (ohne Rubus). [...]",
      citationShort: "Ellenberg 1991",
    },
    // ...
  },
  // applicable filters for calculating statistics
  filters: {
    // the key acts as the id of the filter
    "group-s-only": {
      title: "nur Samenpflanzen",
      filterKey: "group",
      filterValue: "S",
      onlyMatching: true,
      default: true,
    },
    // ...
  },
  // properties/fields of the data
  properties: {
    indicatorL: {
      // key of property in JSON file on taxon object
      dataKey: "indicatorL",
      // display title of property
      title: "Lichtzahl",
      // short title for graphs and summary tables
      titleShort: "L",
      // description of the property
      description:
        "Vorkommen in Beziehung zur relativen Beleuchtungsstärke [...]",
      // scale of measure, specifies which statistics to calculate
      scaleOfMeasure: "ordinal",
      // enumeration of the possible value (to force the order)
      enum: [...sharedEnum, ...sharedEnumNominal],
      // object of possible values
      possibleValues: {
        ...sharedPossibleValues,
        1: {
          title: "Tiefschattenpflanze",
          description: "noch bei weniger als 1 % [...]",
        },
        // ...
      },
    },
    //...
  },
};